# CMake configuration for demo project cmake_minimum_required(VERSION 3.16) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_CLANG_TIDY clang-tidy) include(ProcessorCount) ProcessorCount(CPU_COUNT) if(CPU_COUNT EQUAL 0) set(CPU_COUNT 4) endif() message(STATUS "Counted ${CPU_COUNT} cores") set(CTEST_BUILD_FLAGS -j${CPU_COUNT}) set(ctest_test_args ${ctest_test_args} PARALLEL_LEVEL ${CPU_COUNT}) execute_process( COMMAND git describe --tags --dirty --always WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE VERSION_STRING OUTPUT_STRIP_TRAILING_WHITESPACE ) string( REGEX REPLACE "^v?([0-9]+)\\.([0-9]+)\\.([0-9]+).*$" "\\1.\\2.\\3" MODIFIED_VERSION_STRING "${VERSION_STRING}" ) project( collector VERSION 0.0.0 # ${MODIFIED_VERSION_STRING} LANGUAGES CXX ) include(FetchContent) set(FETCHCONTENT_QUIET FALSE) set(BOOST_ENABLE_CMAKE ON) FetchContent_Declare( boostorg GIT_REPOSITORY https://github.com/boostorg/boost.git GIT_TAG boost-1.80.0 GIT_PROGRESS TRUE GIT_CONFIG fetch.parallel=${CPU_COUNT} submodule.fetchJobs=${CPU_COUNT} GIT_SHALLOW TRUE ) FetchContent_Declare( dir_monitor GIT_REPOSITORY https://github.com/schtobia/dir_monitor.git GIT_TAG master GIT_PROGRESS TRUE GIT_SHALLOW TRUE ) FetchContent_Populate(boostorg) add_subdirectory(${boostorg_SOURCE_DIR} ${boostorg_BINARY_DIR}) FetchContent_MakeAvailable(dir_monitor) enable_testing() configure_file(version.hpp.in ${PROJECT_SOURCE_DIR}/version.hpp) add_executable(collector_test test.cpp) target_compile_options( ${PROJECT_NAME}_test PUBLIC -Wall -Wextra -Wshadow -Wnon-virtual-dtor ) target_link_libraries(${PROJECT_NAME}_test PRIVATE Boost::filesystem Boost::system Boost::unit_test_framework dir_monitor) add_test(NAME test1 COMMAND $[PROJECT_NAME}_test)