]> git.uio.no Git - u/mrichter/AliRoot.git/blob - Vc/cmake/AddCompilerFlag.cmake
bug fix for pion PID in systematics
[u/mrichter/AliRoot.git] / Vc / cmake / AddCompilerFlag.cmake
1 get_filename_component(_currentDir "${CMAKE_CURRENT_LIST_FILE}" PATH)
2 include("${_currentDir}/CheckCCompilerFlag.cmake")
3 include("${_currentDir}/CheckCXXCompilerFlag.cmake")
4 macro(AddCompilerFlag _flag)
5    string(REGEX REPLACE "[-.+/:= ]" "_" _flag_esc "${_flag}")
6    check_c_compiler_flag("${_flag}" check_c_compiler_flag_${_flag_esc})
7    check_cxx_compiler_flag("${_flag}" check_cxx_compiler_flag_${_flag_esc})
8
9    set(_c_flags "CMAKE_C_FLAGS")
10    set(_cxx_flags "CMAKE_CXX_FLAGS")
11    if(${ARGC} EQUAL 2)
12       set(${ARGV1} "${check_cxx_compiler_flag_${_flag_esc}}")
13    elseif(${ARGC} GREATER 2)
14       set(state 0)
15       unset(_c_flags)
16       unset(_cxx_flags)
17       foreach(_arg ${ARGN})
18          if(_arg STREQUAL "C_FLAGS")
19             set(state 1)
20          elseif(_arg STREQUAL "CXX_FLAGS")
21             set(state 2)
22          elseif(_arg STREQUAL "C_RESULT")
23             set(state 3)
24          elseif(_arg STREQUAL "CXX_RESULT")
25             set(state 4)
26          elseif(state EQUAL 1)
27             set(_c_flags "${_arg}")
28          elseif(state EQUAL 2)
29             set(_cxx_flags "${_arg}")
30          elseif(state EQUAL 3)
31             set(${_arg} ${check_c_compiler_flag_${_flag_esc}})
32          elseif(state EQUAL 4)
33             set(${_arg} ${check_cxx_compiler_flag_${_flag_esc}})
34          else()
35             message(FATAL_ERROR "Syntax error for AddCompilerFlag")
36          endif()
37       endforeach()
38    endif()
39
40    if(check_c_compiler_flag_${_flag_esc} AND DEFINED _c_flags)
41       set(${_c_flags} "${${_c_flags}} ${_flag}")
42    endif()
43    if(check_cxx_compiler_flag_${_flag_esc} AND DEFINED _cxx_flags)
44       set(${_cxx_flags} "${${_cxx_flags}} ${_flag}")
45    endif()
46 endmacro(AddCompilerFlag)