From a8e5e5c552e1d55a23ae03d30263a25fa56a33b2 Mon Sep 17 00:00:00 2001 From: Ralf Habacker Date: Tue, 15 Jan 2019 14:41:14 +0100 Subject: [PATCH] Add cmake macros add_executable_version_info and add_library_version_info This helps to reduce duplicated code. Signed-off-by: Ralf Habacker --- bus/CMakeLists.txt | 12 ++---------- cmake/modules/Macros.cmake | 18 ++++++++++++++++++ dbus/CMakeLists.txt | 6 +----- tools/CMakeLists.txt | 31 +++++-------------------------- 4 files changed, 26 insertions(+), 41 deletions(-) diff --git a/bus/CMakeLists.txt b/bus/CMakeLists.txt index f901b7e0a..cefb7c48a 100644 --- a/bus/CMakeLists.txt +++ b/bus/CMakeLists.txt @@ -90,11 +90,7 @@ include_directories( ) if(WIN32) - set(DBUS_VER_INTERNAL_NAME "dbus-daemon") - set(DBUS_VER_ORIGINAL_NAME "${DBUS_VER_INTERNAL_NAME}${CMAKE_EXECUTABLE_SUFFIX}") - set(DBUS_VER_FILE_TYPE "VFT_APP") - configure_file(../dbus/versioninfo.rc.in ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) - list(APPEND BUS_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) + add_executable_version_info(BUS_SOURCES "dbus-daemon") endif() add_library(dbus-daemon-internal STATIC ${BUS_SOURCES}) @@ -127,11 +123,7 @@ if (DBUS_SERVICE) # ${BUS_SOURCES} ) - set(DBUS_VER_INTERNAL_NAME "dbus-service") - set(DBUS_VER_ORIGINAL_NAME "${DBUS_VER_INTERNAL_NAME}${CMAKE_EXECUTABLE_SUFFIX}") - set(DBUS_VER_FILE_TYPE "VFT_APP") - configure_file(../dbus/versioninfo.rc.in ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) - list(APPEND dbus_service_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) + add_executable_version_info(dbus_service_SOURCES "dbus-service") add_executable(dbus-service ${dbus_service_SOURCES} ) target_link_libraries(dbus-service ${DBUS_INTERNAL_LIBRARIES} ${EXPAT_LIBRARIES}) set_target_properties(dbus-service PROPERTIES COMPILE_FLAGS ${DBUS_INTERNAL_CLIENT_DEFINITIONS}) diff --git a/cmake/modules/Macros.cmake b/cmake/modules/Macros.cmake index f3806e05d..1d613067f 100644 --- a/cmake/modules/Macros.cmake +++ b/cmake/modules/Macros.cmake @@ -182,3 +182,21 @@ macro(add_uac_manifest _sources) endif() list(APPEND ${_sources} ${outfile}) endmacro() + +macro(add_executable_version_info _sources _name) + set(DBUS_VER_INTERNAL_NAME "${_name}") + set(DBUS_VER_ORIGINAL_NAME "${DBUS_VER_INTERNAL_NAME}${CMAKE_EXECUTABLE_SUFFIX}") + set(DBUS_VER_FILE_TYPE "VFT_APP") + configure_file(${CMAKE_SOURCE_DIR}/dbus/versioninfo.rc.in ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) + # version info and uac manifest can be combined in a binary because they use different resource types + list(APPEND ${_sources} ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) +endmacro() + +macro(add_library_version_info _sources _name) + set(DBUS_VER_INTERNAL_NAME "${_name}") + set(DBUS_VER_ORIGINAL_NAME "${DBUS_VER_INTERNAL_NAME}}${CMAKE_SHARED_LIBRARY_SUFFIX}") + set(DBUS_VER_FILE_TYPE "VFT_DLL") + configure_file(${CMAKE_SOURCE_DIR}/dbus/versioninfo.rc.in ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) + # version info and uac manifest can be combined in a binary because they use different resource types + list(APPEND ${_sources} ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) +endmacro() diff --git a/dbus/CMakeLists.txt b/dbus/CMakeLists.txt index c9789718d..a91f08539 100644 --- a/dbus/CMakeLists.txt +++ b/dbus/CMakeLists.txt @@ -236,11 +236,7 @@ if(DEFINED DBUS_LIBRARY_REVISION) endif() if(WIN32) - set(DBUS_VER_INTERNAL_NAME "${CMAKE_SHARED_LIBRARY_PREFIX}dbus-1-${DBUS_LIBRARY_MAJOR}") - set(DBUS_VER_ORIGINAL_NAME "${DBUS_VER_INTERNAL_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}") - set(DBUS_VER_FILE_TYPE "VFT_DLL") - configure_file(versioninfo.rc.in ${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc) - list(APPEND libdbus_SOURCES versioninfo.rc) + add_library_version_info(libdbus_SOURCES "${CMAKE_SHARED_LIBRARY_PREFIX}dbus-1-${DBUS_LIBRARY_MAJOR}") endif() if(MSVC_IDE) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index a4adee3de..a8fe96c85 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -59,11 +59,7 @@ set (dbus_run_session_SOURCES ) if(WIN32) - set(DBUS_VER_INTERNAL_NAME "dbus-send") - set(DBUS_VER_ORIGINAL_NAME "${DBUS_VER_INTERNAL_NAME}${CMAKE_EXECUTABLE_SUFFIX}") - set(DBUS_VER_FILE_TYPE "VFT_APP") - configure_file(../dbus/versioninfo.rc.in ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) - list(APPEND dbus_send_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) + add_executable_version_info(dbus_send_SOURCES "dbus-send") endif() add_executable(dbus-send ${dbus_send_SOURCES}) @@ -71,11 +67,7 @@ target_link_libraries(dbus-send ${DBUS_LIBRARIES}) install(TARGETS dbus-send ${INSTALL_TARGETS_DEFAULT_ARGS}) if(WIN32) - set(DBUS_VER_INTERNAL_NAME "dbus-test-tool") - set(DBUS_VER_ORIGINAL_NAME "${DBUS_VER_INTERNAL_NAME}${CMAKE_EXECUTABLE_SUFFIX}") - set(DBUS_VER_FILE_TYPE "VFT_APP") - configure_file(../dbus/versioninfo.rc.in ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) - list(APPEND dbus_test_tool_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) + add_executable_version_info(dbus_test_tool_SOURCES "dbus-test-tool") endif() add_executable(dbus-test-tool ${dbus_test_tool_SOURCES}) @@ -83,12 +75,7 @@ target_link_libraries(dbus-test-tool ${DBUS_LIBRARIES}) install(TARGETS dbus-test-tool ${INSTALL_TARGETS_DEFAULT_ARGS}) if(WIN32) - # version info and uac manifest can be combined in a binary because they use different resource types - set(DBUS_VER_INTERNAL_NAME "dbus-update-activation-environment") - set(DBUS_VER_ORIGINAL_NAME "${DBUS_VER_INTERNAL_NAME}${CMAKE_EXECUTABLE_SUFFIX}") - set(DBUS_VER_FILE_TYPE "VFT_APP") - configure_file(../dbus/versioninfo.rc.in ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) - list(APPEND dbus_update_activation_environment_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) + add_executable_version_info(dbus_update_activation_environment_SOURCES "dbus-update-activation-environment") endif() if(WIN32 AND NOT MSVC) add_uac_manifest(dbus_update_activation_environment_SOURCES) @@ -98,11 +85,7 @@ target_link_libraries(dbus-update-activation-environment ${DBUS_LIBRARIES}) install(TARGETS dbus-update-activation-environment ${INSTALL_TARGETS_DEFAULT_ARGS}) if(WIN32) - set(DBUS_VER_INTERNAL_NAME "dbus-launch") - set(DBUS_VER_ORIGINAL_NAME "${DBUS_VER_INTERNAL_NAME}${CMAKE_EXECUTABLE_SUFFIX}") - set(DBUS_VER_FILE_TYPE "VFT_APP") - configure_file(../dbus/versioninfo.rc.in ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) - list(APPEND dbus_launch_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) + add_executable_version_info(dbus_launch_SOURCES "dbus-launch") endif() add_executable(dbus-launch ${dbus_launch_SOURCES}) @@ -113,11 +96,7 @@ endif (DBUS_BUILD_X11) install(TARGETS dbus-launch ${INSTALL_TARGETS_DEFAULT_ARGS}) if(WIN32) - set(DBUS_VER_INTERNAL_NAME "dbus-monitor") - set(DBUS_VER_ORIGINAL_NAME "${DBUS_VER_INTERNAL_NAME}${CMAKE_EXECUTABLE_SUFFIX}") - set(DBUS_VER_FILE_TYPE "VFT_APP") - configure_file(../dbus/versioninfo.rc.in ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) - list(APPEND dbus_monitor_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/versioninfo-${DBUS_VER_INTERNAL_NAME}.rc) + add_executable_version_info(dbus_launch_SOURCES "dbus-monitor") endif() add_executable(dbus-monitor ${dbus_monitor_SOURCES}) -- 2.47.3