diff options
author | Alexey Edelev <alexey.edelev@qt.io> | 2021-05-21 10:22:04 +0200 |
---|---|---|
committer | Alexey Edelev <semlanik@gmail.com> | 2021-05-21 20:08:10 +0200 |
commit | 9e908fc57a2babb5b81ec139eca8bfbd04c966a1 (patch) | |
tree | 835680c60ade89d886cb62935ca2012ab053f888 /cmake | |
parent | 28431c02c20cc1a070ea027ae97438d066cd58ce (diff) |
Enable UNICODE for all Qt targets and Qt consumers by default
After discussion we decided to opt-out the UNICODE definintion
behavior. To disable UNICODE in user projects the
qt6_disable_unicode_defines function could be used.
Amends 5b64e5950cf984abb7d47e0802bcb4b5a21e06fa
[ChangeLog][CMake] Enables the UNICODE and _UNICODE definitions on
WIN32 platforms by default for all cmake projects to reflect the
qmake behavior. Use qt6_disable_unicode_defines function to disable
the default unicode definitions.
Fixes: QTBUG-93895
Change-Id: Id70ff7dcf8c74f660ec851f8b950e1e3b94d9fb4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 715041b663ababa8b36f90978d20bdcdd80e3117)
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/QtFlagHandlingHelpers.cmake | 9 | ||||
-rw-r--r-- | cmake/QtInternalTargets.cmake | 13 | ||||
-rw-r--r-- | cmake/QtPublicTargetsHelpers.cmake | 2 |
3 files changed, 16 insertions, 8 deletions
diff --git a/cmake/QtFlagHandlingHelpers.cmake b/cmake/QtFlagHandlingHelpers.cmake index 9af05d5907..4e9d71d6cf 100644 --- a/cmake/QtFlagHandlingHelpers.cmake +++ b/cmake/QtFlagHandlingHelpers.cmake @@ -260,6 +260,15 @@ function(qt_enable_utf8_sources target) endif() endfunction() +function(qt_internal_enable_unicode_defines) + if(WIN32) + set(no_unicode_condition + "$<NOT:$<BOOL:$<TARGET_PROPERTY:QT_NO_UNICODE_DEFINES>>>") + target_compile_definitions(Platform + INTERFACE "$<${no_unicode_condition}:UNICODE;_UNICODE>") + endif() +endfunction() + # Saves the list of known optimization flags for the current compiler in out_var. # # Mostly used for removing them before adding new ones. diff --git a/cmake/QtInternalTargets.cmake b/cmake/QtInternalTargets.cmake index b1895ddb3e..7e934f6ac8 100644 --- a/cmake/QtInternalTargets.cmake +++ b/cmake/QtInternalTargets.cmake @@ -147,14 +147,11 @@ elseif(UIKIT) target_compile_definitions(PlatformCommonInternal INTERFACE GLES_SILENCE_DEPRECATION) endif() -if(WIN32) - target_compile_definitions(PlatformCommonInternal INTERFACE "UNICODE;_UNICODE") - if(MSVC) - target_compile_definitions(PlatformCommonInternal INTERFACE - "_CRT_SECURE_NO_WARNINGS" - "$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,SHARED_LIBRARY>:_WINDLL>" - ) - endif() +if(MSVC) + target_compile_definitions(PlatformCommonInternal INTERFACE + "_CRT_SECURE_NO_WARNINGS" + "$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,SHARED_LIBRARY>:_WINDLL>" + ) endif() if(UIKIT) diff --git a/cmake/QtPublicTargetsHelpers.cmake b/cmake/QtPublicTargetsHelpers.cmake index 0a414f379a..39ba11b260 100644 --- a/cmake/QtPublicTargetsHelpers.cmake +++ b/cmake/QtPublicTargetsHelpers.cmake @@ -30,4 +30,6 @@ function(qt_internal_setup_public_platform_target) # By default enable utf8 sources for both Qt and Qt consumers. Can be opted out. qt_enable_utf8_sources(Platform) + # By default enable unicode on WIN32 platforms for both Qt and Qt consumers. Can be opted out. + qt_internal_enable_unicode_defines(Platform) endfunction() |