aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjmayer <jmayer@f5534014-38df-0310-8fa8-9805f1628bb7>2012-08-23 12:30:16 +0000
committerjmayer <jmayer@f5534014-38df-0310-8fa8-9805f1628bb7>2012-08-23 12:30:16 +0000
commit76933690b04b7de11dddfb458c802522c154dd30 (patch)
treea8078be00c3d79362fed9cd8656030d8a8777f9b
parent1561fc3e2a322a6ea92bfbed90fc811aceecb2bf (diff)
The proper way to set compiler flags in cmake is not by using
add_definitions() but the variables CMAKE_C{,XX}_FLAGS. Set these flags correctly at the toplevel, so no hack in the ui/qt/ subdir is required anymore. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@44633 f5534014-38df-0310-8fa8-9805f1628bb7
-rw-r--r--CMakeLists.txt21
-rw-r--r--ui/qt/CMakeLists.txt7
2 files changed, 20 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index dfbbab1a0c..edd7619f0e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -115,7 +115,9 @@ set(WIRESHARK_C_FLAGS
-Wcast-align
-Wformat-security
-fexcess-precision=fast
+)
+set(WIRESHARK_C_ONLY_FLAGS
# The following are C only, not C++
-Wdeclaration-after-statement
-Wno-pointer-sign
@@ -150,6 +152,9 @@ set(WIRESHARK_EXTRA_C_FLAGS
# More cleanup needed for this on LP64
-Wshorten-64-to-32
+)
+
+set(WIRESHARK_EXTRA_C_ONLY_FLAGS
# The following are C only, not C++
-Wbad-function-cast
-Wc++-compat
@@ -162,6 +167,7 @@ set(WIRESHARK_EXTRA_C_FLAGS
if(ENABLE_EXTRA_GCC_CHECKS) # This overrides -Werror
set(WIRESHARK_C_FLAGS ${WIRESHARK_C_FLAGS} ${WIRESHARK_EXTRA_C_FLAGS})
+ set(WIRESHARK_C_ONLY_FLAGS ${WIRESHARK_C_ONLY_FLAGS} ${WIRESHARK_EXTRA_C_ONLY_FLAGS})
endif()
add_definitions(
@@ -180,10 +186,23 @@ foreach(THIS_FLAG ${WIRESHARK_C_FLAGS})
set(V WS_C_FLAG_VALID${C})
check_c_compiler_flag(${${F}} ${V})
if (${${V}})
- add_definitions(${${F}})
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${F}}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${${F}}")
+ endif()
+ math(EXPR C "${C} + 1")
+endforeach()
+# Continue increasing C from previous loop
+foreach(THIS_FLAG ${WIRESHARK_C_ONLY_FLAGS})
+ set(F WS_C_FLAG_${C})
+ set(${F} ${THIS_FLAG})
+ set(V WS_C_FLAG_VALID${C})
+ check_c_compiler_flag(${${F}} ${V})
+ if (${${V}})
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${F}}")
endif()
math(EXPR C "${C} + 1")
endforeach()
+message(STATUS "C-Flags: ${CMAKE_C_FLAGS}\nCXX-Flags: ${CMAKE_CXX_FLAGS}")
if(NOT DISABLE_WERROR AND NOT ENABLE_EXTRA_GCC_CHECKS)
check_c_compiler_flag(-Werror WERROR)
diff --git a/ui/qt/CMakeLists.txt b/ui/qt/CMakeLists.txt
index 2b686a658d..e7971f0cc0 100644
--- a/ui/qt/CMakeLists.txt
+++ b/ui/qt/CMakeLists.txt
@@ -137,13 +137,6 @@ endif()
add_definitions(${QT_DEFINITIONS})
-# Get rid of C-only compile flags
-remove_definitions(
- -Wdeclaration-after-statement
- -Wno-pointer-sign
- -Wold-style-definition
-)
-
add_library(qtui STATIC
${QTSHARK_SRC}
${QTSHARK_UI_SRC}