collector/CMakeLists.txt
2022-10-06 11:22:08 +02:00

91 lines
1.9 KiB
CMake

# 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 ${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(${PROJECT_NAME}_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)
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(
${PROJECT_NAME}
PRIVATE Boost::filesystem
Boost::system
Boost::program_options
dir_monitor
)