diff options
author | Rolf Eike Beer <eb@emlix.com> | 2017-08-02 13:13:53 +0200 |
---|---|---|
committer | Rolf Eike Beer <eike@sf-mail.de> | 2017-08-05 15:05:51 +0200 |
commit | 45a9b99af9683facdaa576690f1e2d2e04999281 (patch) | |
tree | 9b653d31bb4d8f5f235c28a6a5fe189d56e5ec9f | |
parent | 65fb9a04069c87dd36bd03e453d2e9b2e5c515d6 (diff) | |
download | libexpat-git-45a9b99af9683facdaa576690f1e2d2e04999281.tar.gz |
CMake: set -fno-strict-aliasing only if the compiler supports it
-rw-r--r-- | expat/CMakeLists.txt | 5 | ||||
-rw-r--r-- | expat/ConfigureChecks.cmake | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/expat/CMakeLists.txt b/expat/CMakeLists.txt index 9ba93f40..76e99c39 100644 --- a/expat/CMakeLists.txt +++ b/expat/CMakeLists.txt @@ -39,7 +39,10 @@ endif(BUILD_tests) include(${CMAKE_CURRENT_LIST_DIR}/ConfigureChecks.cmake)
-set(EXTRA_LINK_AND_COMPILE_FLAGS "-fno-strict-aliasing")
+set(EXTRA_LINK_AND_COMPILE_FLAGS)
+if(FLAG_NO_STRICT_ALIASING)
+ set(EXTRA_LINK_AND_COMPILE_FLAGS "${EXTRA_LINK_AND_COMPILE_FLAGS} -fno-strict-aliasing")
+endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_LINK_AND_COMPILE_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_LINK_AND_COMPILE_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${EXTRA_LINK_AND_COMPILE_FLAGS}")
diff --git a/expat/ConfigureChecks.cmake b/expat/ConfigureChecks.cmake index 2771a743..6e440ca0 100644 --- a/expat/ConfigureChecks.cmake +++ b/expat/ConfigureChecks.cmake @@ -1,3 +1,4 @@ +include(CheckCCompilerFlag)
include(CheckIncludeFile)
include(CheckIncludeFiles)
include(CheckFunctionExists)
@@ -42,3 +43,5 @@ endif(HAVE_SYS_TYPES_H) configure_file(expat_config.h.cmake "${CMAKE_CURRENT_BINARY_DIR}/expat_config.h")
add_definitions(-DHAVE_EXPAT_CONFIG_H)
+
+check_c_compiler_flag("-fno-strict-aliasing" FLAG_NO_STRICT_ALIASING)
|