diff options
| author | Alexander Neundorf <neundorf@kde.org> | 2006-01-13 22:40:08 +0000 | 
|---|---|---|
| committer | Alexander Neundorf <neundorf@kde.org> | 2006-01-13 22:40:08 +0000 | 
| commit | 250436011321451373b720ca820b58cbfa245c3b (patch) | |
| tree | bc4df9d9fdd2342658e76fe5c41470dff7936664 /kde4/FindKDE4.cmake | |
| parent | 491a595f8f2f99c2629e5594f3bcffc20d361d00 (diff) | |
| download | extra-cmake-modules-250436011321451373b720ca820b58cbfa245c3b.tar.gz extra-cmake-modules-250436011321451373b720ca820b58cbfa245c3b.tar.bz2 | |
initial KDE4 files for cmake, improved am2cmake
Alex
svn path=/trunk/KDE/kdesdk/cmake/; revision=497823
Diffstat (limited to 'kde4/FindKDE4.cmake')
| -rw-r--r-- | kde4/FindKDE4.cmake | 200 | 
1 files changed, 200 insertions, 0 deletions
| diff --git a/kde4/FindKDE4.cmake b/kde4/FindKDE4.cmake new file mode 100644 index 00000000..44383d2e --- /dev/null +++ b/kde4/FindKDE4.cmake @@ -0,0 +1,200 @@ +# - Find the KDE4 include and library dirs, KDE preprocessors and define a some macros +# +# KDE4_DEFINITIONS +# KDE4_INCLUDE_DIR +# KDE4_INCLUDE_DIRS +# KDE4_LIB_DIR +# KDE4_SERVICETYPES_DIR +# KDE4_DCOPIDL_EXECUTABLE +# KDE4_DCOPIDL2CPP_EXECUTABLE +# KDE4_KCFGC_EXECUTABLE +# KDE4_FOUND +# it also adds the following macros (from KDE4Macros.cmake) +# ADD_FILE_DEPENDANCY +# KDE4_ADD_DCOP_SKELS +# KDE4_ADD_DCOP_STUBS +# KDE4_ADD_MOC_FILES +# KDE4_ADD_UI_FILES +# KDE4_ADD_KCFG_FILES +# KDE4_AUTOMOC +# KDE4_PLACEHOLDER +# KDE4_CREATE_LIBTOOL_FILE +# KDE4_CREATE_FINAL_FILE +# KDE4_ADD_KPART +# KDE4_ADD_KLM +# KDE4_ADD_EXECUTABLE + + +CMAKE_MINIMUM_REQUIRED(VERSION 2.2) + +#this line includes FindQt.cmake, which searches the Qt library and headers +INCLUDE(FindQt4) + +#add the definitions found by FindQt to the current definitions +#ADD_DEFINITIONS(${QT_DEFINITIONS} -DQT_CLEAN_NAMESPACE) + +SET(QT_AND_KDECORE_LIBS ${QT_LIBRARIES} kdecore) + +#add some KDE specific stuff +SET(KDE4_DEFINITIONS -DQT_CLEAN_NAMESPACE -Wnon-virtual-dtor -Wno-long-long -Wundef -ansi -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -O2 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common) + +#only on linux, but not e.g. on FreeBSD: +IF(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") +  SET(KDE4_DEFINITIONS ${KDE4_DEFINITIONS} -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_GNU_SOURCE) +ENDIF(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + + +#SET(CMAKE_SHARED_LINKER_FLAGS "-avoid-version -module -Wl,--no-undefined -Wl,--allow-shlib-undefined") +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") + +SET(KDE4_DIR /opt/kde4) + +SET(KDE4_APPS_DIR          /share/applnk) +SET(KDE4_CONFIG_DIR        /share/config) +SET(KDE4_DATA_DIR          /share/apps) +SET(KDE4_HTML_DIR          /share/doc/HTML) +SET(KDE4_ICON_DIR          /share/icons) +SET(KDE4_KCFG_DIR          /share/config.kcfg) +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_SERVICESTYPES_DIR /share/services) +SET(KDE4_SOUND_DIR         /share/sounds) +SET(KDE4_TEMPLATES_DIR     /share/templates) +SET(KDE4_WALLPAPER_DIR     /share/wallpapers) + +SET(XDG_APPS_DIR           /share/applications/kde) +SET(XDG_DIRECTORY_DIR      /share/desktop-directories) + + +#now try to find some kde stuff + +#are we trying to compile kdelibs ? +#then enter bootstrap mode +IF(EXISTS ${CMAKE_SOURCE_DIR}/kdecore/kglobal.h) + +  MESSAGE(STATUS "Building kdelibs...") + +  SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin ) +  SET(LIBRARY_OUTPUT_PATH  ${CMAKE_BINARY_DIR}/lib ) +   +  SET(KDE4_INCLUDE_DIR ${CMAKE_SOURCE_DIR}) +  SET(KDE4_LIB_DIR ${LIBRARY_OUTPUT_PATH}) +  SET(KDE4_DCOPIDL_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/dcopidl ) +  SET(KDE4_DCOPIDL2CPP_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/dcopidl2cpp ) +  SET(KDE4_KCFGC_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/kconfig_compiler ) + +ELSE(EXISTS ${CMAKE_SOURCE_DIR}/kdecore/kglobal.h) + +  #at first the KDE include direcory +  FIND_PATH(KDE4_INCLUDE_DIR kurl.h +    $ENV{KDEDIR}/include +    /opt/kde/include +    /opt/kde4/include +    /usr/local/include +    /usr/include/ +    /usr/include/kde +    /usr/local/include/kde +  ) + +  #now the KDE library directory +  FIND_PATH(KDE4_LIB_DIR libkdecore.so +    $ENV{KDEDIR}/lib +    /opt/kde/lib +    /opt/kde4/lib +    /usr/lib +    /usr/local/lib +  ) + +#now the KDE service types directory +#FIND_PATH(KDE4_SERVICETYPES_DIR ktexteditor.desktop +#  $ENV{KDEDIR}/share/servicetypes/ +#  /opt/kde/share/servicetypes/ +#  /opt/kde4/share/servicetypes/ +#) + + +  #now search for the dcop utilities +  FIND_PROGRAM(KDE4_DCOPIDL_EXECUTABLE NAME dcopidl PATHS +    $ENV{KDEDIR}/bin +    /opt/kde/bin +    /opt/kde4/bin +  ) + +  FIND_PROGRAM(KDE4_DCOPIDL2CPP_EXECUTABLE NAME dcopidl2cpp PATHS +    $ENV{KDEDIR}/bin +    /opt/kde/bin +    /opt/kde4/bin +  ) + +  FIND_PROGRAM(KDE4_KCFGC_EXECUTABLE NAME kconfig_compiler PATHS +    $ENV{KDEDIR}/bin +    /opt/kde/bin +    /opt/kde4/bin +  ) + +ENDIF(EXISTS ${CMAKE_SOURCE_DIR}/kdecore/kglobal.h) + + +# KDE4Macros.cmake contains all the KDE specific macros +INCLUDE(KDE4Macros) + +#set KDE4_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) +   SET(KDE4_FOUND FALSE) +ENDIF (KDE4_INCLUDE_DIR AND KDE4_LIB_DIR AND KDE4_SERVICETYPES_DIR AND KDE4_DCOPIDL_EXECUTABLE AND KDE4_DCOPIDL2CPP_EXECUTABLE AND KDE4_KCFGC_EXECUTABLE) + + +MACRO (KDE4_PRINT_RESULTS) +   IF(KDE4_INCLUDE_DIR) +      MESSAGE(STATUS "Found KDE4 include dir: ${KDE4_INCLUDE_DIR}") +   ELSE(KDE4_INCLUDE_DIR) +      MESSAGE(STATUS "Didn't find KDE4 headers") +   ENDIF(KDE4_INCLUDE_DIR) + +   IF(KDE4_LIB_DIR) +      MESSAGE(STATUS "Found KDE4 library dir: ${KDE4_LIB_DIR}") +   ELSE(KDE4_LIB_DIR) +      MESSAGE(STATUS "Didn't find KDE4 core library") +   ENDIF(KDE4_LIB_DIR) + +   IF(KDE4_DCOPIDL_EXECUTABLE) +      MESSAGE(STATUS "Found KDE4 dcopidl preprocessor: ${KDE4_DCOPIDL_EXECUTABLE}") +   ELSE(KDE4_DCOPIDL_EXECUTABLE) +      MESSAGE(STATUS "Didn't find the KDE4 dcopidl preprocessor") +   ENDIF(KDE4_DCOPIDL_EXECUTABLE) + +   IF(KDE4_DCOPIDL2CPP_EXECUTABLE) +      MESSAGE(STATUS "Found KDE4 dcopidl2cpp preprocessor: ${KDE4_DCOPIDL2CPP_EXECUTABLE}") +   ELSE(KDE4_DCOPIDL2CPP_EXECUTABLE) +      MESSAGE(STATUS "Didn't find the KDE4 dcopidl2cpp preprocessor") +   ENDIF(KDE4_DCOPIDL2CPP_EXECUTABLE) + +   IF(KDE4_KCFGC_EXECUTABLE) +      MESSAGE(STATUS "Found KDE4 kconfig_compiler preprocessor: ${KDE4_KCFGC_EXECUTABLE}") +   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 3 programs") + +ENDIF (KDE4_FIND_REQUIRED AND NOT KDE4_FOUND) + +IF (NOT KDE4_FIND_QUIETLY) +   KDE4_PRINT_RESULTS() +ENDIF (NOT KDE4_FIND_QUIETLY) + +#add the found Qt and KDE include directories to the current include path +SET(KDE4_INCLUDE_DIRS ${QT_INCLUDE_DIR} ${KDE4_INCLUDE_DIR}) +#INCLUDE_DIRECTORIES(${QT_INCLUDE_DIR} ${KDE4_INCLUDE_DIR} .) +#LINK_DIRECTORIES(${KDE4_LIB_DIR}) + | 
