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 Kde-buildsystem@kde.org https://mail.kde.org/mailman/listinfo/kde-buildsystem