aboutsummaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2016-01-26 19:13:44 -0800
committerGuy Harris <guy@alum.mit.edu>2016-01-27 05:24:50 +0000
commit54e3b32027f1b28cc9871b5ff35c358eaf8cd05f (patch)
treebe8de4fd8e88d24eff55ce737941b1ff0bbf2545 /CMakeLists.txt
parent59bdb4bcb6fa8deea4bdd0cbf1940acc11ef5f4d (diff)
Don't treat Visual Studio specially for linker flags.
Have CHECK_C_LINKER_FLAG pass /WX to the linker if we're using MSVC, to force the link to fail if the linker doesn't recognize the flag. Add flags to WIRESHARK_LD_FLAGS even with MSVC; let CHECK_C_LINKER_FLAG figure out whether the flag should be used. While we're at it, fix CHECK_C_LINKER_FLAG to save and restore CMAKE_REQUIRED_LIBRARIES. Change-Id: I7f73b4cc3a28eb14e46c2e1e9ad69f5303754f01 Reviewed-on: https://code.wireshark.org/review/13558 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt40
1 files changed, 14 insertions, 26 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 137d52a670..c9a6400a42 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -595,34 +595,22 @@ else()
set (C_UNUSED "" )
endif()
+set(WIRESHARK_LD_FLAGS
+ -Wl,--as-needed
+ # -flto
+ # -fwhopr
+ # -fwhole-program
+)
+# CMAKE_POSITION_INDEPENDENT_CODE is only supported starting with CMake
+# 2.8.9. Do not add -pie automatically for older versions.
#
-# XXX - at least with the Visual Studio 12 generator, this would test
-# whether the flag works with the compiler, but, at least when building
-# for Win64, the flag "works", in that the link succeeds, but with a
-# warning of an unused linker argument.
-#
-# So we leave it out for now; maybe there's a way to force the linker to
-# fail with unknown arguments, or maybe we have to look for error
-# messages in the linker output, the way CHECK_C_COMPILER_FLAG does.
+# XXX - are there other compilers that don't support -pie? It's
+# not as if the only platforms we support are Windows and Linux....
#
-if(NOT CMAKE_C_COMPILER_ID MATCHES "MSVC")
- set(WIRESHARK_LD_FLAGS
- -Wl,--as-needed
- # -flto
- # -fwhopr
- # -fwhole-program
- )
- # CMAKE_POSITION_INDEPENDENT_CODE is only supported starting with CMake
- # 2.8.9. Do not add -pie automatically for older versions.
- #
- # XXX - are there other compilers that don't support -pie? It's
- # not as if the only platforms we support are Windows and Linux....
- #
- if(NOT CMAKE_VERSION VERSION_LESS "2.8.9")
- set(WIRESHARK_LD_FLAGS ${WIRESHARK_LD_FLAGS}
- -pie
- )
- endif()
+if(NOT CMAKE_VERSION VERSION_LESS "2.8.9")
+ set(WIRESHARK_LD_FLAGS ${WIRESHARK_LD_FLAGS}
+ -pie
+ )
endif()
include(CheckCLinkerFlag)