77 lines
1.8 KiB
CMake
77 lines
1.8 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 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)
|