aboutsummaryrefslogtreecommitdiff
path: root/kde4
diff options
context:
space:
mode:
Diffstat (limited to 'kde4')
-rw-r--r--kde4/KDE4Macros.cmake92
-rw-r--r--kde4/kde4uic.cmake24
2 files changed, 84 insertions, 32 deletions
diff --git a/kde4/KDE4Macros.cmake b/kde4/KDE4Macros.cmake
index 6ccdebc4..fae370b9 100644
--- a/kde4/KDE4Macros.cmake
+++ b/kde4/KDE4Macros.cmake
@@ -36,15 +36,22 @@ ENDMACRO(KDE4_ADD_FILE_DEPENDANCY)
#usage: KDE_ADD_COP_SKELS(foo_SRCS ${dcop_headers})
MACRO(KDE4_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)
+ 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(_skel ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_skel.cpp)
+ SET(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.kidl)
ADD_CUSTOM_COMMAND(OUTPUT ${_kidl}
COMMAND ${KDE4_DCOPIDL_EXECUTABLE}
- ARGS --srcdir ${KDE4_KALYPTUS_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE} > ${_kidl}
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}
+ ARGS --srcdir ${KDE4_KALYPTUS_DIR} ${_tmp_FILE} > ${_kidl}
+ DEPENDS ${_tmp_FILE}
)
ADD_CUSTOM_COMMAND(OUTPUT ${_skel}
@@ -72,12 +79,12 @@ MACRO(KDE4_ADD_DCOP_STUBS _sources)
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)
+ SET(_kidl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.kidl)
ADD_CUSTOM_COMMAND(OUTPUT ${_kidl}
COMMAND ${KDE4_DCOPIDL_EXECUTABLE}
- ARGS ${tmp_FILE} > ${_kidl}
- DEPENDS ${tmp_FILE}
+ ARGS --srcdir ${KDE4_KALYPTUS_DIR} ${_tmp_FILE} > ${_kidl}
+ DEPENDS ${_tmp_FILE}
)
ADD_CUSTOM_COMMAND(OUTPUT ${_stub_CPP}
@@ -144,7 +151,13 @@ ENDMACRO(KDE4_ADD_KCFG_FILES)
MACRO(KDE4_ADD_UI_FILES _sources )
FOREACH (_current_FILE ${ARGN})
- GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE)
+ 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(_basename ${_tmp_FILE} NAME_WE)
SET(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h)
# we need to run uic and replace some things in the generated file
@@ -152,41 +165,72 @@ MACRO(KDE4_ADD_UI_FILES _sources )
ADD_CUSTOM_COMMAND(OUTPUT ${_header}
COMMAND ${CMAKE_COMMAND}
ARGS
+ -DKDE4_HEADER:BOOL=ON
-DKDE_UIC_EXECUTABLE:FILEPATH=${QT_UIC_EXECUTABLE}
- -DKDE_UIC_FILE:FILEPATH=${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}
+ -DKDE_UIC_FILE:FILEPATH=${_tmp_FILE}
-DKDE_UIC_H_FILE:FILEPATH=${_header}
-DKDE_UIC_BASENAME:STRING=${_basename}
-# -DKDE_UIC_PLUGIN_DIR:FILEPATH="."
-P ${CMAKE_ROOT}/Modules/kde4uic.cmake
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}
+ DEPENDS ${_tmp_FILE}
)
ENDFOREACH (_current_FILE)
ENDMACRO(KDE4_ADD_UI_FILES)
+MACRO(KDE4_GET_MOC_INC_DIRS _moc_INC_DIRS)
+ SET(${_moc_INC_DIRS})
+ GET_DIRECTORY_PROPERTY(_inc_DIRS INCLUDE_DIRECTORIES)
+
+ FOREACH(_current ${_inc_DIRS})
+ SET(${_moc_INC_DIRS} ${${_moc_INC_DIRS}} "-I" ${_current})
+ ENDFOREACH(_current ${_inc_DIRS})
+ENDMACRO(KDE4_GET_MOC_INC_DIRS _moc_INC_DIRS)
+
#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(KDE4_ADD_UI3_FILES _sources )
+
+ KDE4_GET_MOC_INC_DIRS(_moc_INCS)
+
FOREACH (_current_FILE ${ARGN})
- GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE)
+ 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(_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 ${QT_UIC3_EXECUTABLE}
- ARGS -nounload -o ${_header} ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}
+ COMMAND ${CMAKE_COMMAND}
+ -DKDE3_HEADER:BOOL=ON
+ -DKDE_UIC_EXECUTABLE:FILEPATH=${QT_UIC3_EXECUTABLE}
+ -DKDE_UIC_FILE:FILEPATH=${_tmp_FILE}
+ -DKDE_UIC_H_FILE:FILEPATH=${_header}
+ -DKDE_UIC_BASENAME:STRING=${_basename}
+ -DKDE_UIC_PLUGIN_DIR:FILEPATH="."
+ -P ${CMAKE_ROOT}/Modules/kde4uic.cmake
+ DEPENDS ${_tmp_FILE}
)
- # we need to run uic3 and replace some things in the generated file
+# we need to run uic3 and replace some things in the generated file
# this is done by executing the cmake script kde4uic.cmake
ADD_CUSTOM_COMMAND(OUTPUT ${_src}
COMMAND ${CMAKE_COMMAND}
ARGS
- -DKDE3:BOOL=ON
+ -DKDE3_IMPL:BOOL=ON
-DKDE_UIC_EXECUTABLE:FILEPATH=${QT_UIC3_EXECUTABLE}
- -DKDE_UIC_FILE:FILEPATH=${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}
+ -DKDE_UIC_FILE:FILEPATH=${_tmp_FILE}
-DKDE_UIC_CPP_FILE:FILEPATH=${_src}
-DKDE_UIC_H_FILE:FILEPATH=${_header}
-DKDE_UIC_BASENAME:STRING=${_basename}
@@ -197,7 +241,7 @@ MACRO(KDE4_ADD_UI3_FILES _sources )
ADD_CUSTOM_COMMAND(OUTPUT ${_moc}
COMMAND ${QT_MOC_EXECUTABLE}
- ARGS -I ${QT_INCLUDE_DIR} ${_header} -o ${_moc}
+ ARGS ${_moc_INCS} ${_header} -o ${_moc}
DEPENDS ${_header}
)
SET(${_sources} ${${_sources}} ${_src} ${_moc} )
@@ -205,12 +249,10 @@ MACRO(KDE4_ADD_UI3_FILES _sources )
ENDFOREACH (_current_FILE)
ENDMACRO(KDE4_ADD_UI3_FILES)
-IF(UNIX)
- SET(_HACK_MOC_DEFINE -DQ_WS_X11 -DQ_OS_UNIX)
-ENDIF(UNIX)
-
MACRO(KDE4_AUTOMOC)
+ KDE4_GET_MOC_INC_DIRS(_moc_INCS)
+
SET(_matching_FILES )
FOREACH (_current_FILE ${ARGN})
@@ -239,7 +281,7 @@ MACRO(KDE4_AUTOMOC)
# MESSAGE(STATUS "----- moc: ${_moc}")
ADD_CUSTOM_COMMAND(OUTPUT ${_moc}
COMMAND ${QT_MOC_EXECUTABLE}
- ARGS ${_HACK_MOC_DEFINE} ${_header} -o ${_moc}
+ ARGS ${_moc_INCS} ${_header} -o ${_moc}
DEPENDS ${_header}
)
diff --git a/kde4/kde4uic.cmake b/kde4/kde4uic.cmake
index c51a8ae5..60fa6b9b 100644
--- a/kde4/kde4uic.cmake
+++ b/kde4/kde4uic.cmake
@@ -1,6 +1,6 @@
#using a ui3 file with uic3
-IF(KDE3)
+IF(KDE3_IMPL)
EXEC_PROGRAM(${KDE_UIC_EXECUTABLE} ARGS
-nounload -tr tr2i18n
@@ -8,19 +8,30 @@ IF(KDE3)
${KDE_UIC_FILE}
OUTPUT_VARIABLE _uic_CONTENTS
)
+ENDIF(KDE3_IMPL)
+
+
+IF(KDE3_HEADER)
+
+ EXEC_PROGRAM(${KDE_UIC_EXECUTABLE} ARGS
+ -nounload -tr tr2i18n
+ ${KDE_UIC_FILE}
+ OUTPUT_VARIABLE _uic_CONTENTS
+ )
+ SET(KDE_UIC_CPP_FILE ${KDE_UIC_H_FILE})
+ENDIF(KDE3_HEADER)
# the kde4 branch
-ELSE(KDE3)
+IF (KDE4_HEADER)
EXEC_PROGRAM(${KDE_UIC_EXECUTABLE} ARGS
-tr tr2i18n
- -L ${KDE_UIC_PLUGIN_DIR}
- -impl ${KDE_UIC_H_FILE}
${KDE_UIC_FILE}
OUTPUT_VARIABLE _uic_CONTENTS
)
-ENDIF(KDE3)
+ SET(KDE_UIC_CPP_FILE ${KDE_UIC_H_FILE})
+ENDIF (KDE4_HEADER)
#replace tr218n("") with QString::null to avoid waring from KLocale
@@ -30,6 +41,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}")
-FILE(WRITE ${KDE_UIC_CPP_FILE} "#include <kdialog.h>\n#include <klocale.h>\n\n")
-FILE(APPEND ${KDE_UIC_CPP_FILE} "${_uic_CONTENTS}")
+FILE(WRITE ${KDE_UIC_CPP_FILE} "#include <kdialog.h>\n#include <klocale.h>\n\n${_uic_CONTENTS}\n")