Back to home page

sPhenix code displayed by LXR

 
 

    


Warning, /acts/cmake/ActsCompilerOptions.cmake is written in an unsupported language. File is not indexed.

0001 # Acts compiler flags
0002 if (NOT CMAKE_BUILD_TYPE)
0003   set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Build type configuration" FORCE)
0004   message(STATUS "Setting default build type: ${CMAKE_BUILD_TYPE}")
0005 endif() 
0006 
0007 set(ACTS_CXX_FLAGS "-Wall -Wextra -Wpedantic -Wshadow -Wno-unused-local-typedefs")
0008 set(ACTS_CXX_FLAGS_DEBUG "--coverage")
0009 set(ACTS_CXX_FLAGS_MINSIZEREL "")
0010 set(ACTS_CXX_FLAGS_RELEASE "")
0011 set(ACTS_CXX_FLAGS_RELWITHDEBINFO "")
0012 
0013 set(ACTS_CXX_STANDARD 17)
0014 set(ACTS_CXX_STANDARD_FEATURE cxx_std_17)
0015 if(DEFINED CMAKE_CXX_STANDARD)
0016   if(${CMAKE_CXX_STANDARD} GREATER_EQUAL 17)
0017     set(ACTS_CXX_STANDARD ${CMAKE_CXX_STANDARD})
0018     set(ACTS_CXX_STANDARD_FEATURE "cxx_std_${CMAKE_CXX_STANDARD}")
0019   else()
0020     message(ERROR "CMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}, but ACTS requires C++ >=17")
0021   endif()
0022 endif()
0023 
0024 # This adds some useful conversion checks like float-to-bool, float-to-int, etc.
0025 # However, at the moment this is only added to clang builds, since GCC's -Wfloat-conversion 
0026 # is much more aggressive and also triggers on e.g., double-to-float
0027 if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|AppleClang") 
0028  set(ACTS_CXX_FLAGS "${ACTS_CXX_FLAGS} -Wfloat-conversion")
0029 endif()
0030 
0031 if(ACTS_ENABLE_CPU_PROFILING OR ACTS_ENABLE_MEMORY_PROFILING)
0032   message(STATUS "Added -g compile flag")
0033   set(ACTS_CXX_FLAGS "${ACTS_CXX_FLAGS} -g")
0034 endif()
0035 
0036 # Acts linker flags
0037 set(ACTS_EXE_LINKER_FLAGS_DEBUG "--coverage")
0038 set(ACTS_SHARED_LINKER_FLAGS_DEBUG "--coverage ")
0039 
0040 # assign to global CXX flags
0041 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ACTS_CXX_FLAGS}")
0042 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${ACTS_CXX_FLAGS_DEBUG}")
0043 set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${ACTS_CXX_FLAGS_MINSIZEREL}")
0044 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${ACTS_CXX_FLAGS_RELEASE}")
0045 set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${ACTS_CXX_FLAGS_RELWITHDEBINFO}")
0046 
0047 # assign to global linker flags
0048 set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${ACTS_EXE_LINKER_FLAGS_DEBUG}")
0049 set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} ${ACTS_SHARED_LINKER_FLAGS_DEBUG}")
0050 
0051 # silence warning about missing RPATH on Mac OSX
0052 set(CMAKE_MACOSX_RPATH 1)
0053 
0054 # bake where we found external dependencies, if they were not in the default library directories
0055 set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
0056 # set relative library path for ACTS libraries
0057 set(CMAKE_INSTALL_RPATH "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}")