diff --git a/Modules/FindKDE3.cmake b/Modules/FindKDE3.cmake index aeba824b4..543ec7d9c 100644 --- a/Modules/FindKDE3.cmake +++ b/Modules/FindKDE3.cmake @@ -82,25 +82,35 @@ FIND_PACKAGE(X11 ${_REQ_STRING_KDE3}) #add some KDE specific stuff SET(KDE3_DEFINITIONS -DQT_CLEAN_NAMESPACE -D_GNU_SOURCE) +set(_KDE3_USE_FLAGS FALSE) +if(CMAKE_COMPILER_IS_GNUCXX) + set(_KDE3_USE_FLAGS TRUE) # use flags for gnu compiler + execute_process(COMMAND ${CMAKE_CXX_COMPILER} --version + OUTPUT_VARIABLE out) + # gnu 2.96 does not work with flags + if(out MATCHES 2.96) + set(_KDE3_NO_FLAGS FALSE) + endif(out MATCHES 2.96) +endif(CMAKE_COMPILER_IS_GNUCXX) #only on linux, but NOT e.g. on FreeBSD: -IF(CMAKE_SYSTEM_NAME MATCHES "Linux" AND CMAKE_COMPILER_IS_GNUCXX) +IF(CMAKE_SYSTEM_NAME MATCHES "Linux" AND _KDE3_NO_FLAGS) SET (KDE3_DEFINITIONS ${KDE3_DEFINITIONS} -D_XOPEN_SOURCE=500 -D_BSD_SOURCE) 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" AND CMAKE_COMPILER_IS_GNUCXX) +ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux" AND _KDE3_NO_FLAGS) # works on FreeBSD, NOT tested on NetBSD and OpenBSD -IF (CMAKE_SYSTEM_NAME MATCHES BSD AND CMAKE_COMPILER_IS_GNUCXX) +IF (CMAKE_SYSTEM_NAME MATCHES BSD AND _KDE3_NO_FLAGS) 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 AND CMAKE_COMPILER_IS_GNUCXX) +ENDIF (CMAKE_SYSTEM_NAME MATCHES BSD AND _KDE3_NO_FLAGS) # if no special buildtype is selected, add -O2 as default optimization -IF (NOT CMAKE_BUILD_TYPE AND CMAKE_COMPILER_IS_GNUCXX) +IF (NOT CMAKE_BUILD_TYPE AND _KDE3_NO_FLAGS) SET ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2") SET ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") -ENDIF (NOT CMAKE_BUILD_TYPE AND CMAKE_COMPILER_IS_GNUCXX) +ENDIF (NOT CMAKE_BUILD_TYPE AND _KDE3_NO_FLAGS) #SET(CMAKE_SHARED_LINKER_FLAGS "-avoid-version -module -Wl,--no-undefined -Wl,--allow-shlib-undefined")