From c6a5360e376a7d9b1750f5eccb46f85bfe5e041d Mon Sep 17 00:00:00 2001 From: Alexander Neundorf Date: Sun, 22 Jan 2006 18:52:15 +0000 Subject: moved kde3 stuff to modules/ Alex svn path=/trunk/KDE/kdesdk/cmake/; revision=501376 --- kde3/CMakeLists.txt | 3 - kde3/FindKDE3.cmake | 159 ------------------ kde3/README | 22 --- kde3/kde3init_dummy.cpp.in | 3 - kde3/kde3uic.cmake | 17 -- kde4/KDE3Macros.cmake | 364 ------------------------------------------ modules/CMakeLists.txt | 3 + modules/FindKDE3.cmake | 159 ++++++++++++++++++ modules/KDE3Macros.cmake | 364 ++++++++++++++++++++++++++++++++++++++++++ modules/kde3init_dummy.cpp.in | 3 + modules/kde3uic.cmake | 17 ++ 11 files changed, 546 insertions(+), 568 deletions(-) delete mode 100644 kde3/CMakeLists.txt delete mode 100644 kde3/FindKDE3.cmake delete mode 100644 kde3/README delete mode 100644 kde3/kde3init_dummy.cpp.in delete mode 100644 kde3/kde3uic.cmake delete mode 100644 kde4/KDE3Macros.cmake create mode 100644 modules/CMakeLists.txt create mode 100644 modules/FindKDE3.cmake create mode 100644 modules/KDE3Macros.cmake create mode 100644 modules/kde3init_dummy.cpp.in create mode 100644 modules/kde3uic.cmake diff --git a/kde3/CMakeLists.txt b/kde3/CMakeLists.txt deleted file mode 100644 index a7fa49a9..00000000 --- a/kde3/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -SET(CMAKE_INSTALL_PREFIX ${CMAKE_ROOT} ) -INSTALL_FILES(/Modules FILES FindKDE3.cmake KDE3Macros.cmake kde3init_dummy.cpp.in kde3uic.cmake ) - diff --git a/kde3/FindKDE3.cmake b/kde3/FindKDE3.cmake deleted file mode 100644 index f5be090d..00000000 --- a/kde3/FindKDE3.cmake +++ /dev/null @@ -1,159 +0,0 @@ -# - Find the KDE3 include and library dirs, KDE preprocessors and define a some macros -# -# KDE3_DEFINITIONS -# KDE3_INCLUDE_DIR -# KDE3_INCLUDE_DIRS -# KDE3_LIB_DIR -# KDE3_SERVICETYPES_DIR -# KDE3_DCOPIDL_EXECUTABLE -# KDE3_DCOPIDL2CPP_EXECUTABLE -# KDE3_KCFGC_EXECUTABLE -# KDE3_FOUND -# it also adds the following macros (from KDE3Macros.cmake) -# ADD_FILE_DEPENDANCY -# KDE3_ADD_DCOP_SKELS -# KDE3_ADD_DCOP_STUBS -# KDE3_ADD_MOC_FILES -# KDE3_ADD_UI_FILES -# KDE3_ADD_KCFG_FILES -# KDE3_AUTOMOC -# KDE3_PLACEHOLDER -# KDE3_CREATE_LIBTOOL_FILE -# KDE3_CREATE_FINAL_FILE -# KDE3_ADD_KPART -# KDE3_ADD_KLM -# KDE3_ADD_EXECUTABLE - - -CMAKE_MINIMUM_REQUIRED(VERSION 2.2) - -SET(QT_MT_REQUIRED TRUE) -#SET(QT_MIN_VERSION "3.0.0") - -#this line includes FindQt.cmake, which searches the Qt library and headers -INCLUDE(FindQt3) - -#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(KDE3_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(KDE3_DEFINITIONS ${KDE3_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") - -#now try to find some kde stuff - -#at first the KDE include direcory -FIND_PATH(KDE3_INCLUDE_DIR kurl.h - $ENV{KDEDIR}/include - /opt/kde/include - /opt/kde3/include - /usr/local/include - /usr/include/ - /usr/include/kde - /usr/local/include/kde -) - -#now the KDE library directory -FIND_PATH(KDE3_LIB_DIR libkdecore.so - $ENV{KDEDIR}/lib - /opt/kde/lib - /opt/kde3/lib - /usr/lib - /usr/local/lib -) - -#now the KDE service types directory -FIND_PATH(KDE3_SERVICETYPES_DIR ktexteditor.desktop - $ENV{KDEDIR}/share/servicetypes/ - /opt/kde/share/servicetypes/ - /opt/kde3/share/servicetypes/ -) - -#now search for the dcop utilities -FIND_PROGRAM(KDE3_DCOPIDL_EXECUTABLE NAME dcopidl PATHS - $ENV{KDEDIR}/bin - /opt/kde/bin - /opt/kde3/bin - ) - -FIND_PROGRAM(KDE3_DCOPIDL2CPP_EXECUTABLE NAME dcopidl2cpp PATHS - $ENV{KDEDIR}/bin - /opt/kde/bin - /opt/kde3/bin) - -FIND_PROGRAM(KDE3_KCFGC_EXECUTABLE NAME kconfig_compiler PATHS - $ENV{KDEDIR}/bin - /opt/kde/bin - /opt/kde3/bin) - -# KDE3Macros.cmake contains all the KDE specific macros -INCLUDE(KDE3Macros) - -#set KDE3_FOUND -IF (KDE3_INCLUDE_DIR AND KDE3_LIB_DIR AND KDE3_SERVICETYPES_DIR AND KDE3_DCOPIDL_EXECUTABLE AND KDE3_DCOPIDL2CPP_EXECUTABLE AND KDE3_KCFGC_EXECUTABLE) - SET(KDE3_FOUND TRUE) -ELSE (KDE3_INCLUDE_DIR AND KDE3_LIB_DIR AND KDE3_SERVICETYPES_DIR AND KDE3_DCOPIDL_EXECUTABLE AND KDE3_DCOPIDL2CPP_EXECUTABLE AND KDE3_KCFGC_EXECUTABLE) - SET(KDE3_FOUND FALSE) -ENDIF (KDE3_INCLUDE_DIR AND KDE3_LIB_DIR AND KDE3_SERVICETYPES_DIR AND KDE3_DCOPIDL_EXECUTABLE AND KDE3_DCOPIDL2CPP_EXECUTABLE AND KDE3_KCFGC_EXECUTABLE) - - -MACRO (KDE3_PRINT_RESULTS) - IF(KDE3_INCLUDE_DIR) - MESSAGE(STATUS "Found KDE3 include dir: ${KDE3_INCLUDE_DIR}") - ELSE(KDE3_INCLUDE_DIR) - MESSAGE(STATUS "Didn't find KDE3 headers") - ENDIF(KDE3_INCLUDE_DIR) - - IF(KDE3_LIB_DIR) - MESSAGE(STATUS "Found KDE3 library dir: ${KDE3_LIB_DIR}") - ELSE(KDE3_LIB_DIR) - MESSAGE(STATUS "Didn't find KDE3 core library") - ENDIF(KDE3_LIB_DIR) - - IF(KDE3_DCOPIDL_EXECUTABLE) - MESSAGE(STATUS "Found KDE3 dcopidl preprocessor: ${KDE3_DCOPIDL_EXECUTABLE}") - ELSE(KDE3_DCOPIDL_EXECUTABLE) - MESSAGE(STATUS "Didn't find the KDE3 dcopidl preprocessor") - ENDIF(KDE3_DCOPIDL_EXECUTABLE) - - IF(KDE3_DCOPIDL2CPP_EXECUTABLE) - MESSAGE(STATUS "Found KDE3 dcopidl2cpp preprocessor: ${KDE3_DCOPIDL2CPP_EXECUTABLE}") - ELSE(KDE3_DCOPIDL2CPP_EXECUTABLE) - MESSAGE(STATUS "Didn't find the KDE3 dcopidl2cpp preprocessor") - ENDIF(KDE3_DCOPIDL2CPP_EXECUTABLE) - - IF(KDE3_KCFGC_EXECUTABLE) - MESSAGE(STATUS "Found KDE3 kconfig_compiler preprocessor: ${KDE3_KCFGC_EXECUTABLE}") - ELSE(KDE3_KCFGC_EXECUTABLE) - MESSAGE(STATUS "Didn't find the KDE3 kconfig_compiler preprocessor") - ENDIF(KDE3_KCFGC_EXECUTABLE) - -ENDMACRO (KDE3_PRINT_RESULTS) - -IF (KDE3_FIND_REQUIRED AND NOT KDE3_FOUND) - #bail out if something wasn't found - KDE3_PRINT_RESULTS() - MESSAGE(FATAL_ERROR "Could not find everything required for compiling KDE 3 programs") - -ENDIF (KDE3_FIND_REQUIRED AND NOT KDE3_FOUND) - -IF (NOT KDE3_FIND_QUIETLY) - KDE3_PRINT_RESULTS() -ENDIF (NOT KDE3_FIND_QUIETLY) - -#add the found Qt and KDE include directories to the current include path -SET(KDE3_INCLUDE_DIRS ${QT_INCLUDE_DIR} ${KDE3_INCLUDE_DIR}) -#INCLUDE_DIRECTORIES(${QT_INCLUDE_DIR} ${KDE3_INCLUDE_DIR} .) -#LINK_DIRECTORIES(${KDE3_LIB_DIR}) - diff --git a/kde3/README b/kde3/README deleted file mode 100644 index 868d364e..00000000 --- a/kde3/README +++ /dev/null @@ -1,22 +0,0 @@ -This directory contains the cmake files required to build -KDE 3 software. -It requires at least cmake 2.2.4, you can get it from the cmake web site: -http://www.cmake.org or direcly from cmake cvs. -The files FindKDE3.cmake, KDE3Macros.cmake, kde3uic.cmake and -kde3init_dummy.cpp.in all have to be installed in the system -cmake module directory (typically /usr/local/share/CMake/Modules). -You can either copy them manually to this directory or -let cmake do this for. -For this run "cmake ." in this directory which will create a Makefile from -the CMakeLists.txt in this directory. The generated Makefile will contain -basically one target, the install target. -So run "make install" as root and then you are ready to use cmake for -building KDE 3 applications. - -You can run the (Ruby) script am2cmake to automatically convert -KDE Makefile.am's to CMakeLists.txt for cmake. Starting from the -current directory it will convert all Makefile.am's in the subdirectories -to cmake. - -Alexander Neundorf, 2006 -neundorf@kde.org diff --git a/kde3/kde3init_dummy.cpp.in b/kde3/kde3init_dummy.cpp.in deleted file mode 100644 index f0cd3488..00000000 --- a/kde3/kde3init_dummy.cpp.in +++ /dev/null @@ -1,3 +0,0 @@ -extern "C" int kdemain(int argc, char* argv[]); -extern "C" int kdeinitmain(int argc, char* argv[]) { return kdemain(argc,argv); } -int main(int argc, char* argv[]) { return kdemain(argc,argv); } diff --git a/kde3/kde3uic.cmake b/kde3/kde3uic.cmake deleted file mode 100644 index 64751b2e..00000000 --- a/kde3/kde3uic.cmake +++ /dev/null @@ -1,17 +0,0 @@ - -EXEC_PROGRAM(uic ARGS - -nounload -tr tr2i18n - -impl ${KDE_UIC_H_FILE} - ${KDE_UIC_FILE} - OUTPUT_VARIABLE _uic_CONTENTS -) - -STRING(REGEX REPLACE "tr2i18n\\(\"\"\\)" "QString::null" _uic_CONTENTS "${_uic_CONTENTS}" ) -STRING(REGEX REPLACE "tr2i18n\\(\"\", \"\"\\)" "QString::null" _uic_CONTENTS "${_uic_CONTENTS}" ) - -# $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_editbookmarkdlg,g" >> editbookmarkdlg.cpp ;\ -# rm -f editbookmarkdlg.cpp.temp ;\ - -FILE(WRITE ${KDE_UIC_CPP_FILE} "#include \n#include \n\n") -FILE(APPEND ${KDE_UIC_CPP_FILE} "${_uic_CONTENTS}") - diff --git a/kde4/KDE3Macros.cmake b/kde4/KDE3Macros.cmake deleted file mode 100644 index 78b94fce..00000000 --- a/kde4/KDE3Macros.cmake +++ /dev/null @@ -1,364 +0,0 @@ -# this file contains the following macros: -# ADD_FILE_DEPENDANCY -# KDE3_ADD_DCOP_SKELS -# KDE3_ADD_DCOP_STUBS -# KDE3_ADD_MOC_FILES -# KDE3_ADD_UI_FILES -# KDE3_ADD_KCFG_FILES -# KDE3_AUTOMOC -# KDE3_CREATE_LIBTOOL_FILE -# KDE3_PLACEHOLDER -# KDE3_CREATE_FINAL_FILE -# KDE3_ADD_KPART -# KDE3_ADD_KLM -# KDE3_ADD_EXECUTABLE - - -#neundorf@kde.org - -#this should better be part of cmake: -#add an additional file to the list of files a source file depends on -MACRO(ADD_FILE_DEPENDANCY file) - - GET_SOURCE_FILE_PROPERTY(_deps ${file} OBJECT_DEPENDS) - IF (_deps) - SET(_deps ${_deps} ${ARGN}) - ELSE (_deps) - SET(_deps ${ARGN}) - ENDIF (_deps) - - SET_SOURCE_FILES_PROPERTIES(${file} PROPERTIES OBJECT_DEPENDS "${_deps}") - -ENDMACRO(ADD_FILE_DEPENDANCY) - - -#create the kidl and skeletion file for dcop stuff -#usage: KDE_ADD_COP_SKELS(foo_SRCS ${dcop_headers}) -MACRO(KDE3_ADD_DCOP_SKELS _sources) - FOREACH (_current_FILE ${ARGN}) - GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE) - - SET(_skel ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_skel_skel.cpp) - SET(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_skel.kidl) - - ADD_CUSTOM_COMMAND(OUTPUT ${_kidl} - COMMAND ${KDE3_DCOPIDL_EXECUTABLE} - ARGS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} > ${_kidl} - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} - ) - - ADD_CUSTOM_COMMAND(OUTPUT ${_skel} - COMMAND ${KDE3_DCOPIDL2CPP_EXECUTABLE} - ARGS --c++-suffix cpp --no-signals --no-stub ${_kidl} - DEPENDS ${_kidl} - ) - - SET(${_sources} ${${_sources}} ${_skel}) - - ENDFOREACH (_current_FILE) - -ENDMACRO(KDE3_ADD_DCOP_SKELS) - -MACRO(KDE3_ADD_DCOP_STUBS _sources) - FOREACH (_current_FILE ${ARGN}) - - IF(${_current_FILE} MATCHES "^/.+") #abs path - SET(_tmp_FILE ${_current_FILE}) - ELSE(${_current_FILE} MATCHES "^/.+") - SET(_tmp_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) - ENDIF(${_current_FILE} MATCHES "^/.+") - - GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) - - SET(_stub_CPP ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_stub.cpp) -# SET(_stub_H ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_stub.h) - SET(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_stub.kidl) - - ADD_CUSTOM_COMMAND(OUTPUT ${_kidl} - COMMAND ${KDE3_DCOPIDL_EXECUTABLE} - ARGS ${tmp_FILE} > ${_kidl} - DEPENDS ${tmp_FILE} - ) - - ADD_CUSTOM_COMMAND(OUTPUT ${_stub_CPP} - COMMAND ${KDE3_DCOPIDL2CPP_EXECUTABLE} - ARGS --c++-suffix cpp --no-signals --no-skel ${_kidl} - DEPENDS ${_kidl} - ) - - SET(${_sources} ${${_sources}} ${_stub_CPP}) - - ENDFOREACH (_current_FILE) - -ENDMACRO(KDE3_ADD_DCOP_STUBS) - -MACRO(KDE3_ADD_KCFG_FILES _sources) - FOREACH (_current_FILE ${ARGN}) - - IF(${_current_FILE} MATCHES "^/.+") #abs path - SET(_tmp_FILE ${_current_FILE}) - ELSE(${_current_FILE} MATCHES "^/.+") - SET(_tmp_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) - ENDIF(${_current_FILE} MATCHES "^/.+") - - GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) - - FILE(READ ${_tmp_FILE} _contents) - STRING(REGEX REPLACE "^(.*\n)?File=([^\n]+)\n.*$" "\\2" _kcfg_FILE "${_contents}") - - SET(_src_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp) - SET(_header_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) - - ADD_CUSTOM_COMMAND(OUTPUT ${_src_FILE} - COMMAND ${KDE3_KCFGC_EXECUTABLE} - ARGS ${_kcfg_FILE} ${_tmp_FILE} - DEPENDS ${_tmp_FILE} ) - - SET(${_sources} ${${_sources}} ${_src_FILE}) - - ENDFOREACH (_current_FILE) - -ENDMACRO(KDE3_ADD_KCFG_FILES) - - -#create the moc files and add them to the list of sources -#usage: KDE_ADD_MOC_FILES(foo_SRCS ${moc_headers}) -MACRO(KDE3_ADD_MOC_FILES _sources) - FOREACH (_current_FILE ${ARGN}) - GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE) - GET_FILENAME_COMPONENT(_path ${_current_FILE} PATH) - SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc.cpp) - - ADD_CUSTOM_COMMAND(OUTPUT ${_moc} - COMMAND ${QT_MOC_EXECUTABLE} - ARGS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} -o ${_moc} - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} - ) - - SET(${_sources} ${${_sources}} ${_moc}) - - ENDFOREACH (_current_FILE) -ENDMACRO(KDE3_ADD_MOC_FILES) - - -#create the implementation files from the ui files and add them to the list of sources -#usage: KDE_ADD_UI_FILES(foo_SRCS ${ui_files}) -MACRO(KDE3_ADD_UI_FILES _sources ) - FOREACH (_current_FILE ${ARGN}) - - GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE) - SET(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) - SET(_src ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp) - SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc.cpp) - - ADD_CUSTOM_COMMAND(OUTPUT ${_header} - COMMAND ${QT_UIC_EXECUTABLE} - ARGS -nounload -o ${_header} ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} - ) - -# ADD_CUSTOM_COMMAND(OUTPUT ${_src} -# COMMAND uic -# ARGS -nounload -tr tr2i18n -o ${_src} -impl ${_header} ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} -# DEPENDS ${_header} -# ) - - ADD_CUSTOM_COMMAND(OUTPUT ${_src} - COMMAND ${CMAKE_COMMAND} - ARGS - -DKDE_UIC_FILE:STRING=${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} - -DKDE_UIC_CPP_FILE:STRING=${_src} - -DKDE_UIC_H_FILE:STRING=${_header} - -P ${CMAKE_ROOT}/Modules/kde3uic.cmake - DEPENDS ${_header} - ) - - ADD_CUSTOM_COMMAND(OUTPUT ${_moc} - COMMAND ${QT_MOC_EXECUTABLE} - ARGS ${_header} -o ${_moc} - DEPENDS ${_header} - ) - - SET(${_sources} ${${_sources}} ${_src} ${_moc} ) - - ENDFOREACH (_current_FILE) -ENDMACRO(KDE3_ADD_UI_FILES) - -MACRO(KDE3_AUTOMOC) - SET(_matching_FILES ) - FOREACH (_current_FILE ${ARGN}) - IF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) - - FILE(READ ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} _contents) - - IF(${_current_FILE} MATCHES "^/.+") - SET(_tmp_FILE ${_current_FILE}) - ELSE(${_current_FILE} MATCHES "^/.+") - SET(_tmp_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) - ENDIF(${_current_FILE} MATCHES "^/.+") - GET_FILENAME_COMPONENT(_abs_FILE ${_tmp_FILE} ABSOLUTE) - GET_FILENAME_COMPONENT(_abs_PATH ${_abs_FILE} PATH) - - STRING(REGEX MATCHALL "#include +[^ ]+\\.moc[\">]" _match "${_contents}") - IF(_match) - FOREACH (_current_MOC_INC ${_match}) - STRING(REGEX MATCH "[^ <\"]+\\.moc" _current_MOC "${_current_MOC_INC}") - - GET_FILENAME_COMPONENT(_basename ${_current_MOC} NAME_WE) -# SET(_header ${CMAKE_CURRENT_SOURCE_DIR}/${_basename}.h) - SET(_header ${_abs_PATH}/${_basename}.h) - SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC}) - - ADD_CUSTOM_COMMAND(OUTPUT ${_moc} - COMMAND ${QT_MOC_EXECUTABLE} - ARGS ${_header} -o ${_moc} - DEPENDS ${_header} - ) - - ADD_FILE_DEPENDANCY(${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} ${_moc}) - - ENDFOREACH (_current_MOC_INC) - ENDIF(_match) - - ENDIF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) - ENDFOREACH (_current_FILE) -ENDMACRO(KDE3_AUTOMOC) - -MACRO(KDE3_INSTALL_ICONS _theme) - ADD_CUSTOM_TARGET(install_icons ) - SET_TARGET_PROPERTIES(install_icons PROPERTIES POST_INSTALL_SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake ) - FILE(WRITE install_icons.cmake "# icon installations rules\n") - FILE(APPEND install_icons.cmake "SET(CMAKE_BACKWARDS_COMPATIBILITY \"2.2\") \n") - - FILE(GLOB _icons *.png) - FOREACH(_current_ICON ${_icons} ) - 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(_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: ${_size} group: ${_group} name: ${_name}" ) - SET(_ICON_INSTALL_NAME ${CMAKE_INSTALL_PREFIX}/share/icons/${_theme}/${_size}x${_size}/${_icon_GROUP}/${_name}) - FILE(APPEND install_icons.cmake "MESSAGE(STATUS \"Installing ${_ICON_INSTALL_NAME}\") \n") - FILE(APPEND install_icons.cmake "CONFIGURE_FILE( ${_current_ICON} ${_ICON_INSTALL_NAME} COPYONLY) \n") - - ENDFOREACH (_current_ICON) -ENDMACRO(KDE3_INSTALL_ICONS _theme) - -MACRO(KDE3_PLACEHOLDER) -ENDMACRO(KDE3_PLACEHOLDER) - -MACRO(KDE3_CREATE_LIBTOOL_FILE _target) - GET_TARGET_PROPERTY(_target_location ${_target} LOCATION) - - GET_FILENAME_COMPONENT(_laname ${_target_location} NAME_WE) - GET_FILENAME_COMPONENT(_soname ${_target_location} NAME) - SET(_laname ${_laname}.la) - - FILE(WRITE ${_laname} "# ${_laname} - a libtool library file, generated by cmake \n") - FILE(APPEND ${_laname} "# The name that we can dlopen(3).\n") - FILE(APPEND ${_laname} "dlname='${_soname}'\n") - FILE(APPEND ${_laname} "# Names of this library\n") - FILE(APPEND ${_laname} "library_names='${_soname} ${_soname} ${_soname}'\n") - FILE(APPEND ${_laname} "# The name of the static archive\n") - FILE(APPEND ${_laname} "old_library=''\n") - FILE(APPEND ${_laname} "# Libraries that this one depends upon.\n") - FILE(APPEND ${_laname} "dependency_libs=''\n") -# FILE(APPEND ${_laname} "dependency_libs='${${_target}_LIB_DEPENDS}'\n") - FILE(APPEND ${_laname} "# Version information.\ncurrent=0\nage=0\nrevision=0\n") - FILE(APPEND ${_laname} "# Is this an already installed library?\ninstalled=yes\n") - FILE(APPEND ${_laname} "# Should we warn about portability when linking against -modules?\nshouldnotlink=yes\n") - FILE(APPEND ${_laname} "# Files to dlopen/dlpreopen\ndlopen=''\ndlpreopen=''\n") - FILE(APPEND ${_laname} "# Directory that this library needs to be installed in:\n") - FILE(APPEND ${_laname} "libdir='${CMAKE_INSTALL_PREFIX}/lib/kde3'\n") - - INSTALL_FILES(/lib/kde3 FILES ${_laname}) -ENDMACRO(KDE3_CREATE_LIBTOOL_FILE) - - -MACRO(KDE3_CREATE_FINAL_FILE _filename) - FILE(WRITE ${_filename} "//autogenerated file\n") - FOREACH (_current_FILE ${ARGN}) - FILE(APPEND ${_filename} "#include \"${_current_FILE}\"\n") - ENDFOREACH (_current_FILE) - -ENDMACRO(KDE3_CREATE_FINAL_FILE _filename) - - -OPTION(KDE3_ENABLE_FINAL "Enable final all-in-one compilation") -OPTION(KDE3_BUILD_TESTS "Build the tests") - -MACRO(KDE3_ADD_KPART _target_NAME _with_PREFIX) -#is the first argument is "WITH_PREFIX" then keep the standard "lib" prefix, otherwise set the prefix empty - IF (${_with_PREFIX} STREQUAL "WITH_PREFIX") - SET(_first_SRC) - ELSE (${_with_PREFIX} STREQUAL "WITH_PREFIX") - SET(_first_SRC ${_with_PREFIX}) - ENDIF (${_with_PREFIX} STREQUAL "WITH_PREFIX") - - IF (KDE3_ENABLE_FINAL) - KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${_first_SRC} ${ARGN}) - ADD_LIBRARY(${_target_NAME} MODULE ${_target_NAME}_final.cpp) - ELSE (KDE3_ENABLE_FINAL) - ADD_LIBRARY(${_target_NAME} MODULE ${_first_SRC} ${ARGN}) - ENDIF (KDE3_ENABLE_FINAL) - - IF(_first_SRC) - SET_TARGET_PROPERTIES(${_target_NAME} PROPERTIES PREFIX "") - ENDIF(_first_SRC) - - KDE3_CREATE_LIBTOOL_FILE(${_target_NAME}) - -ENDMACRO(KDE3_ADD_KPART _target_NAME _with_PREFIX) - -MACRO(KDE3_ADD_KLM _target_NAME ) - - IF (KDE3_ENABLE_FINAL) - KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${ARGN}) - ADD_LIBRARY(kdeinit_${_target_NAME} SHARED ${_target_NAME}_final.cpp) - ELSE (KDE3_ENABLE_FINAL) - ADD_LIBRARY(kdeinit_${_target_NAME} SHARED ${ARGN} ) - MESSAGE(STATUS "klm: kdeinit_${_target_NAME}") - ENDIF (KDE3_ENABLE_FINAL) - - CONFIGURE_FILE(${CMAKE_ROOT}/Modules/kde3init_dummy.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp) - - ADD_EXECUTABLE( ${_target_NAME} ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp ) - TARGET_LINK_LIBRARIES( ${_target_NAME} kdeinit_${_target_NAME} ) - -ENDMACRO(KDE3_ADD_KLM _target_NAME) - - -MACRO(KDE3_ADD_EXECUTABLE _target_NAME ) - - IF (KDE3_ENABLE_FINAL) - KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${ARGN}) - ADD_EXECUTABLE(${_target_NAME} ${_target_NAME}_final.cpp) - ELSE (KDE3_ENABLE_FINAL) - ADD_EXECUTABLE(${_target_NAME} ${ARGN} ) - ENDIF (KDE3_ENABLE_FINAL) - -ENDMACRO(KDE3_ADD_EXECUTABLE _target_NAME) - - diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt new file mode 100644 index 00000000..a7fa49a9 --- /dev/null +++ b/modules/CMakeLists.txt @@ -0,0 +1,3 @@ +SET(CMAKE_INSTALL_PREFIX ${CMAKE_ROOT} ) +INSTALL_FILES(/Modules FILES FindKDE3.cmake KDE3Macros.cmake kde3init_dummy.cpp.in kde3uic.cmake ) + diff --git a/modules/FindKDE3.cmake b/modules/FindKDE3.cmake new file mode 100644 index 00000000..f5be090d --- /dev/null +++ b/modules/FindKDE3.cmake @@ -0,0 +1,159 @@ +# - Find the KDE3 include and library dirs, KDE preprocessors and define a some macros +# +# KDE3_DEFINITIONS +# KDE3_INCLUDE_DIR +# KDE3_INCLUDE_DIRS +# KDE3_LIB_DIR +# KDE3_SERVICETYPES_DIR +# KDE3_DCOPIDL_EXECUTABLE +# KDE3_DCOPIDL2CPP_EXECUTABLE +# KDE3_KCFGC_EXECUTABLE +# KDE3_FOUND +# it also adds the following macros (from KDE3Macros.cmake) +# ADD_FILE_DEPENDANCY +# KDE3_ADD_DCOP_SKELS +# KDE3_ADD_DCOP_STUBS +# KDE3_ADD_MOC_FILES +# KDE3_ADD_UI_FILES +# KDE3_ADD_KCFG_FILES +# KDE3_AUTOMOC +# KDE3_PLACEHOLDER +# KDE3_CREATE_LIBTOOL_FILE +# KDE3_CREATE_FINAL_FILE +# KDE3_ADD_KPART +# KDE3_ADD_KLM +# KDE3_ADD_EXECUTABLE + + +CMAKE_MINIMUM_REQUIRED(VERSION 2.2) + +SET(QT_MT_REQUIRED TRUE) +#SET(QT_MIN_VERSION "3.0.0") + +#this line includes FindQt.cmake, which searches the Qt library and headers +INCLUDE(FindQt3) + +#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(KDE3_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(KDE3_DEFINITIONS ${KDE3_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") + +#now try to find some kde stuff + +#at first the KDE include direcory +FIND_PATH(KDE3_INCLUDE_DIR kurl.h + $ENV{KDEDIR}/include + /opt/kde/include + /opt/kde3/include + /usr/local/include + /usr/include/ + /usr/include/kde + /usr/local/include/kde +) + +#now the KDE library directory +FIND_PATH(KDE3_LIB_DIR libkdecore.so + $ENV{KDEDIR}/lib + /opt/kde/lib + /opt/kde3/lib + /usr/lib + /usr/local/lib +) + +#now the KDE service types directory +FIND_PATH(KDE3_SERVICETYPES_DIR ktexteditor.desktop + $ENV{KDEDIR}/share/servicetypes/ + /opt/kde/share/servicetypes/ + /opt/kde3/share/servicetypes/ +) + +#now search for the dcop utilities +FIND_PROGRAM(KDE3_DCOPIDL_EXECUTABLE NAME dcopidl PATHS + $ENV{KDEDIR}/bin + /opt/kde/bin + /opt/kde3/bin + ) + +FIND_PROGRAM(KDE3_DCOPIDL2CPP_EXECUTABLE NAME dcopidl2cpp PATHS + $ENV{KDEDIR}/bin + /opt/kde/bin + /opt/kde3/bin) + +FIND_PROGRAM(KDE3_KCFGC_EXECUTABLE NAME kconfig_compiler PATHS + $ENV{KDEDIR}/bin + /opt/kde/bin + /opt/kde3/bin) + +# KDE3Macros.cmake contains all the KDE specific macros +INCLUDE(KDE3Macros) + +#set KDE3_FOUND +IF (KDE3_INCLUDE_DIR AND KDE3_LIB_DIR AND KDE3_SERVICETYPES_DIR AND KDE3_DCOPIDL_EXECUTABLE AND KDE3_DCOPIDL2CPP_EXECUTABLE AND KDE3_KCFGC_EXECUTABLE) + SET(KDE3_FOUND TRUE) +ELSE (KDE3_INCLUDE_DIR AND KDE3_LIB_DIR AND KDE3_SERVICETYPES_DIR AND KDE3_DCOPIDL_EXECUTABLE AND KDE3_DCOPIDL2CPP_EXECUTABLE AND KDE3_KCFGC_EXECUTABLE) + SET(KDE3_FOUND FALSE) +ENDIF (KDE3_INCLUDE_DIR AND KDE3_LIB_DIR AND KDE3_SERVICETYPES_DIR AND KDE3_DCOPIDL_EXECUTABLE AND KDE3_DCOPIDL2CPP_EXECUTABLE AND KDE3_KCFGC_EXECUTABLE) + + +MACRO (KDE3_PRINT_RESULTS) + IF(KDE3_INCLUDE_DIR) + MESSAGE(STATUS "Found KDE3 include dir: ${KDE3_INCLUDE_DIR}") + ELSE(KDE3_INCLUDE_DIR) + MESSAGE(STATUS "Didn't find KDE3 headers") + ENDIF(KDE3_INCLUDE_DIR) + + IF(KDE3_LIB_DIR) + MESSAGE(STATUS "Found KDE3 library dir: ${KDE3_LIB_DIR}") + ELSE(KDE3_LIB_DIR) + MESSAGE(STATUS "Didn't find KDE3 core library") + ENDIF(KDE3_LIB_DIR) + + IF(KDE3_DCOPIDL_EXECUTABLE) + MESSAGE(STATUS "Found KDE3 dcopidl preprocessor: ${KDE3_DCOPIDL_EXECUTABLE}") + ELSE(KDE3_DCOPIDL_EXECUTABLE) + MESSAGE(STATUS "Didn't find the KDE3 dcopidl preprocessor") + ENDIF(KDE3_DCOPIDL_EXECUTABLE) + + IF(KDE3_DCOPIDL2CPP_EXECUTABLE) + MESSAGE(STATUS "Found KDE3 dcopidl2cpp preprocessor: ${KDE3_DCOPIDL2CPP_EXECUTABLE}") + ELSE(KDE3_DCOPIDL2CPP_EXECUTABLE) + MESSAGE(STATUS "Didn't find the KDE3 dcopidl2cpp preprocessor") + ENDIF(KDE3_DCOPIDL2CPP_EXECUTABLE) + + IF(KDE3_KCFGC_EXECUTABLE) + MESSAGE(STATUS "Found KDE3 kconfig_compiler preprocessor: ${KDE3_KCFGC_EXECUTABLE}") + ELSE(KDE3_KCFGC_EXECUTABLE) + MESSAGE(STATUS "Didn't find the KDE3 kconfig_compiler preprocessor") + ENDIF(KDE3_KCFGC_EXECUTABLE) + +ENDMACRO (KDE3_PRINT_RESULTS) + +IF (KDE3_FIND_REQUIRED AND NOT KDE3_FOUND) + #bail out if something wasn't found + KDE3_PRINT_RESULTS() + MESSAGE(FATAL_ERROR "Could not find everything required for compiling KDE 3 programs") + +ENDIF (KDE3_FIND_REQUIRED AND NOT KDE3_FOUND) + +IF (NOT KDE3_FIND_QUIETLY) + KDE3_PRINT_RESULTS() +ENDIF (NOT KDE3_FIND_QUIETLY) + +#add the found Qt and KDE include directories to the current include path +SET(KDE3_INCLUDE_DIRS ${QT_INCLUDE_DIR} ${KDE3_INCLUDE_DIR}) +#INCLUDE_DIRECTORIES(${QT_INCLUDE_DIR} ${KDE3_INCLUDE_DIR} .) +#LINK_DIRECTORIES(${KDE3_LIB_DIR}) + diff --git a/modules/KDE3Macros.cmake b/modules/KDE3Macros.cmake new file mode 100644 index 00000000..78b94fce --- /dev/null +++ b/modules/KDE3Macros.cmake @@ -0,0 +1,364 @@ +# this file contains the following macros: +# ADD_FILE_DEPENDANCY +# KDE3_ADD_DCOP_SKELS +# KDE3_ADD_DCOP_STUBS +# KDE3_ADD_MOC_FILES +# KDE3_ADD_UI_FILES +# KDE3_ADD_KCFG_FILES +# KDE3_AUTOMOC +# KDE3_CREATE_LIBTOOL_FILE +# KDE3_PLACEHOLDER +# KDE3_CREATE_FINAL_FILE +# KDE3_ADD_KPART +# KDE3_ADD_KLM +# KDE3_ADD_EXECUTABLE + + +#neundorf@kde.org + +#this should better be part of cmake: +#add an additional file to the list of files a source file depends on +MACRO(ADD_FILE_DEPENDANCY file) + + GET_SOURCE_FILE_PROPERTY(_deps ${file} OBJECT_DEPENDS) + IF (_deps) + SET(_deps ${_deps} ${ARGN}) + ELSE (_deps) + SET(_deps ${ARGN}) + ENDIF (_deps) + + SET_SOURCE_FILES_PROPERTIES(${file} PROPERTIES OBJECT_DEPENDS "${_deps}") + +ENDMACRO(ADD_FILE_DEPENDANCY) + + +#create the kidl and skeletion file for dcop stuff +#usage: KDE_ADD_COP_SKELS(foo_SRCS ${dcop_headers}) +MACRO(KDE3_ADD_DCOP_SKELS _sources) + FOREACH (_current_FILE ${ARGN}) + GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE) + + SET(_skel ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_skel_skel.cpp) + SET(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_skel.kidl) + + ADD_CUSTOM_COMMAND(OUTPUT ${_kidl} + COMMAND ${KDE3_DCOPIDL_EXECUTABLE} + ARGS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} > ${_kidl} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} + ) + + ADD_CUSTOM_COMMAND(OUTPUT ${_skel} + COMMAND ${KDE3_DCOPIDL2CPP_EXECUTABLE} + ARGS --c++-suffix cpp --no-signals --no-stub ${_kidl} + DEPENDS ${_kidl} + ) + + SET(${_sources} ${${_sources}} ${_skel}) + + ENDFOREACH (_current_FILE) + +ENDMACRO(KDE3_ADD_DCOP_SKELS) + +MACRO(KDE3_ADD_DCOP_STUBS _sources) + FOREACH (_current_FILE ${ARGN}) + + IF(${_current_FILE} MATCHES "^/.+") #abs path + SET(_tmp_FILE ${_current_FILE}) + ELSE(${_current_FILE} MATCHES "^/.+") + SET(_tmp_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) + ENDIF(${_current_FILE} MATCHES "^/.+") + + GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) + + SET(_stub_CPP ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_stub.cpp) +# SET(_stub_H ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_stub.h) + SET(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_stub.kidl) + + ADD_CUSTOM_COMMAND(OUTPUT ${_kidl} + COMMAND ${KDE3_DCOPIDL_EXECUTABLE} + ARGS ${tmp_FILE} > ${_kidl} + DEPENDS ${tmp_FILE} + ) + + ADD_CUSTOM_COMMAND(OUTPUT ${_stub_CPP} + COMMAND ${KDE3_DCOPIDL2CPP_EXECUTABLE} + ARGS --c++-suffix cpp --no-signals --no-skel ${_kidl} + DEPENDS ${_kidl} + ) + + SET(${_sources} ${${_sources}} ${_stub_CPP}) + + ENDFOREACH (_current_FILE) + +ENDMACRO(KDE3_ADD_DCOP_STUBS) + +MACRO(KDE3_ADD_KCFG_FILES _sources) + FOREACH (_current_FILE ${ARGN}) + + IF(${_current_FILE} MATCHES "^/.+") #abs path + SET(_tmp_FILE ${_current_FILE}) + ELSE(${_current_FILE} MATCHES "^/.+") + SET(_tmp_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) + ENDIF(${_current_FILE} MATCHES "^/.+") + + GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) + + FILE(READ ${_tmp_FILE} _contents) + STRING(REGEX REPLACE "^(.*\n)?File=([^\n]+)\n.*$" "\\2" _kcfg_FILE "${_contents}") + + SET(_src_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp) + SET(_header_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) + + ADD_CUSTOM_COMMAND(OUTPUT ${_src_FILE} + COMMAND ${KDE3_KCFGC_EXECUTABLE} + ARGS ${_kcfg_FILE} ${_tmp_FILE} + DEPENDS ${_tmp_FILE} ) + + SET(${_sources} ${${_sources}} ${_src_FILE}) + + ENDFOREACH (_current_FILE) + +ENDMACRO(KDE3_ADD_KCFG_FILES) + + +#create the moc files and add them to the list of sources +#usage: KDE_ADD_MOC_FILES(foo_SRCS ${moc_headers}) +MACRO(KDE3_ADD_MOC_FILES _sources) + FOREACH (_current_FILE ${ARGN}) + GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE) + GET_FILENAME_COMPONENT(_path ${_current_FILE} PATH) + SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc.cpp) + + ADD_CUSTOM_COMMAND(OUTPUT ${_moc} + COMMAND ${QT_MOC_EXECUTABLE} + ARGS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} -o ${_moc} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} + ) + + SET(${_sources} ${${_sources}} ${_moc}) + + ENDFOREACH (_current_FILE) +ENDMACRO(KDE3_ADD_MOC_FILES) + + +#create the implementation files from the ui files and add them to the list of sources +#usage: KDE_ADD_UI_FILES(foo_SRCS ${ui_files}) +MACRO(KDE3_ADD_UI_FILES _sources ) + FOREACH (_current_FILE ${ARGN}) + + GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE) + SET(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) + SET(_src ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp) + SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc.cpp) + + ADD_CUSTOM_COMMAND(OUTPUT ${_header} + COMMAND ${QT_UIC_EXECUTABLE} + ARGS -nounload -o ${_header} ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} + ) + +# ADD_CUSTOM_COMMAND(OUTPUT ${_src} +# COMMAND uic +# ARGS -nounload -tr tr2i18n -o ${_src} -impl ${_header} ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} +# DEPENDS ${_header} +# ) + + ADD_CUSTOM_COMMAND(OUTPUT ${_src} + COMMAND ${CMAKE_COMMAND} + ARGS + -DKDE_UIC_FILE:STRING=${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} + -DKDE_UIC_CPP_FILE:STRING=${_src} + -DKDE_UIC_H_FILE:STRING=${_header} + -P ${CMAKE_ROOT}/Modules/kde3uic.cmake + DEPENDS ${_header} + ) + + ADD_CUSTOM_COMMAND(OUTPUT ${_moc} + COMMAND ${QT_MOC_EXECUTABLE} + ARGS ${_header} -o ${_moc} + DEPENDS ${_header} + ) + + SET(${_sources} ${${_sources}} ${_src} ${_moc} ) + + ENDFOREACH (_current_FILE) +ENDMACRO(KDE3_ADD_UI_FILES) + +MACRO(KDE3_AUTOMOC) + SET(_matching_FILES ) + FOREACH (_current_FILE ${ARGN}) + IF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) + + FILE(READ ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} _contents) + + IF(${_current_FILE} MATCHES "^/.+") + SET(_tmp_FILE ${_current_FILE}) + ELSE(${_current_FILE} MATCHES "^/.+") + SET(_tmp_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) + ENDIF(${_current_FILE} MATCHES "^/.+") + GET_FILENAME_COMPONENT(_abs_FILE ${_tmp_FILE} ABSOLUTE) + GET_FILENAME_COMPONENT(_abs_PATH ${_abs_FILE} PATH) + + STRING(REGEX MATCHALL "#include +[^ ]+\\.moc[\">]" _match "${_contents}") + IF(_match) + FOREACH (_current_MOC_INC ${_match}) + STRING(REGEX MATCH "[^ <\"]+\\.moc" _current_MOC "${_current_MOC_INC}") + + GET_FILENAME_COMPONENT(_basename ${_current_MOC} NAME_WE) +# SET(_header ${CMAKE_CURRENT_SOURCE_DIR}/${_basename}.h) + SET(_header ${_abs_PATH}/${_basename}.h) + SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC}) + + ADD_CUSTOM_COMMAND(OUTPUT ${_moc} + COMMAND ${QT_MOC_EXECUTABLE} + ARGS ${_header} -o ${_moc} + DEPENDS ${_header} + ) + + ADD_FILE_DEPENDANCY(${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} ${_moc}) + + ENDFOREACH (_current_MOC_INC) + ENDIF(_match) + + ENDIF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}) + ENDFOREACH (_current_FILE) +ENDMACRO(KDE3_AUTOMOC) + +MACRO(KDE3_INSTALL_ICONS _theme) + ADD_CUSTOM_TARGET(install_icons ) + SET_TARGET_PROPERTIES(install_icons PROPERTIES POST_INSTALL_SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake ) + FILE(WRITE install_icons.cmake "# icon installations rules\n") + FILE(APPEND install_icons.cmake "SET(CMAKE_BACKWARDS_COMPATIBILITY \"2.2\") \n") + + FILE(GLOB _icons *.png) + FOREACH(_current_ICON ${_icons} ) + 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(_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: ${_size} group: ${_group} name: ${_name}" ) + SET(_ICON_INSTALL_NAME ${CMAKE_INSTALL_PREFIX}/share/icons/${_theme}/${_size}x${_size}/${_icon_GROUP}/${_name}) + FILE(APPEND install_icons.cmake "MESSAGE(STATUS \"Installing ${_ICON_INSTALL_NAME}\") \n") + FILE(APPEND install_icons.cmake "CONFIGURE_FILE( ${_current_ICON} ${_ICON_INSTALL_NAME} COPYONLY) \n") + + ENDFOREACH (_current_ICON) +ENDMACRO(KDE3_INSTALL_ICONS _theme) + +MACRO(KDE3_PLACEHOLDER) +ENDMACRO(KDE3_PLACEHOLDER) + +MACRO(KDE3_CREATE_LIBTOOL_FILE _target) + GET_TARGET_PROPERTY(_target_location ${_target} LOCATION) + + GET_FILENAME_COMPONENT(_laname ${_target_location} NAME_WE) + GET_FILENAME_COMPONENT(_soname ${_target_location} NAME) + SET(_laname ${_laname}.la) + + FILE(WRITE ${_laname} "# ${_laname} - a libtool library file, generated by cmake \n") + FILE(APPEND ${_laname} "# The name that we can dlopen(3).\n") + FILE(APPEND ${_laname} "dlname='${_soname}'\n") + FILE(APPEND ${_laname} "# Names of this library\n") + FILE(APPEND ${_laname} "library_names='${_soname} ${_soname} ${_soname}'\n") + FILE(APPEND ${_laname} "# The name of the static archive\n") + FILE(APPEND ${_laname} "old_library=''\n") + FILE(APPEND ${_laname} "# Libraries that this one depends upon.\n") + FILE(APPEND ${_laname} "dependency_libs=''\n") +# FILE(APPEND ${_laname} "dependency_libs='${${_target}_LIB_DEPENDS}'\n") + FILE(APPEND ${_laname} "# Version information.\ncurrent=0\nage=0\nrevision=0\n") + FILE(APPEND ${_laname} "# Is this an already installed library?\ninstalled=yes\n") + FILE(APPEND ${_laname} "# Should we warn about portability when linking against -modules?\nshouldnotlink=yes\n") + FILE(APPEND ${_laname} "# Files to dlopen/dlpreopen\ndlopen=''\ndlpreopen=''\n") + FILE(APPEND ${_laname} "# Directory that this library needs to be installed in:\n") + FILE(APPEND ${_laname} "libdir='${CMAKE_INSTALL_PREFIX}/lib/kde3'\n") + + INSTALL_FILES(/lib/kde3 FILES ${_laname}) +ENDMACRO(KDE3_CREATE_LIBTOOL_FILE) + + +MACRO(KDE3_CREATE_FINAL_FILE _filename) + FILE(WRITE ${_filename} "//autogenerated file\n") + FOREACH (_current_FILE ${ARGN}) + FILE(APPEND ${_filename} "#include \"${_current_FILE}\"\n") + ENDFOREACH (_current_FILE) + +ENDMACRO(KDE3_CREATE_FINAL_FILE _filename) + + +OPTION(KDE3_ENABLE_FINAL "Enable final all-in-one compilation") +OPTION(KDE3_BUILD_TESTS "Build the tests") + +MACRO(KDE3_ADD_KPART _target_NAME _with_PREFIX) +#is the first argument is "WITH_PREFIX" then keep the standard "lib" prefix, otherwise set the prefix empty + IF (${_with_PREFIX} STREQUAL "WITH_PREFIX") + SET(_first_SRC) + ELSE (${_with_PREFIX} STREQUAL "WITH_PREFIX") + SET(_first_SRC ${_with_PREFIX}) + ENDIF (${_with_PREFIX} STREQUAL "WITH_PREFIX") + + IF (KDE3_ENABLE_FINAL) + KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${_first_SRC} ${ARGN}) + ADD_LIBRARY(${_target_NAME} MODULE ${_target_NAME}_final.cpp) + ELSE (KDE3_ENABLE_FINAL) + ADD_LIBRARY(${_target_NAME} MODULE ${_first_SRC} ${ARGN}) + ENDIF (KDE3_ENABLE_FINAL) + + IF(_first_SRC) + SET_TARGET_PROPERTIES(${_target_NAME} PROPERTIES PREFIX "") + ENDIF(_first_SRC) + + KDE3_CREATE_LIBTOOL_FILE(${_target_NAME}) + +ENDMACRO(KDE3_ADD_KPART _target_NAME _with_PREFIX) + +MACRO(KDE3_ADD_KLM _target_NAME ) + + IF (KDE3_ENABLE_FINAL) + KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${ARGN}) + ADD_LIBRARY(kdeinit_${_target_NAME} SHARED ${_target_NAME}_final.cpp) + ELSE (KDE3_ENABLE_FINAL) + ADD_LIBRARY(kdeinit_${_target_NAME} SHARED ${ARGN} ) + MESSAGE(STATUS "klm: kdeinit_${_target_NAME}") + ENDIF (KDE3_ENABLE_FINAL) + + CONFIGURE_FILE(${CMAKE_ROOT}/Modules/kde3init_dummy.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp) + + ADD_EXECUTABLE( ${_target_NAME} ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp ) + TARGET_LINK_LIBRARIES( ${_target_NAME} kdeinit_${_target_NAME} ) + +ENDMACRO(KDE3_ADD_KLM _target_NAME) + + +MACRO(KDE3_ADD_EXECUTABLE _target_NAME ) + + IF (KDE3_ENABLE_FINAL) + KDE3_CREATE_FINAL_FILE(${_target_NAME}_final.cpp ${ARGN}) + ADD_EXECUTABLE(${_target_NAME} ${_target_NAME}_final.cpp) + ELSE (KDE3_ENABLE_FINAL) + ADD_EXECUTABLE(${_target_NAME} ${ARGN} ) + ENDIF (KDE3_ENABLE_FINAL) + +ENDMACRO(KDE3_ADD_EXECUTABLE _target_NAME) + + diff --git a/modules/kde3init_dummy.cpp.in b/modules/kde3init_dummy.cpp.in new file mode 100644 index 00000000..f0cd3488 --- /dev/null +++ b/modules/kde3init_dummy.cpp.in @@ -0,0 +1,3 @@ +extern "C" int kdemain(int argc, char* argv[]); +extern "C" int kdeinitmain(int argc, char* argv[]) { return kdemain(argc,argv); } +int main(int argc, char* argv[]) { return kdemain(argc,argv); } diff --git a/modules/kde3uic.cmake b/modules/kde3uic.cmake new file mode 100644 index 00000000..64751b2e --- /dev/null +++ b/modules/kde3uic.cmake @@ -0,0 +1,17 @@ + +EXEC_PROGRAM(uic ARGS + -nounload -tr tr2i18n + -impl ${KDE_UIC_H_FILE} + ${KDE_UIC_FILE} + OUTPUT_VARIABLE _uic_CONTENTS +) + +STRING(REGEX REPLACE "tr2i18n\\(\"\"\\)" "QString::null" _uic_CONTENTS "${_uic_CONTENTS}" ) +STRING(REGEX REPLACE "tr2i18n\\(\"\", \"\"\\)" "QString::null" _uic_CONTENTS "${_uic_CONTENTS}" ) + +# $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_editbookmarkdlg,g" >> editbookmarkdlg.cpp ;\ +# rm -f editbookmarkdlg.cpp.temp ;\ + +FILE(WRITE ${KDE_UIC_CPP_FILE} "#include \n#include \n\n") +FILE(APPEND ${KDE_UIC_CPP_FILE} "${_uic_CONTENTS}") + -- cgit v1.2.1