mirror of
https://github.com/BlackMATov/promise.hpp.git
synced 2025-12-13 03:46:29 +07:00
53 lines
1.6 KiB
CMake
53 lines
1.6 KiB
CMake
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
|
|
project(promise)
|
|
|
|
#
|
|
# coverage mode
|
|
#
|
|
|
|
option(PROMISE_BUILD_WITH_COVERAGE "Build with coverage" OFF)
|
|
if(PROMISE_BUILD_WITH_COVERAGE AND (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang"))
|
|
add_definitions(-DPROMISE_BUILD_WITH_COVERAGE)
|
|
set(PROMISE_COVERAGE_FLAGS "--coverage")
|
|
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${PROMISE_COVERAGE_FLAGS}")
|
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${PROMISE_COVERAGE_FLAGS}")
|
|
set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} ${PROMISE_COVERAGE_FLAGS}")
|
|
endif()
|
|
|
|
#
|
|
# sanitizer mode
|
|
#
|
|
|
|
option(PROMISE_BUILD_WITH_SANITIZER "Build with sanitizer" OFF)
|
|
if(PROMISE_BUILD_WITH_SANITIZER AND (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang"))
|
|
add_definitions(-DPROMISE_BUILD_WITH_SANITIZER)
|
|
set(PROMISE_SANITIZER_FLAGS "-fno-omit-frame-pointer -fsanitize=address")
|
|
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${PROMISE_SANITIZER_FLAGS}")
|
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${PROMISE_SANITIZER_FLAGS}")
|
|
set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} ${PROMISE_SANITIZER_FLAGS}")
|
|
endif()
|
|
|
|
#
|
|
# tests executable
|
|
#
|
|
|
|
find_package(Threads REQUIRED)
|
|
|
|
file(GLOB test_sources "*.cpp" "*.hpp")
|
|
add_executable(${PROJECT_NAME} ${test_sources})
|
|
|
|
if(MSVC)
|
|
target_compile_options(${PROJECT_NAME} PRIVATE /bigobj)
|
|
endif(MSVC)
|
|
|
|
target_link_libraries(${PROJECT_NAME}
|
|
Threads::Threads)
|
|
|
|
set_target_properties(${PROJECT_NAME} PROPERTIES
|
|
CXX_STANDARD 14
|
|
CXX_STANDARD_REQUIRED YES
|
|
CXX_EXTENSIONS NO)
|
|
|
|
enable_testing()
|
|
add_test(${PROJECT_NAME} ${PROJECT_NAME})
|