File: CompilerFlags.cmake

package info (click to toggle)
seqan3 3.0.2%2Bds-9
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 16,052 kB
  • sloc: cpp: 144,641; makefile: 1,288; ansic: 294; sh: 228; xml: 217; javascript: 50; python: 27; php: 25
file content (38 lines) | stat: -rw-r--r-- 1,498 bytes parent folder | download
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

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED on)
set(CMAKE_CXX_EXTENSIONS OFF)

include(DetectCPUFeatures)
include(FindCxaDemangle)

CheckAndAppendCompilerFlags(${CMAKE_BUILD_TYPE} "-Wall")
CheckAndAppendCompilerFlags(${CMAKE_BUILD_TYPE} "-Werror")
CheckAndAppendCompilerFlags(${CMAKE_BUILD_TYPE} "-Wextra")
CheckAndAppendCompilerFlags(${CMAKE_BUILD_TYPE} "-pedantic")
CheckAndAppendCompilerFlags("Release" "-ffast-math")
CheckAndAppendCompilerFlags("Release" "-funroll-loops")
CheckAndAppendCompilerFlags("Release" "-D__extern_always_inline=\"extern __always_inline\" ")
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
	CheckAndAppendCompilerFlags("Release" "-no-inline-min-size -no-inline-max-size")
endif ()
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
	CheckAndAppendCompilerFlags("Release" "/EHsc")
    CheckAndAppendCompilerFlags("Debug" "/Od")
    CheckAndAppendCompilerFlags("Release" "/Ox")
    set(vars CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
    foreach(var ${vars})
        string(REPLACE "/MD" "-MT" ${var} "${${var}}")
    endforeach(var)
    add_definitions("/DMSVC_COMPILER")
endif ()

if ( CODE_COVERAGE )
    CheckAndAppendCompilerFlags("Debug" "-g -fprofile-arcs -ftest-coverage -lgcov")
endif()

if(APPLE)
    if(USE_LIBCPP AND ("${CMAKE_CXX_COMPILER_ID}" MATCHES "^(Apple)?Clang$"))
        CheckAndAppendCompilerFlags(${CMAKE_BUILD_TYPE} "-stdlib=libc++")
    endif()
endif()