aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2006-02-11 16:50:25 +0000
committerAlexander Neundorf <neundorf@kde.org>2006-02-11 16:50:25 +0000
commit68e472fabed37bd21e22ec58af4a0ce6d7a25720 (patch)
tree4a34d5570ab431abfb9f782c3579f5da252ec3e3
parentb9244b697c9abe1e40a3f8f3068830338c61a70b (diff)
downloadextra-cmake-modules-68e472fabed37bd21e22ec58af4a0ce6d7a25720.tar.gz
extra-cmake-modules-68e472fabed37bd21e22ec58af4a0ce6d7a25720.tar.bz2
now cmake 2.3.3 is required, if you have an older version, you get a warning
KDE cmake files are now workaround-free (if I didn't forget any): -use GET_FILENAME_COMPONENT(... ABSOLUTE) instead of QT4_GET_ABS_PATH() -use the new EXECUTE_PROCESS() instead of EXEC_PROGRAM() which discards stderr output -use check_symbol_exists() instead of check_function_exists() since this works better (mainly various windows issues) -use the new WORKING_DIRECTORY argument for ADD_CUSTOM_COMMAND() instead of cmake -E chdir ... Alex svn path=/trunk/KDE/kdelibs/; revision=508407
-rw-r--r--modules/FindKDE4.cmake2
-rw-r--r--modules/FindQt4.cmake23
-rw-r--r--modules/KDE4Macros.cmake64
-rw-r--r--modules/kde4uic.cmake16
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")