mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-20 17:26:01 +08:00
48 lines
1.5 KiB
CMake
48 lines
1.5 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
project(spine-cpp)
|
|
|
|
include(${CMAKE_CURRENT_LIST_DIR}/../flags.cmake)
|
|
|
|
option(SPINE_NO_FILE_IO "Disable file I/O operations" OFF)
|
|
|
|
include_directories(include)
|
|
file(GLOB INCLUDES "include/**/*.h")
|
|
file(GLOB SOURCES "src/**/*.cpp")
|
|
|
|
add_library(spine-cpp STATIC ${SOURCES} ${INCLUDES})
|
|
target_include_directories(spine-cpp PUBLIC include)
|
|
|
|
if(SPINE_NO_FILE_IO)
|
|
target_compile_definitions(spine-cpp PRIVATE SPINE_NO_FILE_IO)
|
|
endif()
|
|
|
|
# Install target
|
|
install(TARGETS spine-cpp EXPORT spine-cpp_TARGETS DESTINATION dist/lib)
|
|
install(FILES ${INCLUDES} DESTINATION dist/include)
|
|
|
|
# Export target
|
|
export(
|
|
EXPORT spine-cpp_TARGETS
|
|
FILE ${CMAKE_CURRENT_BINARY_DIR}/spine-cppTargets.cmake
|
|
NAMESPACE "Spine::")
|
|
|
|
# Optional tests
|
|
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
|
add_executable(headless-test ${CMAKE_CURRENT_SOURCE_DIR}/tests/HeadlessTest.cpp)
|
|
target_link_libraries(headless-test spine-cpp)
|
|
|
|
if(SPINE_NO_FILE_IO)
|
|
target_compile_definitions(headless-test PRIVATE SPINE_NO_FILE_IO)
|
|
endif()
|
|
|
|
# Static variants (Linux only, but not with sanitizers)
|
|
if(UNIX AND NOT APPLE AND NOT SPINE_SANITIZE)
|
|
add_executable(headless-test-static ${CMAKE_CURRENT_SOURCE_DIR}/tests/HeadlessTest.cpp)
|
|
target_link_libraries(headless-test-static spine-cpp)
|
|
target_link_options(headless-test-static PRIVATE -static)
|
|
|
|
if(SPINE_NO_FILE_IO)
|
|
target_compile_definitions(headless-test-static PRIVATE SPINE_NO_FILE_IO)
|
|
endif()
|
|
endif()
|
|
endif() |