diff options
| author | Dirk Mueller <mueller@kde.org> | 2006-04-26 15:49:26 +0000 | 
|---|---|---|
| committer | Dirk Mueller <mueller@kde.org> | 2006-04-26 15:49:26 +0000 | 
| commit | 3862d6ce313b4525242c859645ad13b1047054af (patch) | |
| tree | 746d3cc4ae9a73e36b41a276e8fefb7708992588 | |
| parent | e9a477bcfa7553bded8d7cb750a802d0d79915bf (diff) | |
| download | extra-cmake-modules-3862d6ce313b4525242c859645ad13b1047054af.tar.gz extra-cmake-modules-3862d6ce313b4525242c859645ad13b1047054af.tar.bz2  | |
- some compile flags cleanups
- readd visibility support
svn path=/trunk/KDE/kdelibs/; revision=534204
| -rw-r--r-- | modules/FindKDE4Internal.cmake | 26 | 
1 files changed, 16 insertions, 10 deletions
diff --git a/modules/FindKDE4Internal.cmake b/modules/FindKDE4Internal.cmake index f588639d..6a3d31fb 100644 --- a/modules/FindKDE4Internal.cmake +++ b/modules/FindKDE4Internal.cmake @@ -185,6 +185,7 @@ set(QT_MIN_VERSION "4.1.1")  find_package(Qt4 REQUIRED)                                        include (MacroLibrary) +include (CheckCXXSourceCompiles)  #add some KDE specific stuff @@ -521,28 +522,18 @@ if (APPLE)  endif (APPLE) -# only on linux, but NOT e.g. on FreeBSD:  if (CMAKE_SYSTEM_NAME MATCHES Linux)     set ( _KDE4_PLATFORM_DEFINITIONS -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_GNU_SOURCE)     set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings -avoid-version -Wl,--no-undefined -lc")     set ( CMAKE_MODULE_LINKER_FLAGS "-Wl,--fatal-warnings -avoid-version -Wl,--no-undefined -lc") -   # optimization flags are set further below for the various build types -   set ( CMAKE_C_FLAGS     "${CMAKE_C_FLAGS} -Wno-long-long -ansi -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common") -   set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -fno-exceptions -fno-check-new -fno-common")  endif (CMAKE_SYSTEM_NAME MATCHES Linux) - -# works on FreeBSD, NOT tested on NetBSD and OpenBSD  if (CMAKE_SYSTEM_NAME MATCHES BSD)     set ( _KDE4_PLATFORM_DEFINITIONS -D_GNU_SOURCE )     set ( CMAKE_SHARED_LINKER_FLAGS "-avoid-version -lc")     set ( CMAKE_MODULE_LINKER_FLAGS "-avoid-version -lc") -   # optimization flags are set further below for the various build types -   set ( CMAKE_C_FLAGS     "${CMAKE_C_FLAGS} -Wno-long-long -ansi -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common") -   set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -Wundef -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common")  endif (CMAKE_SYSTEM_NAME MATCHES BSD) -  # compiler specific stuff, maybe this should be done differently, Alex  if (MSVC) @@ -560,6 +551,21 @@ if (CMAKE_COMPILER_IS_GNUCXX)     set(CMAKE_C_FLAGS_RELEASE          "-O2")     set(CMAKE_C_FLAGS_DEBUG            "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline")     set(CMAKE_C_FLAGS_DEBUGFULL        "-g3 -fno-inline") + +   if (CMAKE_SYSTEM_NAME MATCHES Linux) +     set ( CMAKE_C_FLAGS     "${CMAKE_C_FLAGS} -Wno-long-long -ansi -Wundef -Wcast-align -Werror-implicit-function-declaration -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common") +     set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -fno-exceptions -fno-check-new -fno-common") +   endif (CMAKE_SYSTEM_NAME MATCHES Linux) + +   # visibility support +   set (SAFE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}") +   set (CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -fvisibility=hidden") +   CHECK_CXX_SOURCE_COMPILES("int main() { return 0; }" __KDE_HAVE_GCC_VISIBILITY) +   if (__KDE_HAVE_GCC_VISIBILITY) +     set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") +   endif (__KDE_HAVE_GCC_VISIBILITY) +   set (CMAKE_REQUIRED_FLAGS "${SAFE_CMAKE_REQUIRED_FLAGS}") +  endif (CMAKE_COMPILER_IS_GNUCXX)  # it seems we prefer not to use a different postfix for debug libs, Alex  | 
