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:
2026-08-03 14:38:38 +08:00
parent 248b1873e8
commit 5006382790
+10 -4
View File
@@ -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 ()