- use functions instead of macros.
This avoids adding flags multiple times.
See the PARENT_SCOPE option of cmake's command "set" for details.

svn path=/trunk/; revision=53048
This commit is contained in:
Jérôme Gardou 2011-08-03 15:02:11 +00:00
parent 5658b2154c
commit 76598adce0

View file

@ -1,31 +1,22 @@
macro(add_compiler_flags)
function(add_compiler_flags)
# Adds the compiler flag to both CMAKE_C_FLAGS and CMAKE_CXX_FLAGS
foreach(flag ${ARGN})
set(flags_list "${flags_list} ${flag}")
endforeach()
if(CMAKE_C_FLAGS)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flags_list}")
else()
set(CMAKE_C_FLAGS ${flags_list})
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flags_list}" PARENT_SCOPE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flags_list}" PARENT_SCOPE)
endfunction()
if(CMAKE_CXX_FLAGS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flags_list}")
else()
set(CMAKE_CXX_FLAGS ${flags_list})
endif()
endmacro()
macro(add_linkerflag MODULE _flag)
function(add_linkerflag MODULE _flag)
set(NEW_LINKER_FLAGS ${_flag})
get_target_property(LINKER_FLAGS ${MODULE} LINK_FLAGS)
if(LINKER_FLAGS)
set(NEW_LINKER_FLAGS "${LINKER_FLAGS} ${NEW_LINKER_FLAGS}")
endif()
set_target_properties(${MODULE} PROPERTIES LINK_FLAGS ${NEW_LINKER_FLAGS})
endmacro()
endfunction()
macro(set_unicode)
add_definitions(-DUNICODE -D_UNICODE)