spriteforge/CMakeLists.txt

32 lines
1.3 KiB
CMake
Raw Permalink Normal View History

cmake_minimum_required(VERSION 3.16)
project(spriteforge_runtime LANGUAGES C CXX)
option(SPRITEFORGE_BUILD_TESTS "Build C99/C++17 runtime tests" ON)
option(SPRITEFORGE_BUILD_RAYLIB_EXAMPLE "Build isolated raylib viewer" OFF)
add_library(spriteforge_headers INTERFACE)
target_include_directories(spriteforge_headers INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include")
if(SPRITEFORGE_BUILD_TESTS)
enable_testing()
add_executable(sfa_c99_smoke tests/c99_smoke.c)
target_link_libraries(sfa_c99_smoke PRIVATE spriteforge_headers)
if(NOT MSVC)
target_link_libraries(sfa_c99_smoke PRIVATE m)
endif()
set_property(TARGET sfa_c99_smoke PROPERTY C_STANDARD 99)
add_executable(sfp_c99_smoke tests/sfp_c99_smoke.c)
target_link_libraries(sfp_c99_smoke PRIVATE spriteforge_headers)
set_property(TARGET sfp_c99_smoke PROPERTY C_STANDARD 99)
add_executable(sfa_cpp17_smoke tests/cpp17_smoke.cpp)
target_link_libraries(sfa_cpp17_smoke PRIVATE spriteforge_headers)
set_property(TARGET sfa_cpp17_smoke PROPERTY CXX_STANDARD 17)
endif()
if(SPRITEFORGE_BUILD_RAYLIB_EXAMPLE)
find_package(raylib 6 REQUIRED)
add_executable(spriteforge_raylib_example examples/raylib_cpp17/main.cpp)
target_link_libraries(spriteforge_raylib_example PRIVATE spriteforge_headers raylib)
set_property(TARGET spriteforge_raylib_example PROPERTY CXX_STANDARD 17)
endif()