diff options
-rw-r--r-- | modules/FindKDE4.cmake | 2 | ||||
-rw-r--r-- | modules/FindQt4.cmake | 23 | ||||
-rw-r--r-- | modules/KDE4Macros.cmake | 64 | ||||
-rw-r--r-- | modules/kde4uic.cmake | 16 |
4 files changed, 22 insertions, 83 deletions
diff --git a/modules/FindKDE4.cmake b/modules/FindKDE4.cmake index 3794f564..b09ddcd1 100644 --- a/modules/FindKDE4.cmake +++ b/modules/FindKDE4.cmake @@ -28,7 +28,7 @@ # _KDE4_PLATFORM_DEFINITIONS is used only internally -CMAKE_MINIMUM_REQUIRED(VERSION 2.2) +CMAKE_MINIMUM_REQUIRED(VERSION 2.3.3) #this line includes FindQt.cmake, which searches the Qt library and headers FIND_PACKAGE(Qt4 REQUIRED) diff --git a/modules/FindQt4.cmake b/modules/FindQt4.cmake index 894c42b1..b7273684 100644 --- a/modules/FindQt4.cmake +++ b/modules/FindQt4.cmake @@ -608,23 +608,6 @@ IF(QT4_QMAKE_FOUND) # ###################################### - # this function takes a relative or absolute filename as argument in _filename - # and returns the absolute path in _abs_filename -# it should work both with UNIX and Windows paths (Windows not tested), Alex - MACRO(QT4_GET_ABS_PATH _abs_filename _filename) - IF(${_filename} MATCHES "^([a-zA-Z]:)?/.+") - SET(${_abs_filename} ${_filename}) - ELSE(${_filename} MATCHES "^([a-zA-Z]:)?/.+") - SET(${_abs_filename} ${CMAKE_CURRENT_SOURCE_DIR}/${_filename}) - ENDIF(${_filename} MATCHES "^([a-zA-Z]:)?/.+") -# the previous version, works only with UNIX paths -# IF(${_filename} MATCHES "^/.+") -# SET(${_abs_filename} ${_filename}) -# ELSE(${_filename} MATCHES "^/.+") -# SET(${_abs_filename} ${CMAKE_CURRENT_SOURCE_DIR}/${_filename}) -# ENDIF(${_filename} MATCHES "^/.+") - ENDMACRO(QT4_GET_ABS_PATH) - MACRO(QT4_GET_MOC_INC_DIRS _moc_INC_DIRS) SET(${_moc_INC_DIRS}) GET_DIRECTORY_PROPERTY(_inc_DIRS INCLUDE_DIRECTORIES) @@ -638,8 +621,8 @@ IF(QT4_QMAKE_FOUND) # get include dirs QT4_GET_MOC_INC_DIRS(moc_includes) - QT4_GET_ABS_PATH(infile ${infile}) - + GET_FILENAME_COMPONENT(infile ${infile} ABSOLUTE) + ADD_CUSTOM_COMMAND(OUTPUT ${outfile} COMMAND ${QT_MOC_EXECUTABLE} ARGS ${moc_includes} -o ${outfile} ${infile} @@ -655,7 +638,7 @@ IF(QT4_QMAKE_FOUND) QT4_GET_MOC_INC_DIRS(moc_includes) FOREACH(it ${ARGN}) - QT4_GET_ABS_PATH(it ${it}) + GET_FILENAME_COMPONENT(it ${it} ABSOLUTE) GET_FILENAME_COMPONENT(outfile ${it} NAME_WE) SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/moc_${outfile}.cxx) diff --git a/modules/KDE4Macros.cmake b/modules/KDE4Macros.cmake index 4034ebb6..64520a12 100644 --- a/modules/KDE4Macros.cmake +++ b/modules/KDE4Macros.cmake @@ -13,31 +13,14 @@ # KDE4_ADD_KDEINIT_EXECUTABLE # KDE4_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(KDE4_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(KDE4_ADD_FILE_DEPENDANCY) - - #create the kidl and skeletion file for dcop stuff #usage: KDE_ADD_COP_SKELS(foo_SRCS ${dcop_headers}) MACRO(KDE4_ADD_DCOP_SKELS _sources) FOREACH (_current_FILE ${ARGN}) - QT4_GET_ABS_PATH(_tmp_FILE ${_current_FILE}) + GET_FILENAME_COMPONENT(_tmp_FILE ${_current_FILE} ABSOLUTE) GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) @@ -62,7 +45,7 @@ MACRO(KDE4_ADD_DCOP_SKELS _sources) COMMAND ${KDE4_DCOPIDL2CPP_EXECUTABLE} ARGS --c++-suffix cpp --no-signals --no-stub ${_kidl} DEPENDS ${_kidl} ${_KDE4_DCOPIDL2CPP_DEP} ) - + MACRO_ADDITIONAL_CLEAN_FILES( ${_skel_H}) ENDIF (NOT HAVE_${_basename}_SKEL_RULE) @@ -77,7 +60,7 @@ ENDMACRO(KDE4_ADD_DCOP_SKELS) MACRO(KDE4_ADD_DCOP_STUBS _sources) FOREACH (_current_FILE ${ARGN}) - QT4_GET_ABS_PATH(_tmp_FILE ${_current_FILE}) + GET_FILENAME_COMPONENT(_tmp_FILE ${_current_FILE} ABSOLUTE) GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) @@ -102,9 +85,9 @@ MACRO(KDE4_ADD_DCOP_STUBS _sources) COMMAND ${KDE4_DCOPIDL2CPP_EXECUTABLE} ARGS --c++-suffix cpp --no-signals --no-skel ${_kidl} DEPENDS ${_kidl} ${_KDE4_DCOPIDL2CPP_DEP} ) - + MACRO_ADDITIONAL_CLEAN_FILES( ${_stub_H}) - + ENDIF (NOT HAVE_${_basename}_STUB_RULE) SET(${_sources} ${${_sources}} ${_stub_CPP}) @@ -117,7 +100,7 @@ ENDMACRO(KDE4_ADD_DCOP_STUBS) MACRO(KDE4_ADD_KCFG_FILES _sources) FOREACH (_current_FILE ${ARGN}) - QT4_GET_ABS_PATH(_tmp_FILE ${_current_FILE}) + GET_FILENAME_COMPONENT(_tmp_FILE ${_current_FILE} ABSOLUTE) GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) @@ -138,24 +121,6 @@ MACRO(KDE4_ADD_KCFG_FILES _sources) ENDMACRO(KDE4_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(KDE4_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(KDE4_ADD_MOC_FILES) - IF(EXISTS "${CMAKE_ROOT}/Modules/kde4init_dummy.cpp.in") SET(KDE4_MODULE_DIR "${CMAKE_ROOT}/Modules") ELSE(EXISTS "${CMAKE_ROOT}/Modules/kde4init_dummy.cpp.in") @@ -168,7 +133,7 @@ ENDIF(EXISTS "${CMAKE_ROOT}/Modules/kde4init_dummy.cpp.in") MACRO(KDE4_ADD_UI_FILES _sources ) FOREACH (_current_FILE ${ARGN}) - QT4_GET_ABS_PATH(_tmp_FILE ${_current_FILE}) + GET_FILENAME_COMPONENT(_tmp_FILE ${_current_FILE} ABSOLUTE) GET_FILENAME_COMPONENT(_basename ${_tmp_FILE} NAME_WE) SET(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) @@ -198,19 +163,13 @@ MACRO(KDE4_ADD_UI3_FILES _sources ) FOREACH (_current_FILE ${ARGN}) - QT4_GET_ABS_PATH(_tmp_FILE ${_current_FILE}) + GET_FILENAME_COMPONENT(_tmp_FILE ${_current_FILE} ABSOLUTE) GET_FILENAME_COMPONENT(_basename ${_tmp_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_UIC3_EXECUTABLE} -# ARGS -nounload -o ${_header} ${_tmp_FILE} -# DEPENDS ${_tmp_FILE} -# ) - ADD_CUSTOM_COMMAND(OUTPUT ${_header} COMMAND ${CMAKE_COMMAND} -DKDE3_HEADER:BOOL=ON @@ -256,7 +215,7 @@ MACRO(KDE4_AUTOMOC) SET(_matching_FILES ) FOREACH (_current_FILE ${ARGN}) - QT4_GET_ABS_PATH(_tmp_FILE ${_current_FILE}) + GET_FILENAME_COMPONENT(_tmp_FILE ${_current_FILE} ABSOLUTE) IF (EXISTS ${_tmp_FILE}) @@ -292,7 +251,6 @@ ENDMACRO(KDE4_AUTOMOC) MACRO(KDE4_INSTALL_ICONS _theme _defaultpath ) ADD_CUSTOM_TARGET(install_icons ) - SET_TARGET_PROPERTIES(install_icons PROPERTIES POST_INSTALL_SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake ) FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake "# icon installations rules\n") FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake "SET(CMAKE_BACKWARDS_COMPATIBILITY \"2.2\") \n") @@ -363,6 +321,8 @@ MACRO(KDE4_INSTALL_ICONS _theme _defaultpath ) FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake "CONFIGURE_FILE( ${_current_ICON} ${_ICON_INSTALL_NAME} COPYONLY) \n") ENDFOREACH (_current_ICON) + INSTALL(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake ) + ENDMACRO(KDE4_INSTALL_ICONS _theme _defaultpath) @@ -455,7 +415,7 @@ MACRO(KDE4_ADD_KDEINIT_EXECUTABLE _target_NAME ) CONFIGURE_FILE(${KDE4_MODULE_DIR}/kde4init_dummy.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp) MACRO_ADDITIONAL_CLEAN_FILES( ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp ) - + # IF (WIN32) # # under windows, just build a normal executable # KDE4_ADD_EXECUTABLE(${_target_NAME} ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp ${ARGN} ) diff --git a/modules/kde4uic.cmake b/modules/kde4uic.cmake index fe1e6b6c..4d33e60d 100644 --- a/modules/kde4uic.cmake +++ b/modules/kde4uic.cmake @@ -2,21 +2,23 @@ #using a ui3 file with uic3 IF(KDE3_IMPL) - EXEC_PROGRAM(${KDE_UIC_EXECUTABLE} ARGS + EXECUTE_PROCESS(COMMAND ${KDE_UIC_EXECUTABLE} -nounload -tr tr2i18n -impl ${KDE_UIC_H_FILE} ${KDE_UIC_FILE} OUTPUT_VARIABLE _uic_CONTENTS + ERROR_QUIET ) ENDIF(KDE3_IMPL) IF(KDE3_HEADER) - EXEC_PROGRAM(${KDE_UIC_EXECUTABLE} ARGS + EXECUTE_PROCESS(COMMAND ${KDE_UIC_EXECUTABLE} -nounload -tr tr2i18n ${KDE_UIC_FILE} OUTPUT_VARIABLE _uic_CONTENTS + ERROR_QUIET ) SET(KDE_UIC_CPP_FILE ${KDE_UIC_H_FILE}) ENDIF(KDE3_HEADER) @@ -24,10 +26,11 @@ ENDIF(KDE3_HEADER) # the kde4 branch IF (KDE4_HEADER) - EXEC_PROGRAM(${KDE_UIC_EXECUTABLE} ARGS + EXECUTE_PROCESS(COMMAND ${KDE_UIC_EXECUTABLE} -tr tr2i18n ${KDE_UIC_FILE} OUTPUT_VARIABLE _uic_CONTENTS + ERROR_QUIET ) SET(KDE_UIC_CPP_FILE ${KDE_UIC_H_FILE}) @@ -40,12 +43,5 @@ STRING(REGEX REPLACE "tr2i18n\\(\"\", \"\"\\)" "QString::null" _uic_CONTENTS "${ #replace image15_data with img15_filename to make enable_final work STRING(REGEX REPLACE "image([0-9]+)_data" "img\\1_${KDE_UIC_BASENAME}" _uic_CONTENTS "${_uic_CONTENTS}") -# workaround which removes the stderr messages from uic, will be removed as soon as -# I switch to EXEC_PROCESS() in the calls above -STRING(REGEX REPLACE "\n[^\n]*uic3: [^\n]+" "" _uic_CONTENTS "${_uic_CONTENTS}" ) -STRING(REGEX REPLACE "\n'[^\n]+' [^\n]+" "" _uic_CONTENTS "${_uic_CONTENTS}" ) -STRING(REGEX REPLACE "\nWarning: [^\n]+" "" _uic_CONTENTS "${_uic_CONTENTS}" ) - - FILE(WRITE ${KDE_UIC_CPP_FILE} "#include <kdialog.h>\n#include <klocale.h>\n\n${_uic_CONTENTS}\n") |