From: Ivailo Monev Date: Tue, 11 Oct 2016 23:16:20 +0000 (+0000) Subject: replace the common resources handling with CMake's OUTPUT property X-Git-Tag: 4.12.0~6626 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=b9d319f38309cad66c7e496314863544c63249a3;p=kde%2FKatie.git replace the common resources handling with CMake's OUTPUT property it automatically sets the GENERATED property for the output file Signed-off-by: Ivailo Monev --- diff --git a/cmake/modules/KatieBuildMacros.cmake b/cmake/modules/KatieBuildMacros.cmake index 3a2838d1d..4022dcad3 100644 --- a/cmake/modules/KatieBuildMacros.cmake +++ b/cmake/modules/KatieBuildMacros.cmake @@ -126,38 +126,30 @@ function(KATIE_SETUP_TARGET FORTARGET) get_filename_component(rscext ${resource} EXT) get_filename_component(rscname ${resource} NAME_WE) get_filename_component(rscpath ${resource} PATH) - get_source_file_property(skip ${resource} SKIP_RESOURCE) string(REPLACE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" rscpath "${rscpath}") if("${rscext}" STREQUAL ".ui") set(rscout "${rscpath}/ui_${rscname}.h") set(targetresources ${targetresources} ${rscout}) - if(NOT skip) - make_directory(${rscpath}) - add_custom_command( - OUTPUT "${rscout}" - COMMAND "${KATIE_UIC}" "${resource}" -o "${rscout}" - ) - endif() + make_directory(${rscpath}) + add_custom_command( + OUTPUT "${rscout}" + COMMAND "${KATIE_UIC}" "${resource}" -o "${rscout}" + OUTPUT "${rscout}" + ) elseif("${rscext}" STREQUAL ".qrc") set(rscout "${rscpath}/qrc_${rscname}.cpp") set(targetresources ${targetresources} ${rscout}) - if(NOT skip) - make_directory(${rscpath}) - add_custom_command( - OUTPUT "${rscout}" - COMMAND "${KATIE_RCC}" "${resource}" -o "${rscout}" -name "${rscname}" - ) - endif() + make_directory(${rscpath}) + add_custom_command( + OUTPUT "${rscout}" + COMMAND "${KATIE_RCC}" "${resource}" -o "${rscout}" -name "${rscname}" + OUTPUT "${rscout}" + ) elseif("${rscext}" MATCHES "(.h|.cpp|.mm)") file(READ "${resource}" rsccontent) - if(NOT "${rsccontent}" MATCHES "(Q_OBJECT|Q_OBJECT_FAKE|Q_GADGET)") - set(skip TRUE) - else() + if("${rsccontent}" MATCHES "(Q_OBJECT|Q_OBJECT_FAKE|Q_GADGET)") set(rscout "${rscpath}/moc_${rscname}${rscext}") set(targetresources ${targetresources} ${rscout}) - endif() - - if(NOT skip) get_directory_property(dirdefs COMPILE_DEFINITIONS) get_directory_property(dirincs INCLUDE_DIRECTORIES) set(mocargs) @@ -172,9 +164,8 @@ function(KATIE_SETUP_TARGET FORTARGET) add_custom_command( OUTPUT "${rscout}" COMMAND "${KATIE_MOC}" -nw "${resource}" -o "${rscout}" ${mocargs} + OUTPUT "${rscout}" ) - # common sources can cause multiple rules on the same file - set_source_files_properties(${resource} PROPERTIES SKIP_RESOURCE TRUE) endif() endif() endforeach() diff --git a/cmake/modules/KatieMacros.cmake b/cmake/modules/KatieMacros.cmake index f4776da2d..ad7b99515 100644 --- a/cmake/modules/KatieMacros.cmake +++ b/cmake/modules/KatieMacros.cmake @@ -16,6 +16,7 @@ macro(KATIE_RESOURCES RESOURCES) add_custom_command( OUTPUT ${rscout} COMMAND ${KATIE_UIC} "${resource}" -o "${rscout}" + OUTPUT "${rscout}" MAIN_DEPENDENCY ${resource} ) elseif("${rscext}" STREQUAL ".qrc") @@ -24,6 +25,7 @@ macro(KATIE_RESOURCES RESOURCES) add_custom_command( OUTPUT ${rscout} COMMAND ${KATIE_RCC} "${resource}" -o "${rscout}" -name "${rscname}" + OUTPUT "${rscout}" MAIN_DEPENDENCY ${resource} ) set_property(SOURCE ${resource} APPEND PROPERTY OBJECT_DEPENDS ${rscout}) @@ -46,10 +48,9 @@ macro(KATIE_RESOURCES RESOURCES) add_custom_command( OUTPUT ${rscout} COMMAND ${KATIE_MOC} -nw "${resource}" -o "${rscout}" ${mocargs} + OUTPUT "${rscout}" ) set_property(SOURCE ${resource} APPEND PROPERTY OBJECT_DEPENDS ${rscout}) - # XXX: this can be troublesome but common sources can cause multiple rules on the same file - set_source_files_properties(${resource} PROPERTIES SKIP_RESOURCE TRUE) endif() endif() endif() @@ -92,8 +93,8 @@ macro(KATIE_TRANSLATIONS TRANSLATIONS) add_custom_target( ${trname}_translation ALL COMMAND "${KATIE_LRELEASE}" "${translation}" -qm "${trout}" + OUTPUT "${trout}" ) - set_source_files_properties(${trout} PROPERTIES GENERATED TRUE) install(FILES ${trout} DESTINATION ${KATIE_TRANSLATIONS_RELATIVE}) endforeach() endmacro() diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt index df6f4398b..73b5aa117 100644 --- a/src/plugins/CMakeLists.txt +++ b/src/plugins/CMakeLists.txt @@ -43,6 +43,19 @@ if(WITH_ACCESSIBILITY) endif() +set(SHAREDBEARER_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/bearer/qnetworksession_impl.cpp +) +set(SHAREDBEARER_HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/bearer/qnetworksession_impl.h + ${CMAKE_CURRENT_SOURCE_DIR}/bearer/qbearerengine_impl.h +) +katie_setup_target(sharedbearer ${SHAREDBEARER_SOURCES} ${SHAREDBEARER_HEADERS}) +add_library(sharedbearer OBJECT ${sharedbearer_SOURCES}) +target_include_directories(sharedbearer PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/bearer +) + if(KATIE_PLATFORM MATCHES "(linux|freebsd|openbsd)") include(bearer/generic/generic.cmake) if(WITH_DBUS AND DBUS_FOUND) diff --git a/src/plugins/bearer/connman/connman.cmake b/src/plugins/bearer/connman/connman.cmake index 17263c8ef..8e03d5858 100644 --- a/src/plugins/bearer/connman/connman.cmake +++ b/src/plugins/bearer/connman/connman.cmake @@ -7,8 +7,6 @@ set(QTCONNMANBEARERPLUGIN_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/bearer/connman/qconnmanservice_linux_p.h ${CMAKE_CURRENT_SOURCE_DIR}/bearer/connman/qofonoservice_linux_p.h ${CMAKE_CURRENT_SOURCE_DIR}/bearer/connman/qconnmanengine.h - ${CMAKE_CURRENT_SOURCE_DIR}/bearer/qnetworksession_impl.h - ${CMAKE_CURRENT_SOURCE_DIR}/bearer/qbearerengine_impl.h ) set(QTCONNMANBEARERPLUGIN_SOURCES @@ -16,12 +14,13 @@ set(QTCONNMANBEARERPLUGIN_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/bearer/connman/qconnmanservice_linux.cpp ${CMAKE_CURRENT_SOURCE_DIR}/bearer/connman/qofonoservice_linux.cpp ${CMAKE_CURRENT_SOURCE_DIR}/bearer/connman/qconnmanengine.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/bearer/qnetworksession_impl.cpp ) katie_setup_target(qconnmanbearerplugin ${QTCONNMANBEARERPLUGIN_SOURCES} ${QTCONNMANBEARERPLUGIN_HEADERS}) -add_library(qconnmanbearerplugin MODULE ${qconnmanbearerplugin_SOURCES}) +add_library(qconnmanbearerplugin MODULE ${qconnmanbearerplugin_SOURCES} + $ +) target_link_libraries(qconnmanbearerplugin KtCore KtNetwork KtDBus) set_target_properties(qconnmanbearerplugin PROPERTIES OUTPUT_NAME qconnmanbearer) target_include_directories(qconnmanbearerplugin PRIVATE @@ -29,6 +28,8 @@ target_include_directories(qconnmanbearerplugin PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/bearer ) +katie_setup_object(qconnmanbearerplugin sharedbearer) + install( TARGETS qconnmanbearerplugin DESTINATION ${KATIE_PLUGINS_RELATIVE}/bearer diff --git a/src/plugins/bearer/generic/generic.cmake b/src/plugins/bearer/generic/generic.cmake index 1e7d29c24..89cd276f4 100644 --- a/src/plugins/bearer/generic/generic.cmake +++ b/src/plugins/bearer/generic/generic.cmake @@ -5,22 +5,23 @@ include_directories( set(QGENERICBEARERPLUGIN_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/bearer/generic/qgenericengine.h - ${CMAKE_CURRENT_SOURCE_DIR}/bearer/qnetworksession_impl.h - ${CMAKE_CURRENT_SOURCE_DIR}/bearer/qbearerengine_impl.h ) set(QGENERICBEARERPLUGIN_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/bearer/generic/qgenericmain.cpp ${CMAKE_CURRENT_SOURCE_DIR}/bearer/generic/qgenericengine.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/bearer/qnetworksession_impl.cpp ) katie_setup_target(qgenericbearerplugin ${QGENERICBEARERPLUGIN_SOURCES} ${QGENERICBEARERPLUGIN_HEADERS}) -add_library(qgenericbearerplugin MODULE ${qgenericbearerplugin_SOURCES}) +add_library(qgenericbearerplugin MODULE ${qgenericbearerplugin_SOURCES} + $ +) target_link_libraries(qgenericbearerplugin KtCore KtNetwork) set_target_properties(qgenericbearerplugin PROPERTIES OUTPUT_NAME qgenericbearer) +katie_setup_object(qgenericbearerplugin sharedbearer) + install( TARGETS qgenericbearerplugin DESTINATION ${KATIE_PLUGINS_RELATIVE}/bearer diff --git a/src/plugins/bearer/networkmanager/networkmanager.cmake b/src/plugins/bearer/networkmanager/networkmanager.cmake index 111c3fad2..f9f66b563 100644 --- a/src/plugins/bearer/networkmanager/networkmanager.cmake +++ b/src/plugins/bearer/networkmanager/networkmanager.cmake @@ -6,8 +6,6 @@ set(QNMBEARERPLUGIN_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/bearer/networkmanager/qnmdbushelper.h ${CMAKE_CURRENT_SOURCE_DIR}/bearer/networkmanager/qnetworkmanagerservice.h ${CMAKE_CURRENT_SOURCE_DIR}/bearer/networkmanager/qnetworkmanagerengine.h - ${CMAKE_CURRENT_SOURCE_DIR}/bearer/qnetworksession_impl.h - ${CMAKE_CURRENT_SOURCE_DIR}/bearer/qbearerengine_impl.h ) set(QNMBEARERPLUGIN_SOURCES @@ -15,15 +13,18 @@ set(QNMBEARERPLUGIN_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/bearer/networkmanager/qnmdbushelper.cpp ${CMAKE_CURRENT_SOURCE_DIR}/bearer/networkmanager/qnetworkmanagerservice.cpp ${CMAKE_CURRENT_SOURCE_DIR}/bearer/networkmanager/qnetworkmanagerengine.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/bearer/qnetworksession_impl.cpp ) katie_setup_target(qnmbearerplugin ${QNMBEARERPLUGIN_SOURCES} ${QNMBEARERPLUGIN_HEADERS}) -add_library(qnmbearerplugin MODULE ${qnmbearerplugin_SOURCES}) +add_library(qnmbearerplugin MODULE ${qnmbearerplugin_SOURCES} + $ +) target_link_libraries(qnmbearerplugin KtCore KtNetwork KtDBus) set_target_properties(qnmbearerplugin PROPERTIES OUTPUT_NAME qnmbearer) +katie_setup_object(qnmbearerplugin sharedbearer) + install( TARGETS qnmbearerplugin DESTINATION ${KATIE_PLUGINS_RELATIVE}/bearer