]> git.uio.no Git - u/mrichter/AliRoot.git/blame - Vc/cmake/AddCompilerFlag.cmake
Vc package added (version 0.6.79-dev)
[u/mrichter/AliRoot.git] / Vc / cmake / AddCompilerFlag.cmake
CommitLineData
f22341db 1get_filename_component(_currentDir "${CMAKE_CURRENT_LIST_FILE}" PATH)
2include("${_currentDir}/CheckCCompilerFlag.cmake")
3include("${_currentDir}/CheckCXXCompilerFlag.cmake")
4macro(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()
46endmacro(AddCompilerFlag)