On Monday 01 December 2008 14:49:56 Matthias Kretz wrote:
> I'll come up with a patch to keep compatibility where possible but switch
> to automoc targets when possible.
Attached patch keeps compatibility AFAICS but switches to automoc-per-target
everywhere.
--
________________________________________________________
Matthias Kretz (Germany) <><
http://Vir.homelinux.org/
Index: kdesupport/automoc/Automoc4Config.cmake
===================================================================
--- kdesupport/automoc/Automoc4Config.cmake (revision 886850)
+++ kdesupport/automoc/Automoc4Config.cmake (working copy)
@@ -134,17 +134,20 @@
configure_file(${_AUTOMOC4_CURRENT_DIR}/automoc4.files.in ${_automoc_dotFiles})
add_custom_target(${_target_NAME}
- ALL
COMMAND ${AUTOMOC4_EXECUTABLE}
${_automoc_source}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${QT_MOC_EXECUTABLE}
${CMAKE_COMMAND}
- DEPENDS ${_automoc_dotFiles} ${_AUTOMOC4_EXECUTABLE_DEP} ${_moc_headers} ${${_SRCS}}
COMMENT ""
VERBATIM
)
+
+ if(_AUTOMOC4_EXECUTABLE_DEP)
+ add_dependencies(${_target_NAME} ${_AUTOMOC4_EXECUTABLE_DEP})
+ endif(_AUTOMOC4_EXECUTABLE_DEP)
+
set_source_files_properties(${_automoc_source} PROPERTIES GENERATED TRUE)
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${_automoc_source})
set(${_SRCS} ${_automoc_source} ${${_SRCS}})
@@ -163,15 +166,9 @@
endif(_index GREATER -1)
endforeach(_argName)
- if(MSVC)
- add_automoc4_target("${_target_NAME}_automoc" _SRCS)
- else(MSVC)
- automoc4(${_target_NAME} _SRCS)
- endif(MSVC)
+ add_automoc4_target("${_target_NAME}_automoc" _SRCS)
add_executable(${_target_NAME} ${_add_executable_param} ${_SRCS})
- if(MSVC)
- add_dependencies(${_target_NAME} "${_target_NAME}_automoc")
- endif(MSVC)
+ add_dependencies(${_target_NAME} "${_target_NAME}_automoc")
endmacro(AUTOMOC4_ADD_EXECUTABLE)
macro(AUTOMOC4_ADD_LIBRARY _target_NAME)
@@ -186,13 +183,7 @@
endif(_index GREATER -1)
endforeach(_argName)
- if(MSVC)
- add_automoc4_target("${_target_NAME}_automoc" _SRCS)
- else(MSVC)
- automoc4(${_target_NAME} _SRCS)
- endif(MSVC)
+ add_automoc4_target("${_target_NAME}_automoc" _SRCS)
add_library(${_target_NAME} ${_add_executable_param} ${_SRCS})
- if(MSVC)
- add_dependencies(${_target_NAME} "${_target_NAME}_automoc")
- endif(MSVC)
+ add_dependencies(${_target_NAME} "${_target_NAME}_automoc")
endmacro(AUTOMOC4_ADD_LIBRARY)
Index: kdesupport/automoc/Automoc4Version.cmake
===================================================================
--- kdesupport/automoc/Automoc4Version.cmake (revision 886850)
+++ kdesupport/automoc/Automoc4Version.cmake (working copy)
@@ -1,7 +1,7 @@
# set the current version number
set(AUTOMOC4_VERSION_MAJOR "0")
set(AUTOMOC4_VERSION_MINOR "9")
-set(AUTOMOC4_VERSION_PATCH "87")
+set(AUTOMOC4_VERSION_PATCH "88")
set(AUTOMOC4_VERSION "${AUTOMOC4_VERSION_MAJOR}.${AUTOMOC4_VERSION_MINOR}.${AUTOMOC4_VERSION_PATCH}")
Index: kdelibs/cmake/modules/FindKDE4Internal.cmake
===================================================================
--- kdelibs/cmake/modules/FindKDE4Internal.cmake (revision 891266)
+++ kdelibs/cmake/modules/FindKDE4Internal.cmake (working copy)
@@ -291,6 +291,7 @@
set(AUTOMOC4_VERSION "0.9.83")
endif (NOT AUTOMOC4_VERSION)
macro_ensure_version("0.9.87" "${AUTOMOC4_VERSION}" _automoc4_version_ok)
+macro_ensure_version("0.9.88" "${AUTOMOC4_VERSION}" _automoc4_version_better)
# for compatibility with KDE 4.0.x
set(KDE4_AUTOMOC_EXECUTABLE "${AUTOMOC4_EXECUTABLE}" )
@@ -314,17 +315,19 @@
return()
endif(NOT QT4_FOUND)
-if(NOT AUTOMOC4_FOUND OR NOT _automoc4_version_ok)
- if(NOT AUTOMOC4_FOUND)
- message(${_REQ_STRING_KDE4_MESSAGE} "KDE4 not found, because Automoc4 not found.")
- return()
- else(NOT AUTOMOC4_FOUND)
+if(NOT AUTOMOC4_FOUND)
+ message(${_REQ_STRING_KDE4_MESSAGE} "KDE4 not found, because Automoc4 not found.")
+ return()
+else(NOT AUTOMOC4_FOUND)
+ if(NOT _automoc4_version_better)
if(NOT _automoc4_version_ok)
message(${_REQ_STRING_KDE4_MESSAGE} "Your version of automoc4 is too old. You have ${AUTOMOC4_VERSION}, you need at least 0.9.87")
return()
+ else(NOT _automoc4_version_ok)
+ message(STATUS "Your version of automoc4 is old. You have ${AUTOMOC4_VERSION}, it is recommended to upgrade to 0.9.88")
endif(NOT _automoc4_version_ok)
- endif(NOT AUTOMOC4_FOUND)
-endif(NOT AUTOMOC4_FOUND OR NOT _automoc4_version_ok)
+ endif(NOT _automoc4_version_better)
+endif(NOT AUTOMOC4_FOUND)
# now we are sure we have everything we need
Index: kdelibs/cmake/modules/KDE4Macros.cmake
===================================================================
--- kdelibs/cmake/modules/KDE4Macros.cmake (revision 891266)
+++ kdelibs/cmake/modules/KDE4Macros.cmake (working copy)
@@ -558,20 +558,14 @@
endif (${_with_PREFIX} STREQUAL "WITH_PREFIX")
set(_SRCS ${_first_SRC} ${ARGN})
- if(MSVC)
- add_automoc4_target("${_target_NAME}_automoc" _SRCS)
- else(MSVC)
- automoc4(${_target_NAME} _SRCS)
- endif(MSVC)
+ add_automoc4_target("${_target_NAME}_automoc" _SRCS)
if (KDE4_ENABLE_FINAL)
kde4_create_final_files(${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_final_cpp.cpp _separate_files ${_SRCS})
add_library(${_target_NAME} MODULE ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_final_cpp.cpp ${_separate_files})
else (KDE4_ENABLE_FINAL)
add_library(${_target_NAME} MODULE ${_SRCS})
endif (KDE4_ENABLE_FINAL)
- if(MSVC)
- add_dependencies(${_target_NAME} "${_target_NAME}_automoc")
- endif(MSVC)
+ add_dependencies(${_target_NAME} "${_target_NAME}_automoc")
if (_first_SRC)
set_target_properties(${_target_NAME} PROPERTIES PREFIX "")
@@ -696,7 +690,7 @@
target_link_libraries(${_target_NAME} ${QT_QTMAIN_LIBRARY} kdeinit_${_target_NAME})
else(WIN32)
- kde4_handle_automoc(kdeinit_${_target_NAME} _SRCS)
+ add_automoc4_target("kdeinit_${_target_NAME}_automoc" _SRCS)
if (KDE4_ENABLE_FINAL)
kde4_create_final_files(${CMAKE_CURRENT_BINARY_DIR}/kdeinit_${_target_NAME}_final_cpp.cpp _separate_files ${_SRCS})
@@ -705,6 +699,7 @@
else (KDE4_ENABLE_FINAL)
add_library(kdeinit_${_target_NAME} SHARED ${_SRCS})
endif (KDE4_ENABLE_FINAL)
+ add_dependencies("kdeinit_${_target_NAME}" "kdeinit_${_target_NAME}_automoc")
kde4_handle_rpath_for_library(kdeinit_${_target_NAME})
set_target_properties(kdeinit_${_target_NAME} PROPERTIES OUTPUT_NAME kdeinit4_${_target_NAME})
@@ -825,20 +820,14 @@
set(_add_executable_param ${_add_executable_param} EXCLUDE_FROM_ALL)
endif (_test AND NOT KDE4_BUILD_TESTS)
- if(MSVC)
- add_automoc4_target("${_target_NAME}_automoc" _SRCS)
- else(MSVC)
- automoc4(${_target_NAME} _SRCS)
- endif(MSVC)
+ add_automoc4_target("${_target_NAME}_automoc" _SRCS)
if (KDE4_ENABLE_FINAL)
kde4_create_final_files(${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_final_cpp.cpp _separate_files ${_SRCS})
add_executable(${_target_NAME} ${_add_executable_param} ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_final_cpp.cpp ${_separate_files})
else (KDE4_ENABLE_FINAL)
add_executable(${_target_NAME} ${_add_executable_param} ${_SRCS})
endif (KDE4_ENABLE_FINAL)
- if(MSVC)
- add_dependencies(${_target_NAME} "${_target_NAME}_automoc")
- endif(MSVC)
+ add_dependencies(${_target_NAME} "${_target_NAME}_automoc")
if (_test)
set_target_properties(${_target_NAME} PROPERTIES COMPILE_FLAGS -DKDESRCDIR="\\"${CMAKE_CURRENT_SOURCE_DIR}\\"")
@@ -873,20 +862,14 @@
endif (${_lib_TYPE} STREQUAL "MODULE")
set(_SRCS ${_first_SRC} ${ARGN})
- if(MSVC)
- add_automoc4_target("${_target_NAME}_automoc" _SRCS)
- else(MSVC)
- automoc4(${_target_NAME} _SRCS)
- endif(MSVC)
+ add_automoc4_target("${_target_NAME}_automoc" _SRCS)
if (KDE4_ENABLE_FINAL)
kde4_create_final_files(${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_final_cpp.cpp _separate_files ${_SRCS})
add_library(${_target_NAME} ${_add_lib_param} ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_final_cpp.cpp ${_separate_files})
else (KDE4_ENABLE_FINAL)
add_library(${_target_NAME} ${_add_lib_param} ${_SRCS})
endif (KDE4_ENABLE_FINAL)
- if(MSVC)
- add_dependencies(${_target_NAME} "${_target_NAME}_automoc")
- endif(MSVC)
+ add_dependencies(${_target_NAME} "${_target_NAME}_automoc")
kde4_handle_rpath_for_library(${_target_NAME})
_______________________________________________
Kde-buildsystem mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kde-buildsystem