cmake_minimum_required(VERSION 3.20) project(vectorail-gc VERSION 0.1.0 LANGUAGES CXX) include(GNUInstallDirs) include(CMakePackageConfigHelpers) option(VECTORAIL_GC_BUILD_TOOLS "Build format inspection tools" ON) find_package(glm CONFIG REQUIRED) add_library(vectorail-gc src/EventStream.cpp src/MtxArchive.cpp src/RvbLayout.cpp src/RvbScene.cpp src/StageCatalog.cpp src/StageDat.cpp src/StagePattern.cpp src/TumoModel.cpp ) add_library(Vectorail::GC ALIAS vectorail-gc) target_compile_features(vectorail-gc PUBLIC cxx_std_17) target_include_directories(vectorail-gc PUBLIC $ $ ) set_target_properties(vectorail-gc PROPERTIES EXPORT_NAME GC VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} ) add_library(vectorail-gc-effects src/GcTargetEffect.cpp) add_library(Vectorail::GCEffects ALIAS vectorail-gc-effects) target_compile_features(vectorail-gc-effects PUBLIC cxx_std_17) target_include_directories(vectorail-gc-effects PUBLIC $ $ ) target_link_libraries(vectorail-gc-effects PUBLIC glm::glm) set_target_properties(vectorail-gc-effects PROPERTIES EXPORT_NAME GCEffects VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} ) if(VECTORAIL_GC_BUILD_TOOLS) add_executable(vectorail-gc-stage-probe tools/stage_probe.cpp) target_link_libraries(vectorail-gc-stage-probe PRIVATE Vectorail::GC) add_executable(vectorail-gc-rvb-probe tools/rvb_probe.cpp) target_link_libraries(vectorail-gc-rvb-probe PRIVATE Vectorail::GC) add_executable(vectorail-gc-mtx-probe tools/mtx_probe.cpp) target_link_libraries(vectorail-gc-mtx-probe PRIVATE Vectorail::GC) add_executable(vectorail-gc-effect-probe tools/effect_probe.cpp) target_link_libraries(vectorail-gc-effect-probe PRIVATE Vectorail::GCEffects) endif() install(TARGETS vectorail-gc vectorail-gc-effects EXPORT VectorailGCTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(EXPORT VectorailGCTargets FILE VectorailGCTargets.cmake NAMESPACE Vectorail:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/VectorailGC ) configure_package_config_file( cmake/VectorailGCConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/VectorailGCConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/VectorailGC ) write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/VectorailGCConfigVersion.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/VectorailGCConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/VectorailGCConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/VectorailGC )