cmake_minimum_required (VERSION 3.1 FATAL_ERROR) project (libtree++ VERSION 0.1.0 LANGUAGES CXX) set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules) # # Set the required C++ standard # set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) # # We want to have a compile_commands.json file # set(CMAKE_EXPORT_COMPILE_COMMANDS 1) # # Module includes for compdb and doxygen # include(compdb) include(doxygen) configure_file(${PROJECT_SOURCE_DIR}/src/config.hpp.in ${PROJECT_SOURCE_DIR}/src/config.hpp @ONLY) set(generated "${PROJECT_SOURCE_DIR}/src/config.hpp") add_custom_target(clean-generated COMMAND rm -f ${generated}) add_library(tree STATIC src/config.hpp include/Tree/tree.hpp src/Tree/tree.cpp ) target_include_directories(tree PUBLIC $ $ PRIVATE src ) # # Everything TEST related # option(TEST_TREE "Turn running of tree specific tests on/off" ON) IF(${TEST_TREE}) enable_testing() message(STATUS "Tree tests enabled") IF(NOT TARGET Catch2) add_subdirectory(libs/Catch2 EXCLUDE_FROM_ALL) include(libs/Catch2/extras/Catch.cmake) ENDIF() include(CTest) ELSE() message(STATUS "Tree tests disabled") ENDIF() IF (${TEST_TREE}) add_executable(test_base tests/test_base.cpp) target_link_libraries(test_base Catch2WithMain tree) catch_discover_tests(test_base) ENDIF()