38 lines
1.7 KiB
CMake
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()
|