diff options
author | Leander Beernaert <leander.beernaert@qt.io> | 2020-02-21 16:32:13 +0100 |
---|---|---|
committer | Leander Beernaert <leander.beernaert@qt.io> | 2020-02-25 16:38:45 +0100 |
commit | 92ee6dcec0ea6fa60ac29e0e9524e25921a1be59 (patch) | |
tree | c390f2f7c821b9a75c6c9f3b0ec0eab7b0149eca /cmake | |
parent | 59d1fa25d53c8a5c6974f45284097b69b05ea0d6 (diff) |
CMake: Generate Win32 Resource Files
Add support to generate win32 resources files through CMake. The
functionality is implemented via qt6_generate_win32_rc_file() in
Qt6CoreMacros.cmake.
Currently qt_add_test(), qt_add_module() and add_qt_gui_executable()
call the above function when building on windows. The function itself
has been written as part of the public API so it can be called from
other locations if required.
Change-Id: Id5388b3bf9a2068b36780d8268306326f990778c
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/QtBuild.cmake | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index 8deb9b8cbd..90306a44c8 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -1631,6 +1631,11 @@ function(qt_add_module target) ARCHIVE_OUTPUT_DIRECTORY "${QT_BUILD_DIR}/${INSTALL_LIBDIR}" VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} + QT_TARGET_VERSION "${PROJECT_VERSION}.0" + QT_TARGET_COMPANY_NAME "The Qt Company Ltd." + QT_TARGET_DESCRIPTION "C++ Application Development Framework" + QT_TARGET_COPYRIGHT "Copyright (C) 2020 The Qt Company Ltd." + QT_TARGET_PRODUCT_NAME "Qt6" ) qt_handle_multi_config_output_dirs("${target}") @@ -1643,6 +1648,10 @@ function(qt_add_module target) OUTPUT_NAME "${INSTALL_CMAKE_NAMESPACE}${target}" ) endif() + + if (WIN32 AND BUILD_SHARED_LIBS) + qt6_generate_win32_rc_file(${target}) + endif() endif() # Module headers: @@ -2517,7 +2526,7 @@ set(__qt_add_executable_optional_args "GUI;BOOTSTRAP;NO_QT;NO_INSTALL;EXCEPTIONS" ) set(__qt_add_executable_single_args - "OUTPUT_DIRECTORY;INSTALL_DIRECTORY" + "OUTPUT_DIRECTORY;INSTALL_DIRECTORY;VERSION" ) set(__qt_add_executable_multi_args "EXE_FLAGS;${__default_private_args};${__default_public_args}" @@ -2559,6 +2568,27 @@ function(qt_add_executable name) add_executable("${name}" ${arg_EXE_FLAGS}) endif() + if (arg_VERSION) + + if(arg_VERSION MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+") + # nothing to do + elseif(arg_VERSION MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+") + set(arg_VERSION "${arg_VERSION}.0") + elseif(arg_VERSION MATCHES "[0-9]+\\.[0-9]+") + set(arg_VERSION "${arg_VERSION}.0.0") + elseif (arg_VERSION MATCHES "[0-9]+") + set(arg_VERSION "${arg_VERSION}.0.0.0") + else() + message(FATAL_ERROR "Invalid version format") + endif() + + set_target_properties(${name} PROPERTIES QT_TARGET_VERSION "${arg_VERSION}") + endif() + + if (WIN32) + qt6_generate_win32_rc_file(${name}) + endif() + qt_autogen_tools_initial_setup(${name}) qt_skip_warnings_are_errors_when_repo_unclean("${name}") @@ -2679,7 +2709,7 @@ endfunction() function(qt_add_test name) qt_parse_all_arguments(arg "qt_add_test" "RUN_SERIAL;EXCEPTIONS;GUI;QMLTEST" - "OUTPUT_DIRECTORY;WORKING_DIRECTORY;TIMEOUT" + "OUTPUT_DIRECTORY;WORKING_DIRECTORY;TIMEOUT;VERSION" "QML_IMPORTPATH;TESTDATA;${__default_private_args};${__default_public_args}" ${ARGN} ) @@ -2695,6 +2725,10 @@ function(qt_add_test name) set(gui_text "GUI") endif() + if (arg_VERSION) + set(version_arg VERSION "${arg_VERSION}") + endif() + # Handle cases where we have a qml test without source files if (arg_SOURCES) set(private_includes @@ -2707,6 +2741,7 @@ function(qt_add_test name) qt_add_executable("${name}" ${exceptions_text} ${gui_text} + ${version_arg} NO_INSTALL OUTPUT_DIRECTORY "${arg_OUTPUT_DIRECTORY}" SOURCES "${arg_SOURCES}" |