Back to home page

EIC code displayed by LXR

 
 

    


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()