Files
SpineParticlesWeb/DateToSpine/cmake/SpineRuntime.cmake
T
2026-09-07 21:29:15 +08:00

38 lines
1.7 KiB
CMake

function(dts_add_spine_runtime target runtime_root)
if(NOT EXISTS "${runtime_root}/include/spine/spine.h")
message(FATAL_ERROR "Missing spine-cpp source at ${runtime_root}")
endif()
file(GLOB_RECURSE runtime_sources CONFIGURE_DEPENDS
"${runtime_root}/src/*.cpp")
file(GLOB_RECURSE runtime_headers CONFIGURE_DEPENDS
"${runtime_root}/include/*.h")
add_library(${target} STATIC ${runtime_sources} ${runtime_headers})
target_include_directories(${target} PUBLIC "${runtime_root}/include")
set_target_properties(${target} PROPERTIES POSITION_INDEPENDENT_CODE ON)
if(MSVC)
target_compile_options(${target} PRIVATE /W3 /utf-8)
else()
target_compile_options(${target} PRIVATE -Wno-deprecated-declarations)
endif()
endfunction()
function(dts_add_runtime_adapter suffix version_line source_directory runtime_subdirectory)
set(runtime_root
"${CMAKE_CURRENT_SOURCE_DIR}/third_party/spine-runtimes/${version_line}/${runtime_subdirectory}")
set(runtime_target "dts_spine_cpp_${suffix}")
set(adapter_target "dts_runtime_${suffix}")
dts_add_spine_runtime(${runtime_target} "${runtime_root}")
add_library(${adapter_target} SHARED
"${CMAKE_CURRENT_SOURCE_DIR}/runtime-plugins/${source_directory}/RuntimeAdapter.cpp")
target_include_directories(${adapter_target} PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/runtime-api")
target_link_libraries(${adapter_target} PRIVATE ${runtime_target})
set_target_properties(${adapter_target} PROPERTIES
CXX_VISIBILITY_PRESET hidden
VISIBILITY_INLINES_HIDDEN YES
OUTPUT_NAME "dts-runtime-${version_line}")
endfunction()