[PATCH 3/3] Group all scattered compiler settings.
Alexander Neundorf
neundorf at kde.org
Fri Jul 27 20:14:44 UTC 2012
On Monday 23 July 2012, Raphael Kubo da Costa wrote:
> No functional changes: simply put all compiler-related changes in
> a single block to ease maintenance, and add some comments to explain
> why some calls are made.
Are you sure about them, also e.g. on OSX ?
If so, go ahead.
Also, can you please commit those changes also to kde-
modules/KDECompilerSettings.cmake in the (new) extra-cmake-modules git
repository ?
Alex
> ---
> cmake/modules/FindKDE4Internal.cmake | 56
> +++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 27
> deletions(-)
>
> diff --git a/cmake/modules/FindKDE4Internal.cmake
> b/cmake/modules/FindKDE4Internal.cmake index 6822b02..d0a633c 100644
> --- a/cmake/modules/FindKDE4Internal.cmake
> +++ b/cmake/modules/FindKDE4Internal.cmake
> @@ -1092,29 +1092,6 @@ if (APPLE)
> endif (APPLE)
>
>
> -if (CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME STREQUAL GNU)
> - if (CMAKE_COMPILER_IS_GNUCXX)
> - set ( _KDE4_PLATFORM_DEFINITIONS -D_XOPEN_SOURCE=500 -D_BSD_SOURCE
> -D_GNU_SOURCE) - set ( CMAKE_SHARED_LINKER_FLAGS
> "-Wl,--fatal-warnings -Wl,--no-undefined -lc
> ${CMAKE_SHARED_LINKER_FLAGS}") - set ( CMAKE_MODULE_LINKER_FLAGS
> "-Wl,--fatal-warnings -Wl,--no-undefined -lc
> ${CMAKE_MODULE_LINKER_FLAGS}") -
> - set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--enable-new-dtags
> ${CMAKE_SHARED_LINKER_FLAGS}") - set ( CMAKE_MODULE_LINKER_FLAGS
> "-Wl,--enable-new-dtags ${CMAKE_MODULE_LINKER_FLAGS}") - set (
> CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-new-dtags ${CMAKE_EXE_LINKER_FLAGS}")
> -
> - # we profile...
> - if(CMAKE_BUILD_TYPE_TOLOWER MATCHES profile)
> - set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}
> -fprofile-arcs -ftest-coverage") - set (CMAKE_MODULE_LINKER_FLAGS
> "${CMAKE_MODULE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage") -
> endif(CMAKE_BUILD_TYPE_TOLOWER MATCHES profile)
> - endif (CMAKE_COMPILER_IS_GNUCXX)
> - if (CMAKE_C_COMPILER MATCHES "icc")
> - set ( _KDE4_PLATFORM_DEFINITIONS -D_XOPEN_SOURCE=500 -D_BSD_SOURCE
> -D_GNU_SOURCE) - set ( CMAKE_SHARED_LINKER_FLAGS
> "-Wl,--fatal-warnings -Wl,--no-undefined -lc
> ${CMAKE_SHARED_LINKER_FLAGS}") - set ( CMAKE_MODULE_LINKER_FLAGS
> "-Wl,--fatal-warnings -Wl,--no-undefined -lc
> ${CMAKE_MODULE_LINKER_FLAGS}") - endif (CMAKE_C_COMPILER MATCHES "icc")
> -endif (CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME STREQUAL GNU)
> -
> if (UNIX)
> set ( _KDE4_PLATFORM_DEFINITIONS "${_KDE4_PLATFORM_DEFINITIONS}
> -D_LARGEFILE64_SOURCE")
>
> @@ -1204,10 +1181,6 @@ if (CMAKE_COMPILER_IS_GNUCXX)
> set(CMAKE_C_FLAGS_DEBUGFULL "-g3 -fno-inline")
> set(CMAKE_C_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage
> -fprofile-arcs")
>
> - if (CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME STREQUAL GNU)
> - add_definitions (-D_BSD_SOURCE)
> - endif (CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME STREQUAL
> GNU) -
> set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -std=iso9899:1990
> -Wundef -Wcast-align -Werror-implicit-function-declaration
> -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings
> -Wformat-security -Wmissing-format-attribute -fno-common") # As of Qt
> 4.6.x we need to override the new exception macros if we want compile with
> -fno-exceptions set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}
> -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align
> -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security
> -fno-exceptions -DQT_NO_EXCEPTIONS -fno-check-new -fno-common") @@
> -1217,12 +1190,33 @@ if (CMAKE_COMPILER_IS_GNUCXX)
> set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}
> -pthread") endif (CMAKE_SYSTEM_NAME STREQUAL GNU)
>
> + if (CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME STREQUAL GNU)
> + # Needed by glibc.
> + set(_KDE4_PLATFORM_DEFINITIONS "-D_XOPEN_SOURCE=500 -D_BSD_SOURCE
> -D_GNU_SOURCE ${_KDE4_PLATFORM_DEFINITIONS}") +
> + # This should not be needed, as it is also part of
> _KDE4_PLATFORM_DEFINITIONS below. + # It is kept here nonetheless
> both for backwards compatibility in case one does not use
> add_definitions(${KDE4_DEFINITIONS}) + # and also because it is/was
> needed by glibc for snprintf to be available when building C files. +
> # See commit 4a44862b2d178c1d2e1eb4da90010d19a1e4a42c.
> + add_definitions(-D_BSD_SOURCE)
> +
> + set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--enable-new-dtags
> -Wl,--fatal-warnings -Wl,--no-undefined -lc ${CMAKE_SHARED_LINKER_FLAGS}")
> + set(CMAKE_MODULE_LINKER_FLAGS "-Wl,--enable-new-dtags
> -Wl,--fatal-warnings -Wl,--no-undefined -lc ${CMAKE_MODULE_LINKER_FLAGS}")
> + set(CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-new-dtags
> ${CMAKE_EXE_LINKER_FLAGS}") + endif (CMAKE_SYSTEM_NAME MATCHES Linux OR
> CMAKE_SYSTEM_NAME STREQUAL GNU) +
> # gcc under Windows
> if (MINGW)
> set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}
> -Wl,--export-all-symbols -Wl,--disable-auto-import") set
> (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}
> -Wl,--export-all-symbols -Wl,--disable-auto-import") endif (MINGW)
>
> + # we profile...
> + if (CMAKE_BUILD_TYPE_TOLOWER MATCHES profile)
> + set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}
> -fprofile-arcs -ftest-coverage") + set (CMAKE_MODULE_LINKER_FLAGS
> "${CMAKE_MODULE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage") + endif
> (CMAKE_BUILD_TYPE_TOLOWER MATCHES profile)
> +
> check_cxx_compiler_flag(-fPIE HAVE_FPIE_SUPPORT)
> if(KDE4_ENABLE_FPIE)
> if(HAVE_FPIE_SUPPORT)
> @@ -1316,6 +1310,14 @@ if (CMAKE_C_COMPILER MATCHES "icc")
> set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ansi -Wall -w1 -Wpointer-arith
> -fno-common") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ansi -Wall -w1
> -Wpointer-arith -fno-exceptions -fno-common")
>
> + if (CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME STREQUAL GNU)
> + # Needed by glibc.
> + set (_KDE4_PLATFORM_DEFINITIONS "-D_XOPEN_SOURCE=500 -D_BSD_SOURCE
> -D_GNU_SOURCE ${_KDE4_PLATFORM_DEFINITIONS}") +
> + set (CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings
> -Wl,--no-undefined -lc ${CMAKE_SHARED_LINKER_FLAGS}") + set
> (CMAKE_MODULE_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc
> ${CMAKE_MODULE_LINKER_FLAGS}") + endif (CMAKE_SYSTEM_NAME MATCHES Linux
> OR CMAKE_SYSTEM_NAME STREQUAL GNU) +
> # visibility support
> set(__KDE_HAVE_ICC_VISIBILITY)
> # check_cxx_compiler_flag(-fvisibility=hidden __KDE_HAVE_ICC_VISIBILITY)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-buildsystem/attachments/20120727/0b1e3726/attachment-0001.html>
More information about the Kde-buildsystem
mailing list