summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorsleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220>2014-09-10 22:36:02 +0000
committersleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220>2014-09-10 22:36:02 +0000
commiteb49c62b6ba3edc84c54ca7e3083a7b3c907c0a8 (patch)
tree262e20b7c1f3df6769615da2fe6c9bd510854d03 /cmake
parentc72999bb06160b3fc51877e221657715529e849c (diff)
downloadnavit-eb49c62b6ba3edc84c54ca7e3083a7b3c907c0a8.tar.gz
Fix:build:Check if compiler options are supported before using them.|Allows building with GCC 3.3, to resolve #1144.
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5892 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'cmake')
-rw-r--r--cmake/navit_macros.cmake17
1 files changed, 17 insertions, 0 deletions
diff --git a/cmake/navit_macros.cmake b/cmake/navit_macros.cmake
index de5ecb2f4..dd1b3bb37 100644
--- a/cmake/navit_macros.cmake
+++ b/cmake/navit_macros.cmake
@@ -86,3 +86,20 @@ macro(message_error)
set(NAVIT_DEPENDENCY_ERROR 1)
message( SEND_ERROR ${ARGN})
endmacro(message_error)
+
+include(CheckCCompilerFlag)
+include(CheckCXXCompilerFlag)
+function(add_compiler_flag_if_available FLAG)
+ set(VAR_FLAG_AVAILABLE_C "FLAG_AVAILABLE_C_${FLAG}")
+ check_c_compiler_flag(${FLAG} ${VAR_FLAG_AVAILABLE_C})
+ if (${${VAR_FLAG_AVAILABLE_C}})
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAG} ")
+ endif()
+ if(CMAKE_CXX_COMPILER) # C++ compiler is optional
+ set(VAR_FLAG_AVAILABLE_CXX "FLAG_AVAILABLE_CXX_${FLAG}")
+ check_cxx_compiler_flag(${FLAG} ${VAR_FLAG_AVAILABLE_CXX})
+ if (${${VAR_FLAG_AVAILABLE_CXX}})
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG} ")
+ endif()
+ endif()
+endfunction(add_compiler_flag_if_available)