summaryrefslogtreecommitdiffstats
path: root/cmakemodules/FindKdeLibs.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmakemodules/FindKdeLibs.cmake')
-rw-r--r--cmakemodules/FindKdeLibs.cmake316
1 files changed, 316 insertions, 0 deletions
diff --git a/cmakemodules/FindKdeLibs.cmake b/cmakemodules/FindKdeLibs.cmake
new file mode 100644
index 0000000..1259480
--- /dev/null
+++ b/cmakemodules/FindKdeLibs.cmake
@@ -0,0 +1,316 @@
+#INCLUDE(FindQt3)
+#INCLUDE(FindQt)
+#INCLUDE(FindKDE3)
+INCLUDE(kdesvnMacros)
+INCLUDE(KDE3Macros)
+
+FILE(GLOB GLOB_PATHS_INCLUDE /usr/lib*/qt-3*/include/)
+FIND_PROGRAM(PKG_CONFIG NAMES pkg-config)
+EXECUTE_PROCESS(COMMAND ${PKG_CONFIG} "--variable=prefix" "qt-mt"
+ OUTPUT_VARIABLE _qt_mt_path
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+SET(QT_MT_PATH ${_qt_mt_path} CACHE STRING "QT Path" FORCE)
+FIND_PATH(QT_INCLUDE_DIR_PLUS qt.h
+ ${GLOB_PATHS_INCLUDE}
+ ${QT_MT_PATH}/include)
+IF (NOT QT_INCLUDE_DIR)
+ SET(QT_INCLUDE_DIR ${QT_INCLUDE_DIR_PLUS})
+ENDIF (NOT QT_INCLUDE_DIR)
+
+FIND_PROGRAM(CMAKE_UNAME uname ${BIN_SEARCH_PATHES})
+IF(CMAKE_UNAME)
+ EXECUTE_PROCESS(COMMAND ${CMAKE_UNAME} "-m"
+ OUTPUT_VARIABLE CMAKE_SYSTEM_PROCESSOR
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ IF("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "64")
+ SET(LIB_SUFFIX "64" CACHE STRING "Define suffix of directory name (32/64)" FORCE)
+ ELSE("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "64")
+ SET(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" FORCE)
+ ENDIF("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "64")
+ENDIF(CMAKE_UNAME)
+
+SET(INCLUDE_SEARCH_PATHES
+ ${INCLUDE_SEARCH_PATHES}
+ ${KDE3_INCLUDE_DIRS})
+
+SET(LIB_SEARCH_PATHES
+ ${LIB_SEARCH_PATHES}
+ ${KDE3_LIB_DIR})
+
+IF (LIB_SUFFIX)
+ SET(LIB_SEARCH_PATHES
+ $ENV{KDEDIR}/lib${LIB_SUFFIX}
+ $ENV{HOME}/lib${LIB_SUFFIX}
+ $ENV{HOME}/usr/lib${LIB_SUFFIX}
+ /opt/lib${LIB_SUFFIX}
+ /opt/kde/lib${LIB_SUFFIX}
+ /opt/kde3/lib${LIB_SUFFIX}
+ /usr/lib${LIB_SUFFIX}
+ /usr/kde/3.5/lib${LIB_SUFFIX}
+ /usr/local/lib${LIB_SUFFIX}
+ ${LIB_SEARCH_PATHES}
+ )
+ENDIF (LIB_SUFFIX)
+
+
+
+FIND_LIBRARY(M_LIBRARY NAMES m
+ PATHS
+ ${LIB_SEARCH_PATHES}
+)
+
+FIND_LIBRARY(KDE3_UI_LIBRARY NAMES kdeui
+ PATHS
+ ${LIB_SEARCH_PATHES}
+)
+
+FIND_LIBRARY(KDE3_PART_LIBRARY NAMES kparts
+ PATHS
+ ${LIB_SEARCH_PATHES}
+)
+
+FIND_LIBRARY(KDE3_KIO_LIBRARY NAMES kio
+ PATHS
+ ${LIB_SEARCH_PATHES}
+)
+
+FIND_LIBRARY(KDE3_KHTML_LIBRARY NAMES khtml
+ PATHS
+ ${LIB_SEARCH_PATHES}
+)
+
+FIND_LIBRARY(KDE3_DCOP_LIBRARY NAMES DCOP
+ PATHS
+ ${LIB_SEARCH_PATHES}
+)
+
+FIND_PROGRAM(KDE3_KDECONFIG_EXECUTABLE NAME kde-config
+ PATHS ${BIN_SEARCH_PATHES})
+
+FIND_PROGRAM(MSGFMT
+ NAMES gmsgfmt msgfmt
+ PATHS ${BIN_SEARCH_PATHES})
+
+
+FIND_PROGRAM(STRIP
+ NAMES strip
+ PATHS ${BIN_SEARCH_PATHES})
+
+FIND_PROGRAM(KDE3_MEINPROC_EXECUTABLE NAME meinproc
+ PATHS ${BIN_SEARCH_PATHES})
+
+IF(KDE3_MEINPROC_EXECUTABLE)
+ MESSAGE(STATUS "Found meinproc: ${KDE3_MEINPROC_EXECUTABLE}")
+ELSE(KDE3_MEINPROC_EXECUTABLE)
+ MESSAGE(FATAL_ERROR "Could NOT find meinproc program!")
+ENDIF(KDE3_MEINPROC_EXECUTABLE)
+
+IF(MSGFMT)
+ EXECUTE_PROCESS(COMMAND ${MSGFMT} "--version"
+ OUTPUT_VARIABLE _msgout
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ STRING(REGEX MATCH "GNU[\t ]gettext" _isgnu "${_msgout}")
+ IF (NOT _isgnu)
+ MESSAGE(STATUS "No gnu msgfmt found!")
+ SET(MSGFMT ":" CACHE STRING "Msgfmt program")
+ ELSE(NOT _isgnu)
+ MESSAGE(STATUS "Found gnu msgfmt: ${MSGFMT}")
+ ENDIF (NOT _isgnu)
+ELSE(MSGFMT)
+ SET(MSGFMT ":" CACHE STRING "Msgfmt program")
+ MESSAGE( FATAL_ERROR "Could NOT find msgfmt program")
+ENDIF(MSGFMT)
+
+EXECUTE_PROCESS(COMMAND ${KDE3_KDECONFIG_EXECUTABLE} "--prefix"
+ COMMAND xargs "echo" "-n"
+ OUTPUT_VARIABLE _kde_prefix_path
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+SET(KDE_HTML_COMMON_PATH ${_kde_prefix_path}/share/doc/HTML/en/common CACHE STRING "KDE HTML common Path" FORCE)
+
+# 'cause my own defines were not good I take them from kde4 trunk
+#add some KDE specific stuff
+SET(SHARE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/share CACHE PATH "Base directory for files which go to share/" FORCE)
+SET(EXEC_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH "Base directory for executables and libraries" FORCE)
+#
+## the following are directories where stuff will be installed to
+SET(BIN_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/bin" CACHE PATH "The kde bin install dir (default prefix/bin)" FORCE)
+SET(SBIN_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/sbin" CACHE PATH "The kde sbin install dir (default prefix/sbin)" FORCE)
+SET(LIB_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE)
+SET(LIBEXEC_INSTALL_DIR "${LIB_INSTALL_DIR}/kde3/libexec" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib/kde3/libexec)" FORCE)
+SET(PLUGIN_INSTALL_DIR "${LIB_INSTALL_DIR}/kde3" CACHE PATH "The subdirectory relative to the install prefix where plugins will be installed (default is ${LIB_INSTALL_DIR}/kde3)" FORCE)
+SET(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "The subdirectory to the header prefix" FORCE)
+SET(CONFIG_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/config" CACHE PATH "The config file install dir" FORCE)
+SET(DATA_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/apps" CACHE PATH "The parent directory where applications can install their data" FORCE)
+SET(HTML_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/doc/HTML" CACHE PATH "The HTML install dir for documentation" FORCE)
+SET(ICON_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/icons" CACHE PATH "The icon install dir (default prefix/share/icons/)" FORCE)
+SET(KCFG_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/config.kcfg" CACHE PATH "The install dir for kconfig files" FORCE)
+SET(LOCALE_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/locale" CACHE PATH "The install dir for translations" FORCE)
+SET(MIME_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/mimelnk" CACHE PATH "The install dir for the mimetype desktop files" FORCE)
+SET(SERVICES_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/services" CACHE PATH "The install dir for service (desktop, protocol, ...) files" FORCE)
+SET(SERVICETYPES_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/servicetypes" CACHE PATH "The install dir for servicestypes desktop files" FORCE)
+SET(SOUND_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/sounds" CACHE PATH "The install dir for sound files" FORCE)
+SET(TEMPLATES_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/templates" CACHE PATH "The install dir for templates (Create new file...)" FORCE)
+SET(WALLPAPER_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/wallpapers" CACHE PATH "The install dir for wallpapers" FORCE)
+SET(KCONF_UPDATE_INSTALL_DIR "${DATA_INSTALL_DIR}/kconf_update" CACHE PATH "The kconf_update install dir" FORCE)
+# this one shouldn't be used anymore
+SET(APPLNK_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/applnk" CACHE PATH "Is this still used ?" FORCE)
+SET(AUTOSTART_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/autostart" CACHE PATH "The install dir for autostart files" FORCE)
+SET(XDG_APPS_DIR "${SHARE_INSTALL_PREFIX}/applications/kde" CACHE PATH "The XDG apps dir" FORCE)
+SET(XDG_DIRECTORY_DIR "${SHARE_INSTALL_PREFIX}/desktop-directories" CACHE PATH "The XDG directory" FORCE)
+SET(SYSCONF_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/etc" CACHE PATH "The kde sysconfig install dir (default/etc)" FORCE)
+SET(MAN_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/man" CACHE PATH "The kde man install dir (default prefix/share/man/)" FORCE)
+SET(INFO_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/info" CACHE PATH "The kde info install dir (default prefix/info)" FORCE)
+
+# linker flags - must get checked
+SET(LINK_NO_UNDEFINED "")
+SET(lundef "-Wl,--no-undefined")
+KDESVN_CHECK_LINK_FLAG(${lundef} _NO_UNDEFINED)
+IF (_NO_UNDEFINED)
+ SET(LINK_NO_UNDEFINED "${lundef}")
+ENDIF (_NO_UNDEFINED)
+
+SET(lundef "-Wl,--allow-shlib-undefined")
+KDESVN_CHECK_LINK_FLAG(${lundef} _ALLOW_SHLIB)
+IF (_ALLOW_SHLIB)
+ SET(LINK_NO_UNDEFINED "${LINK_NO_UNDEFINED} ${lundef}")
+ENDIF (_ALLOW_SHLIB)
+
+
+# own macros
+MACRO(KDESVN_INSTALL_ICONS _theme)
+
+ FILE(GLOB _icons *.png)
+ FILE(GLOB _svg *svgz)
+ SET(_icons ${_icons} ${_svg})
+ FOREACH(_current_ICON ${_icons} )
+ GET_FILENAME_COMPONENT(_ctype ${_current_ICON} EXT)
+
+ IF (${_ctype} STREQUAL ".png")
+ STRING(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\1" _size "${_current_ICON}")
+ STRING(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\2" _group "${_current_ICON}")
+ STRING(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\3" _name "${_current_ICON}")
+ SET(_sizestring "${_size}x${_size}")
+ ENDIF (${_ctype} STREQUAL ".png")
+
+ IF (${_ctype} STREQUAL ".svgz")
+ STRING(REGEX REPLACE "^.*/[a-zA-Z]+\\-([a-z]+)\\-(.+\\.svgz)$" "\\1" _group "${_current_ICON}")
+ STRING(REGEX REPLACE "^.*/[a-zA-Z]+\\-([a-z]+)\\-(.+\\.svgz)$" "\\2" _name "${_current_ICON}")
+ SET(_sizestring "scalable")
+ ENDIF (${_ctype} STREQUAL ".svgz")
+
+ SET(_icon_GROUP "actions")
+
+ IF(${_group} STREQUAL "mime")
+ SET(_icon_GROUP "mimetypes")
+ ENDIF(${_group} STREQUAL "mime")
+
+ IF(${_group} STREQUAL "filesys")
+ SET(_icon_GROUP "filesystems")
+ ENDIF(${_group} STREQUAL "filesys")
+
+ IF(${_group} STREQUAL "device")
+ SET(_icon_GROUP "devices")
+ ENDIF(${_group} STREQUAL "device")
+
+ IF(${_group} STREQUAL "app")
+ SET(_icon_GROUP "apps")
+ ENDIF(${_group} STREQUAL "app")
+
+ IF(${_group} STREQUAL "action")
+ SET(_icon_GROUP "actions")
+ ENDIF(${_group} STREQUAL "action")
+
+ #message(STATUS "icon: ${_current_ICON} size: ${_sizestring} group: ${_group} name: ${_name}" )
+ SET(_ICON_INSTALL_DIR ${ICON_INSTALL_DIR}/${_theme}/${_sizestring}/${_icon_GROUP})
+
+ INSTALL(FILES ${_current_ICON} DESTINATION ${_ICON_INSTALL_DIR} RENAME ${_name})
+
+ ENDFOREACH (_current_ICON)
+ENDMACRO(KDESVN_INSTALL_ICONS)
+
+MACRO(ADD_POFILES packagename)
+ SET(_gmofiles)
+ FILE(GLOB _pofiles *.po)
+
+ FOREACH(_current_po ${_pofiles})
+ GET_FILENAME_COMPONENT(_name ${_current_po} NAME_WE)
+ STRING(REGEX REPLACE "^.*/([a-zA-Z]+)(\\.po)" "\\1" _lang "${_current_po}")
+ SET(_gmofile "${CMAKE_CURRENT_BINARY_DIR}/${_name}.gmo")
+ ADD_CUSTOM_COMMAND(OUTPUT ${_gmofile}
+ COMMAND ${MSGFMT}
+ ARGS "-o" "${_gmofile}" "${_current_po}"
+ DEPENDS ${_current_po}
+ )
+ SET(_gmofiles ${_gmofiles} ${_gmofile})
+ INSTALL(FILES ${_gmofile}
+ DESTINATION ${LOCALE_INSTALL_DIR}/${_lang}/LC_MESSAGES
+ RENAME ${packagename}.mo)
+ ENDFOREACH(_current_po ${_pofiles})
+
+ ADD_CUSTOM_TARGET(translations ALL
+ DEPENDS ${_gmofiles})
+
+ENDMACRO(ADD_POFILES)
+
+
+# KDE3_CREATE_HANDBOOK( docbookfile )
+# Create the handbook from the docbookfile (using meinproc)
+MACRO (KDE3_CREATE_HANDBOOK _docbook )
+ GET_FILENAME_COMPONENT(_tmp_src_FILE ${CMAKE_CURRENT_SOURCE_DIR} ABSOLUTE)
+ GET_FILENAME_COMPONENT(_tmp_bin_FILE ${CMAKE_CURRENT_BINARY_DIR} ABSOLUTE)
+
+ IF(EXISTS ${_tmp_src_FILE}/${_docbook})
+ get_filename_component(_input ${_tmp_src_FILE}/${_docbook} ABSOLUTE)
+ ENDIF(EXISTS ${_tmp_src_FILE}/${_docbook})
+ IF(EXISTS ${_tmp_bin_FILE}/${_docbook})
+ get_filename_component(_input ${_tmp_bin_FILE}/${_docbook} ABSOLUTE)
+ ENDIF(EXISTS ${_tmp_bin_FILE}/${_docbook})
+
+ SET(_doc ${CMAKE_CURRENT_BINARY_DIR}/index.cache.bz2)
+ ADD_CUSTOM_COMMAND(OUTPUT ${_doc}
+ COMMAND ${KDE3_MEINPROC_EXECUTABLE} --check --cache ${_doc} ${_input}
+ DEPENDS ${_input} ${KDE3_MEINPROC_EXECUTABLE}
+ )
+ ADD_CUSTOM_TARGET(handbook ALL DEPENDS ${_doc})
+ENDMACRO (KDE3_CREATE_HANDBOOK)
+
+
+# KDE3_INSTALL_HANDBOOK()
+# Install the handbook documentation
+MACRO (KDE3_INSTALL_HANDBOOK _appname )
+ GET_FILENAME_COMPONENT(_tmp_src_FILE ${CMAKE_CURRENT_SOURCE_DIR} ABSOLUTE)
+ GET_FILENAME_COMPONENT(_tmp_bin_FILE ${CMAKE_CURRENT_BINARY_DIR} ABSOLUTE)
+ GET_FILENAME_COMPONENT(_basename ${_tmp_src_FILE} NAME_WE)
+ SET( dirname ${_basename}/${_appname})
+
+ FILE(GLOB _books_bin ${_tmp_bin_FILE}/*.docbook)
+ FILE(GLOB _images_bin ${_tmp_bin_FILE}/*.png)
+ FILE(GLOB _books_src ${_tmp_src_FILE}/*.docbook)
+ FILE(GLOB _images_src ${_tmp_src_FILE}/*.png)
+
+ INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/index.cache.bz2 ${_books_src} ${_books_bin} ${_images_src} ${_images_bin}
+ DESTINATION ${HTML_INSTALL_DIR}/${dirname} )
+
+ INSTALL( CODE "EXECUTE_PROCESS ( COMMAND /bin/ln -s \"${KDE_HTML_COMMON_PATH}\" \"$ENV{DESTDIR}${HTML_INSTALL_DIR}/${dirname}/common\" ERROR_QUIET )" )
+ INSTALL( CODE "MESSAGE(STATUS \"Installing $ENV{DESTDIR}${HTML_INSTALL_DIR}/${dirname}/common\")" )
+ INSTALL( CODE "FILE(APPEND ${CMAKE_BINARY_DIR}/uninstall_plus.cmake \"IF(EXISTS \\\"$ENV{DESTDIR}${HTML_INSTALL_DIR}/${dirname}/common\\\")\\n\")" )
+ INSTALL( CODE "FILE(APPEND ${CMAKE_BINARY_DIR}/uninstall_plus.cmake \"MESSAGE(STATUS \\\"Uninstalling \\\\\\\"$ENV{DESTDIR}${HTML_INSTALL_DIR}/${dirname}/common\\\\\\\"\\\")\\n\")" )
+ INSTALL( CODE "FILE(APPEND ${CMAKE_BINARY_DIR}/uninstall_plus.cmake \"ENDIF(EXISTS \\\"$ENV{DESTDIR}${HTML_INSTALL_DIR}/${dirname}/common\\\")\\n\")" )
+ INSTALL( CODE "FILE(APPEND ${CMAKE_BINARY_DIR}/uninstall_plus.cmake \"FILE(REMOVE \\\"$ENV{DESTDIR}${HTML_INSTALL_DIR}/${dirname}/common\\\")\\n\")" )
+
+ # Specific for KBFX code - remove for other installs
+ FILE(GLOB _docbook_PNGFILES ${CMAKE_SOURCE_DIR}/skin/raster/default/*.png)
+ FOREACH(_p ${_docbook_PNGFILES})
+ GET_FILENAME_COMPONENT(_png_name ${_p} NAME)
+ INSTALL( CODE "EXECUTE_PROCESS ( COMMAND /bin/ln -s \"${DATA_INSTALL_DIR}/kbfx/skins/default/${_png_name}\" \"$ENV{DESTDIR}${HTML_INSTALL_DIR}/${dirname}\" ERROR_QUIET )" )
+ INSTALL( CODE "MESSAGE(STATUS \"Installing $ENV{DESTDIR}${HTML_INSTALL_DIR}/${dirname}/${_png_name}\")" )
+ INSTALL( CODE "FILE(APPEND ${CMAKE_BINARY_DIR}/uninstall_plus.cmake \"MESSAGE(STATUS \\\"Uninstalling \\\\\\\"$ENV{DESTDIR}${HTML_INSTALL_DIR}/${dirname}/${_png_name}\\\\\\\"\\\")\\n\")" )
+ INSTALL( CODE "FILE(APPEND ${CMAKE_BINARY_DIR}/uninstall_plus.cmake \"FILE(REMOVE \\\"$ENV{DESTDIR}${HTML_INSTALL_DIR}/${dirname}/${_png_name}\\\")\\n\")" )
+ ENDFOREACH(_p)
+ # End of specific for KBFX code
+ENDMACRO (KDE3_INSTALL_HANDBOOK )
+