CMake: Port the 'debug_and_release' feature

This feature is read-only. It's controlled by the multi-config feature
of CMake. It mainly exists for the qmake support.

Change-Id: I322459598fe92568eda4d42319ded444537e95d4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
Joerg Bornemann 2020-02-26 13:23:05 +01:00
parent 20410cdc11
commit 46a2366d12
3 changed files with 13 additions and 1 deletions

View File

@ -13,6 +13,9 @@ endif()
# Reset content of extra build internal vars for each inclusion of QtSetup. # Reset content of extra build internal vars for each inclusion of QtSetup.
unset(QT_EXTRA_BUILD_INTERNALS_VARS) unset(QT_EXTRA_BUILD_INTERNALS_VARS)
# Save the global property in a variable to make it available to feature conditions.
get_property(QT_GENERATOR_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
message(STATUS "Setting build type to '${_default_build_type}' as none was specified.") message(STATUS "Setting build type to '${_default_build_type}' as none was specified.")
set(CMAKE_BUILD_TYPE "${_default_build_type}" CACHE STRING "Choose the type of build." FORCE) set(CMAKE_BUILD_TYPE "${_default_build_type}" CACHE STRING "Choose the type of build." FORCE)

View File

@ -356,6 +356,12 @@ qt_feature("debug"
AUTODETECT QT_FEATURE_developer_build OR ( WIN32 AND NOT GCC ) OR APPLE AUTODETECT QT_FEATURE_developer_build OR ( WIN32 AND NOT GCC ) OR APPLE
CONDITION Debug STREQUAL CMAKE_BUILD_TYPE OR Debug IN_LIST CMAKE_CONFIGURATION_TYPES CONDITION Debug STREQUAL CMAKE_BUILD_TYPE OR Debug IN_LIST CMAKE_CONFIGURATION_TYPES
) )
qt_feature("debug_and_release" PUBLIC
LABEL "Compile libs in debug and release mode"
AUTODETECT 1
CONDITION QT_GENERATOR_IS_MULTI_CONFIG
)
qt_feature_config("debug_and_release" QMAKE_PUBLIC_QT_CONFIG)
qt_feature("appstore-compliant" PUBLIC qt_feature("appstore-compliant" PUBLIC
LABEL "App store compliance" LABEL "App store compliance"
PURPOSE "Disables code that is not allowed in platform app stores" PURPOSE "Disables code that is not allowed in platform app stores"

View File

@ -700,7 +700,10 @@ def parseFeature(ctx, feature, data, cm_fh):
"ccache": None, "ccache": None,
"compiler-flags": None, "compiler-flags": None,
"cross_compile": None, "cross_compile": None,
"debug_and_release": None, "debug_and_release": {
"autoDetect": "1", # Setting this to None has weird effects...
"condition": "QT_GENERATOR_IS_MULTI_CONFIG"
},
"debug": {"condition": "Debug STREQUAL CMAKE_BUILD_TYPE OR Debug IN_LIST CMAKE_CONFIGURATION_TYPES"}, "debug": {"condition": "Debug STREQUAL CMAKE_BUILD_TYPE OR Debug IN_LIST CMAKE_CONFIGURATION_TYPES"},
"dlopen": {"condition": "UNIX"}, "dlopen": {"condition": "UNIX"},
"doubleconversion": None, "doubleconversion": None,