spine-runtimes/spine-c/CMakeLists.txt

43 lines
1.1 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"
"${CMAKE_CURRENT_SOURCE_DIR}/src/generated/*.cpp"
)
# 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
)
# Create test executable only if this is the top-level project
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
add_executable(headless-test ${CMAKE_CURRENT_SOURCE_DIR}/tests/headless-test.c)
target_link_libraries(headless-test spine-c)
endif()