Warning, /acts/Traccc/cmake/traccc-compiler-options-cpp.cmake is written in an unsupported language. File is not indexed.
0001 # TRACCC library, part of the ACTS project (R&D line)
0002 #
0003 # (c) 2021-2024 CERN for the benefit of the ACTS project
0004 #
0005 # Mozilla Public License Version 2.0
0006
0007 # Include the helper function(s).
0008 include(traccc-functions)
0009 include(CheckCXXCompilerFlag)
0010
0011 # Turn on the correct setting for the __cplusplus macro with MSVC.
0012 if("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC")
0013 traccc_add_flag( CMAKE_CXX_FLAGS "/Zc:__cplusplus" )
0014 endif()
0015
0016 # Turn on a number of warnings for the "known compilers".
0017 if(
0018 ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
0019 OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
0020 OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "IntelLLVM")
0021 )
0022 # Basic flags for all build modes.
0023 traccc_add_flag( CMAKE_CXX_FLAGS "-Wall" )
0024 traccc_add_flag( CMAKE_CXX_FLAGS "-Wextra" )
0025 traccc_add_flag( CMAKE_CXX_FLAGS "-Wshadow" )
0026 traccc_add_flag( CMAKE_CXX_FLAGS "-Wunused-local-typedefs" )
0027 traccc_add_flag( CMAKE_CXX_FLAGS "-Wpedantic" )
0028 traccc_add_flag( CMAKE_CXX_FLAGS "-Wold-style-cast" )
0029 traccc_add_flag( CMAKE_CXX_FLAGS "-Wzero-as-null-pointer-constant" )
0030 traccc_add_flag( CMAKE_CXX_FLAGS "-Woverloaded-virtual" )
0031 if(PROJECT_IS_TOP_LEVEL)
0032 traccc_add_flag( CMAKE_CXX_FLAGS "-Wconversion" )
0033 endif()
0034
0035 # Fail on warnings, if asked for that behaviour.
0036 if(TRACCC_FAIL_ON_WARNINGS)
0037 traccc_add_flag( CMAKE_CXX_FLAGS "-Werror" )
0038 endif()
0039
0040 elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC")
0041
0042 # Basic flags for all build modes.
0043 string(REGEX REPLACE "/W[0-9]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
0044 traccc_add_flag( CMAKE_CXX_FLAGS "/W4" )
0045
0046 # Fail on warnings, if asked for that behaviour.
0047 if(TRACCC_FAIL_ON_WARNINGS)
0048 traccc_add_flag( CMAKE_CXX_FLAGS "/WX" )
0049 endif()
0050 endif()
0051
0052 # Set architecture level to v2 - enable generation of code using SSE4.2.
0053 # But only use the flag if it's available from the compiler. And the user
0054 # didn't specify some other -march flag yet.
0055 if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64")
0056 set(X86_FLAG "-march=x86-64-v2")
0057 check_cxx_compiler_flag("${X86_FLAG}" TRACCC_SSE42_SUPPORTED)
0058 if(TRACCC_SSE42_SUPPORTED AND (NOT "${CMAKE_CXX_FLAGS}" MATCHES "-march="))
0059 traccc_add_flag( CMAKE_CXX_FLAGS "${X86_FLAG}" )
0060 endif()
0061 unset(X86_FLAG)
0062 endif()