[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