ci: oakvulkan keeps full sources on Windows
vulkanrenderer.cpp is NOT part of oakengine-obj (unlike openglrenderer.cpp), so the entry-point-only treatment from the previous change left VulkanRenderer symbols undefined. Compile the renderer into the plugin and link oakengine-obj + olive-version-obj.
This commit is contained in:
+10
-4
@@ -206,10 +206,16 @@ if (OAK_ENABLE_DYNAMIC_RENDER_BACKEND)
|
|||||||
|
|
||||||
if (Vulkan_FOUND)
|
if (Vulkan_FOUND)
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
# Same treatment as oakgl (see above): entry point only, engine
|
# Engine-internal C++ symbols are not exported from
|
||||||
# objects come from oakengine-obj.
|
# liboakengine.dll; link the object library like the engine tests
|
||||||
add_library(oakvulkan SHARED render/vulkan/vulkanbackend_c.cpp)
|
# (plus version obj for k_app_version). Unlike openglrenderer.cpp,
|
||||||
set_target_properties(oakvulkan PROPERTIES AUTOMOC OFF)
|
# vulkanrenderer.cpp is NOT part of oakengine-obj, so the plugin
|
||||||
|
# must compile it itself.
|
||||||
|
add_library(oakvulkan SHARED
|
||||||
|
render/vulkan/vulkanbackend_c.cpp
|
||||||
|
render/vulkan/vulkanrenderer.cpp
|
||||||
|
render/vulkan/vulkanrenderer.h
|
||||||
|
)
|
||||||
target_link_libraries(oakvulkan PRIVATE oakengine-obj
|
target_link_libraries(oakvulkan PRIVATE oakengine-obj
|
||||||
$<TARGET_OBJECTS:olive-version-obj>)
|
$<TARGET_OBJECTS:olive-version-obj>)
|
||||||
else ()
|
else ()
|
||||||
|
|||||||
Reference in New Issue
Block a user