spine-runtimes/spine-c/CMakeLists.txt
Mario Zechner 9c06cef2be [c][cpp] Fix ir-generator, Update type hierarchy in C++
- ir-generator did not handle const String& parameters correctly
- Type hierarchy of Bone, Constraint was incorrect. Bone didn't extend Update, thus fetching RTTI in updateCache failed at runtime.
2025-07-11 02:17:12 +02:00

48 lines
1.3 KiB
CMake

cmake_minimum_required(VERSION 3.10)
project(spine-c C CXX)
set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_STANDARD 11)
# Include the common flags (including -fno-rtti)
include(${CMAKE_CURRENT_LIST_DIR}/../flags.cmake)
# Include spine-cpp
add_subdirectory(../spine-cpp ${CMAKE_CURRENT_BINARY_DIR}/spine-cpp)
# Collect all source files
file(GLOB SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/src/*.c"
"${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp"
)
file(GLOB GENERATED_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/src/generated/*.cpp"
)
list(APPEND SOURCES ${GENERATED_SOURCES})
# Create the library
add_library(spine-c STATIC ${SOURCES})
# Include directories
target_include_directories(spine-c PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/src
)
# Link with spine-cpp
target_link_libraries(spine-c PUBLIC spine-cpp)
# Add spine-cpp include directories
target_include_directories(spine-c PUBLIC
../spine-cpp/spine-cpp/include
)
# Export compile commands for better IDE support
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# Create test executable only if this is the top-level project
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
add_executable(spine-c-test test/test.c)
target_link_libraries(spine-c-test spine-c)
target_include_directories(spine-c-test PRIVATE include)
endif()