-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
70 lines (51 loc) · 2.83 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
cmake_minimum_required (VERSION 3.5)
project (lfQueue)
message("CMake version ${CMAKE_VERSION}")
message("CMake generator ${CMAKE_GENERATOR}")
message("Compiler ${CMAKE_CXX_COMPILER_ID}")
message("Compiler Version ${CMAKE_CXX_COMPILER_VERSION}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../../bin")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
list(APPEND MSVC_ADD_CXX_FLAGS "/w14242" "/w14254" "/w14263" "/w14265" "/w14287" "/we4289" "/w14296" "/w14311")
list(APPEND MSVC_ADD_CXX_FLAGS "/w14545" "/w14546" "/w14263" "/w14547" "/w14549" "/w14555" "/w14619" "/w14640")
list(APPEND MSVC_ADD_CXX_FLAGS "/w14826" "/w14905" "/w14906" "/w14928" "/EHsc")
list(APPEND GCC_ADD_CXX_FLAGS "-Wall -Wextra" "-Wshadow" "-Wnon-virtual-dtor" "-pedantic" "-Wold-style-cast" "-Wcast-align" "-Wunused")
list(APPEND GCC_ADD_CXX_FLAGS "-Woverloaded-virtual" "-Wpedantic" "-Wsign-conversion" "-Wmisleading-indentation" "-Wduplicated-cond")
list(APPEND GCC_ADD_CXX_FLAGS "-Wduplicated-branches" "-Wlogical-op" "-Wnull-dereference" "-Wuseless-cast" "-Wdouble-promotion")
list(APPEND GCC_ADD_CXX_FLAGS "-Wlifetime")
include(CheckCXXCompilerFlag)
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
foreach(CXX_FLAG ${MSVC_ADD_CXX_FLAGS})
check_cxx_compiler_flag(${CXX_FLAG} HAS_CXX_FLAG_${CXX_FLAG})
if (HAS_CXX_FLAG_${CXX_FLAG})
message("Adding compiler flag ${CXX_FLAG}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_FLAG}")
endif()
endforeach()
endif()
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
foreach(CXX_FLAG ${GCC_ADD_CXX_FLAGS})
check_cxx_compiler_flag(${CXX_FLAG} HAS_CXX_FLAG_${CXX_FLAG})
if (HAS_CXX_FLAG_${CXX_FLAG})
message("Adding compiler flag ${CXX_FLAG}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_FLAG}")
endif()
endforeach()
if(DEFINED ENV{ENABLE_COVERITY_SCAN})
message("Enabling coverage build")
add_compile_options(-fprofile-arcs -ftest-coverage -O0)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")
endif()
endif()
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
set(CONAN_LIBCXX ${CONAN_SETTINGS_COMPILER_LIBCXX})
conan_basic_setup(NO_OUTPUT_DIRS)
add_executable(lfQueueTest src/tests/mainTests.cpp
src/tests/basic.cpp
src/tests/mtTests.cpp)
target_include_directories(lfQueueTest PRIVATE src/tests
src/lfQueue)
target_link_libraries(lfQueueTest ${CONAN_LIBS})
set_property(TARGET lfQueueTest PROPERTY CXX_STANDARD 17)
set_property(TARGET lfQueueTest PROPERTY CXX_STANDARD_REQUIRED ON)