diff options
Diffstat (limited to 'cmake')
| -rw-r--r-- | cmake/QtFeature.cmake | 24 | ||||
| -rw-r--r-- | cmake/QtPlatformSupport.cmake | 187 | ||||
| -rw-r--r-- | cmake/QtProcessConfigureArgs.cmake | 1 | ||||
| -rw-r--r-- | cmake/QtPublicCMakeHelpers.cmake | 8 |
4 files changed, 171 insertions, 49 deletions
diff --git a/cmake/QtFeature.cmake b/cmake/QtFeature.cmake index d8f031f5b27..6b218a8925a 100644 --- a/cmake/QtFeature.cmake +++ b/cmake/QtFeature.cmake @@ -595,7 +595,11 @@ function(_qt_feature_evaluate_alias out_var alias) set(not_kw "NOT") endif() # Evaluate the value and return it - qt_set01(${out_var} ${not_kw} FEATURE_${alias}) + if(${not_kw} FEATURE_${alias}) + set(${out_var} 1) + else() + set(${out_var} 0) + endif() set(${out_var} "${${out_var}}" PARENT_SCOPE) # Also set `not_kw` since it would be reused by the caller set(not_kw "${not_kw}" PARENT_SCOPE) @@ -607,7 +611,11 @@ function(_qt_feature_check_feature_alias feature) if(DEFINED "FEATURE_${feature}") # The main feature was already defined, use the current value. # Just check if the other aliases have agreeing values. - qt_set01(expected_value FEATURE_${feature}) + if(FEATURE_${feature}) + set(expected_value 1) + else() + set(expected_value 0) + endif() unset(alias_value) foreach(alias IN LISTS _QT_FEATURE_ALIASES_${feature}) _qt_feature_evaluate_alias(alias_value ${alias}) @@ -676,7 +684,11 @@ function(_qt_feature_check_cache_alias feature) # Check if the feature is set by another alias unset(expected_value) _qt_feature_evaluate_alias(expected_value "${feature}") - qt_set01(cache_sanitized ${arg_ALIAS_OF_CACHE}) + if(${arg_ALIAS_OF_CACHE}) + set(cache_sanitized 1) + else() + set(cache_sanitized 0) + endif() if(NOT DEFINED expected_value) # If nothing else set the alias value, use the primary cache value set("FEATURE_${feature}" "${${arg_ALIAS_OF_CACHE}}" PARENT_SCOPE) @@ -707,7 +719,11 @@ function(_qt_feature_save_alias feature) if(arg_ALIAS_NEGATE) set(not_kw "NOT") endif() - qt_set01(value ${not_kw} FEATURE_${feature}) + if(${not_kw} FEATURE_${feature}) + set(value 1) + else() + set(value 0) + endif() qt_evaluate_to_boolean(value) # Set the values based on the main feature's value set(FEATURE_${alias} ${value} CACHE BOOL diff --git a/cmake/QtPlatformSupport.cmake b/cmake/QtPlatformSupport.cmake index 9f8498e42c8..071711a5bd5 100644 --- a/cmake/QtPlatformSupport.cmake +++ b/cmake/QtPlatformSupport.cmake @@ -1,46 +1,161 @@ # Copyright (C) 2022 The Qt Company Ltd. # SPDX-License-Identifier: BSD-3-Clause -function(qt_set01 result) - if (${ARGN}) - set("${result}" 1 PARENT_SCOPE) - else() - set("${result}" 0 PARENT_SCOPE) - endif() -endfunction() +if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + set(LINUX 1) +else() + set(LINUX 0) +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "HPUX") + set(HPUX 1) +else() + set(HPUX 0) +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "Android") + set(ANDROID 1) +else() + set(ANDROID 0) +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "Integrity") + set(INTEGRITY 1) +else() + set(INTEGRITY 0) +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "VxWorks") + set(VXWORKS 1) +else() + set(VXWORKS 0) +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "QNX") + set(QNX 1) +else() + set(QNX 0) +endif() -qt_set01(LINUX CMAKE_SYSTEM_NAME STREQUAL "Linux") -qt_set01(HPUX CMAKE_SYSTEM_NAME STREQUAL "HPUX") -qt_set01(ANDROID CMAKE_SYSTEM_NAME STREQUAL "Android") # FIXME: How to identify this? -qt_set01(INTEGRITY CMAKE_SYSTEM_NAME STREQUAL "Integrity") # FIXME: How to identify this? -qt_set01(VXWORKS CMAKE_SYSTEM_NAME STREQUAL "VxWorks") # FIXME: How to identify this? -qt_set01(QNX CMAKE_SYSTEM_NAME STREQUAL "QNX") # FIXME: How to identify this? -qt_set01(OPENBSD CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") # FIXME: How to identify this? -qt_set01(FREEBSD CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") # FIXME: How to identify this? -qt_set01(NETBSD CMAKE_SYSTEM_NAME STREQUAL "NetBSD") # FIXME: How to identify this? -qt_set01(WASM CMAKE_SYSTEM_NAME STREQUAL "Emscripten" OR EMSCRIPTEN) -qt_set01(WASM64 QT_QMAKE_TARGET_MKSPEC STREQUAL "wasm-emscripten-64") -qt_set01(SOLARIS CMAKE_SYSTEM_NAME STREQUAL "SunOS") -qt_set01(HURD CMAKE_SYSTEM_NAME STREQUAL "GNU") +if(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") + set(OPENBSD 1) +else() + set(OPENBSD 0) +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") + set(FREEBSD 1) +else() + set(FREEBSD 0) +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "NetBSD") + set(NETBSD 1) +else() + set(NETBSD 0) +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "Emscripten" OR EMSCRIPTEN) + set(WASM 1) +else() + set(WASM 0) +endif() + +if(QT_QMAKE_TARGET_MKSPEC STREQUAL "wasm-emscripten-64") + set(WASM64 1) +else() + set(WASM64 0) +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "SunOS") + set(SOLARIS 1) +else() + set(SOLARIS 0) +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "GNU") + set(HURD 1) +else() + set(HURD 0) +endif() # This is the only reliable way we can determine the webOS platform as the yocto recipe adds this # compile definition into its generated toolchain.cmake file -qt_set01(WEBOS CMAKE_CXX_FLAGS MATCHES "-D__WEBOS__") - -qt_set01(BSD APPLE OR OPENBSD OR FREEBSD OR NETBSD) - -qt_set01(IOS APPLE AND CMAKE_SYSTEM_NAME STREQUAL "iOS") -qt_set01(TVOS APPLE AND CMAKE_SYSTEM_NAME STREQUAL "tvOS") -qt_set01(WATCHOS APPLE AND CMAKE_SYSTEM_NAME STREQUAL "watchOS") -qt_set01(VISIONOS APPLE AND CMAKE_SYSTEM_NAME STREQUAL "visionOS") -qt_set01(UIKIT APPLE AND (IOS OR TVOS OR WATCHOS OR VISIONOS)) -qt_set01(MACOS APPLE AND NOT UIKIT) - -qt_set01(GCC CMAKE_CXX_COMPILER_ID STREQUAL "GNU") -qt_set01(CLANG CMAKE_CXX_COMPILER_ID MATCHES "Clang|IntelLLVM") -qt_set01(APPLECLANG CMAKE_CXX_COMPILER_ID MATCHES "AppleClang") -qt_set01(IntelLLVM CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM") -qt_set01(QCC CMAKE_CXX_COMPILER_ID STREQUAL "QCC") # CMP0047 +if(CMAKE_CXX_FLAGS MATCHES "-D__WEBOS__") + set(WEBOS 1) +else() + set(WEBOS 0) +endif() + +if(APPLE OR OPENBSD OR FREEBSD OR NETBSD) + set(BSD 1) +else() + set(BSD 0) +endif() + +if(APPLE) + if(CMAKE_SYSTEM_NAME STREQUAL "iOS") + set(IOS 1) + else() + set(IOS 0) + endif() + + if(CMAKE_SYSTEM_NAME STREQUAL "tvOS") + set(TVOS 1) + else() + set(TVOS 0) + endif() + + if(CMAKE_SYSTEM_NAME STREQUAL "watchOS") + set(WATCHOS 1) + else() + set(WATCHOS 0) + endif() + + if(CMAKE_SYSTEM_NAME STREQUAL "visionOS") + set(VISIONOS 1) + else() + set(VISIONOS 0) + endif() + + if(IOS OR TVOS OR WATCHOS OR VISIONOS) + set(UIKIT 1) + set(MACOS 0) + else() + set(UIKIT 0) + set(MACOS 1) + endif() +endif() + +if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + set(GCC 1) +else() + set(GCC 0) +endif() + +if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|IntelLLVM") + set(CLANG 1) +else() + set(CLANG 0) +endif() + +if(CMAKE_CXX_COMPILER_ID MATCHES "AppleClang") + set(APPLECLANG 1) +else() + set(APPLECLANG 0) +endif() + +if(CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM") + set(IntelLLVM 1) +else() + set(IntelLLVM 0) +endif() + +if(CMAKE_CXX_COMPILER_ID STREQUAL "QCC") + set(QCC 1) +else() + set(QCC 0) +endif() if(CMAKE_SIZEOF_VOID_P EQUAL 8) set(QT_64BIT TRUE) diff --git a/cmake/QtProcessConfigureArgs.cmake b/cmake/QtProcessConfigureArgs.cmake index 833daceba27..27d00ab63c7 100644 --- a/cmake/QtProcessConfigureArgs.cmake +++ b/cmake/QtProcessConfigureArgs.cmake @@ -491,7 +491,6 @@ defstub(qt_feature_config) defstub(qt_feature_definition) defstub(set_package_properties) defstub(qt_qml_find_python) -defstub(qt_set01) defstub(qt_internal_check_if_linker_is_available) defstub(qt_internal_add_sbom) defstub(qt_internal_extend_sbom) diff --git a/cmake/QtPublicCMakeHelpers.cmake b/cmake/QtPublicCMakeHelpers.cmake index f35ef3c070e..599820deab6 100644 --- a/cmake/QtPublicCMakeHelpers.cmake +++ b/cmake/QtPublicCMakeHelpers.cmake @@ -901,14 +901,6 @@ function(_qt_internal_path_is_prefix path_var input out_var) set(${out_var} "${${out_var}}" PARENT_SCOPE) endfunction() -function(qt_set01 result) - if (${ARGN}) - set("${result}" 1 PARENT_SCOPE) - else() - set("${result}" 0 PARENT_SCOPE) - endif() -endfunction() - # Configures the file using either the input template or the CONTENT. # Behaves as either file(CONFIGURE or configure_file( command, but do not depend # on CMake version. |
