aboutsummaryrefslogtreecommitdiff
path: root/modules/FindKDE4.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'modules/FindKDE4.cmake')
-rw-r--r--modules/FindKDE4.cmake45
1 files changed, 28 insertions, 17 deletions
diff --git a/modules/FindKDE4.cmake b/modules/FindKDE4.cmake
index 321a665e..f713e4e7 100644
--- a/modules/FindKDE4.cmake
+++ b/modules/FindKDE4.cmake
@@ -39,10 +39,6 @@ SET(QT_AND_KDECORE_LIBS ${QT_QTCORE_LIBRARY} kdecore)
SET(KDE4_DIR ${CMAKE_INSTALL_PREFIX})
-#SET(KDE4_SYSCONF_INSTALL_DIR "/etc" CACHE STRING "The kde sysconfig install dir (default /etc)")
-SET(KDE4_MAN_INSTALL_DIR "/man" CACHE STRING "The kde man install dir (default prefix/man/)")
-SET(KDE4_INFO_INSTALL_DIR "/info" CACHE STRING "The kde info install dir (default prefix/info)")
-SET(KDE4_LIB_INSTALL_DIR "/lib" CACHE STRING "The subdirectory relative to the install prefix where libraries will be installed (default is /lib)")
SET(KDE4_APPS_DIR /share/applnk)
SET(KDE4_CONFIG_DIR /share/config)
SET(KDE4_DATA_DIR /share/apps)
@@ -53,7 +49,7 @@ SET(KDE4_LIBS_HTML_DIR /share/doc/HTML)
SET(KDE4_LOCALE_DIR /share/locale)
SET(KDE4_MIME_DIR /share/mimelnk)
SET(KDE4_SERVICES_DIR /share/services)
-SET(KDE4_SERVICETYPES_DIR /share/servicetypes)
+SET(KDE4_SERVICETYPES_DIR /share/servicetypes)
SET(KDE4_SOUND_DIR /share/sounds)
SET(KDE4_TEMPLATES_DIR /share/templates)
SET(KDE4_WALLPAPER_DIR /share/wallpapers)
@@ -62,6 +58,14 @@ SET(XDG_APPS_DIR /share/applications/kde)
SET(XDG_DIRECTORY_DIR /share/desktop-directories)
+# the following are directories where stuff will be installed to
+#SET(KDE4_SYSCONF_INSTALL_DIR "/etc" CACHE STRING "The kde sysconfig install dir (default /etc)")
+SET(KDE4_MAN_INSTALL_DIR "/man" CACHE STRING "The kde man install dir (default prefix/man/)")
+SET(KDE4_INFO_INSTALL_DIR "/info" CACHE STRING "The kde info install dir (default prefix/info)")
+SET(KDE4_LIB_INSTALL_DIR "/lib" CACHE STRING "The subdirectory relative to the install prefix where libraries will be installed (default is /lib)")
+
+
+
#now try to find some kde stuff
@@ -96,7 +100,7 @@ ELSE(EXISTS ${CMAKE_SOURCE_DIR}/kdecore/kglobal.h)
)
# now the KDE library directory, kxmlcore is new with KDE4
- FIND_LIBRARY(KDE4_LIB_DIR NAMES kxmlcore
+ FIND_LIBRARY(KDE4_XMLCORE_LIBRARY NAMES kxmlcore
PATHS
$ENV{KDEDIR}/lib
/opt/kde/lib
@@ -105,6 +109,8 @@ ELSE(EXISTS ${CMAKE_SOURCE_DIR}/kdecore/kglobal.h)
/usr/local/lib
)
+ GET_FILENAME_COMPONENT(KDE4_LIB_DIR ${KDE4_XMLCORE_LIBRARY} PATH )
+
#now search for the dcop utilities
FIND_PROGRAM(KDE4_DCOPIDL_EXECUTABLE NAME dcopidl PATHS
$ENV{KDEDIR}/bin
@@ -140,34 +146,36 @@ ENDIF(WIN32 AND CMAKE_C_COMPILER MATCHES "cl\\.exe")
##################### and now the platform specific stuff ############################
+
IF(UNIX AND NOT APPLE)
FIND_PACKAGE(X11 REQUIRED)
SET(_KDE4_PLATFORM_INCLUDE_DIRS ${X11_INCLUDE_DIR} )
ENDIF(UNIX AND NOT APPLE)
+
IF(CYGWIN)
MESSAGE(FATAL_ERROR "Support for Cygwin not yet implemented, please edit FindKDE4.cmake to enable it")
ENDIF(CYGWIN)
+
+# windows, mingw
IF(MINGW)
- MESSAGE(FATAL_ERROR "Support for MinGW not yet implemented, please edit FindKDE4.cmake to enable it")
+ SET( QT_AND_KDECORE_LIBS ${QT_AND_KDECORE_LIBS} kdewin32 )
SET(_KDE4_PLATFORM_INCLUDE_DIRS ${KDE4_INCLUDE_DIR}/win/include ${KDE4_INCLUDE_DIR}/include/mingw )
SET( CMAKE_INCLUDE_PATH ${${KDE4_INCLUDE_DIR}/win/include ${KDE4_INCLUDE_DIR}/win/include/mingw )
ENDIF(MINGW)
+
+# windows, microsoft compiler
IF(MSVC)
- FIND_LIBRARY( KDE4_KDEWIN32_LIBRARY NAMES kdewin32 )
- IF ( NOT KDE4_KDEWIN32_LIBRARY )
- MESSAGE( FATAL_ERROR "Could not find kdewin32 library, make sure to build and install kdelibs/win/ first" )
- ENDIF ( NOT KDE4_KDEWIN32_LIBRARY )
-
- SET( QT_AND_KDECORE_LIBS ${QT_AND_KDECORE_LIBS} ${KDE4_KDEWIN32_LIBRARY})
+ SET( QT_AND_KDECORE_LIBS ${QT_AND_KDECORE_LIBS} kdewin32 )
SET( _KDE4_PLATFORM_INCLUDE_DIRS ${KDE4_INCLUDE_DIR}/win/include ${KDE4_INCLUDE_DIR}/win/include/msvc )
SET( _KDE4_PLATFORM_DEFINITIONS -D_WINSOCKAPI_ -DWIN32_LEAN_AND_MEAN -DMAKE_KDEWIN32_LIB -DUNICODE )
SET( CMAKE_INCLUDE_PATH ${KDE4_INCLUDE_DIR}/win/include ${KDE4_INCLUDE_DIR}/win/include/msvc )
ENDIF(MSVC)
-#only on linux, but not e.g. on FreeBSD:
+
+# 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")
@@ -176,6 +184,7 @@ IF(CMAKE_SYSTEM_NAME MATCHES Linux)
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 -O2 -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 )
@@ -185,6 +194,7 @@ IF(CMAKE_SYSTEM_NAME MATCHES BSD)
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 -O2 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common")
ENDIF(CMAKE_SYSTEM_NAME MATCHES BSD)
+
# This will need to be modified later to support either Qt/X11 or Qt/Mac builds
IF(APPLE)
@@ -214,7 +224,8 @@ ENDIF(APPLE)
# KDE4Macros.cmake contains all the KDE specific macros
INCLUDE(KDE4Macros)
-#set KDE4_FOUND
+
+# decide whether KDE4 has been found
IF (KDE4_INCLUDE_DIR AND KDE4_LIB_DIR AND KDE4_SERVICETYPES_DIR AND KDE4_DCOPIDL_EXECUTABLE AND KDE4_DCOPIDL2CPP_EXECUTABLE AND KDE4_KCFGC_EXECUTABLE)
SET(KDE4_FOUND TRUE)
ELSE (KDE4_INCLUDE_DIR AND KDE4_LIB_DIR AND KDE4_SERVICETYPES_DIR AND KDE4_DCOPIDL_EXECUTABLE AND KDE4_DCOPIDL2CPP_EXECUTABLE AND KDE4_KCFGC_EXECUTABLE)
@@ -252,16 +263,16 @@ MACRO (KDE4_PRINT_RESULTS)
ELSE(KDE4_KCFGC_EXECUTABLE)
MESSAGE(STATUS "Didn't find the KDE4 kconfig_compiler preprocessor")
ENDIF(KDE4_KCFGC_EXECUTABLE)
-
ENDMACRO (KDE4_PRINT_RESULTS)
+
IF (KDE4_FIND_REQUIRED AND NOT KDE4_FOUND)
#bail out if something wasn't found
KDE4_PRINT_RESULTS()
MESSAGE(FATAL_ERROR "Could not find everything required for compiling KDE 4 programs")
-
ENDIF (KDE4_FIND_REQUIRED AND NOT KDE4_FOUND)
+
IF (NOT KDE4_FIND_QUIETLY)
KDE4_PRINT_RESULTS()
ENDIF (NOT KDE4_FIND_QUIETLY)