From cdecf0edb2745a7160c6ec19ec5c026f23a848df Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Mon, 20 Jul 2020 17:33:50 +0200 Subject: CMake: Print various CMake and Qt CMake information variables Sometimes the info we show in the configure summary might differ from the information that CMake computes. To more easily debug and fix such cases, print out various CMake info variables like host and target info, compiler versions, sdk versions, etc. Change-Id: I37a11dfabe5369236af78684a09bd3cec3fdd398 Reviewed-by: Cristian Adam --- cmake/QtAutoDetect.cmake | 26 +++++++++----- cmake/QtBaseConfigureTests.cmake | 73 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+), 9 deletions(-) diff --git a/cmake/QtAutoDetect.cmake b/cmake/QtAutoDetect.cmake index 6e9b006d77..5663c5ef19 100644 --- a/cmake/QtAutoDetect.cmake +++ b/cmake/QtAutoDetect.cmake @@ -139,9 +139,6 @@ function(qt_auto_detect_ios) if(QT_UIKIT_SDK) set(CMAKE_OSX_SYSROOT "${QT_UIKIT_SDK}" CACHE STRING "") endif() - message(STATUS "CMAKE_OSX_SYSROOT set to: \"${CMAKE_OSX_SYSROOT}\".") - - message(STATUS "CMAKE_OSX_ARCHITECTURES set to: \"${osx_architectures}\".") set(CMAKE_OSX_ARCHITECTURES "${osx_architectures}" CACHE STRING "") if(NOT DEFINED BUILD_SHARED_LIBS) @@ -219,6 +216,20 @@ function(qt_internal_get_darwin_sdk_version out_var) endif() endfunction() +function(qt_internal_get_xcode_version out_var) + if(APPLE) + execute_process(COMMAND /usr/bin/xcrun xcodebuild -version + OUTPUT_VARIABLE xcode_version + ERROR_VARIABLE xcrun_error) + if(NOT xcode_version) + message(FATAL_ERROR "Can't determine Xcode version. Error: ${xcrun_error}") + endif() + string(REPLACE "\n" " " xcode_version "${xcode_version}") + string(STRIP "${xcode_version}" xcode_version) + set(${out_var} "${xcode_version}" PARENT_SCOPE) + endif() +endfunction() + function(qt_auto_detect_darwin) if(APPLE) # If no CMAKE_OSX_DEPLOYMENT_TARGET is provided, default to a value that Qt defines. @@ -241,15 +252,12 @@ function(qt_auto_detect_darwin) set(CMAKE_OSX_DEPLOYMENT_TARGET "${version}" CACHE STRING "${description}") endif() endif() - if(CMAKE_OSX_DEPLOYMENT_TARGET) - message(STATUS - "CMAKE_OSX_DEPLOYMENT_TARGET set to: \"${CMAKE_OSX_DEPLOYMENT_TARGET}\".") - endif() qt_internal_get_darwin_sdk_version(darwin_sdk_version) set(QT_MAC_SDK_VERSION "${darwin_sdk_version}" CACHE STRING "Darwin SDK version.") - message(STATUS - "QT_MAC_SDK_VERSION set to: \"${QT_MAC_SDK_VERSION}\".") + + qt_internal_get_xcode_version(xcode_version) + set(QT_MAC_XCODE_VERSION "${xcode_version}" CACHE STRING "Xcode version.") endif() endfunction() diff --git a/cmake/QtBaseConfigureTests.cmake b/cmake/QtBaseConfigureTests.cmake index 8a9392e580..c1aba357c2 100644 --- a/cmake/QtBaseConfigureTests.cmake +++ b/cmake/QtBaseConfigureTests.cmake @@ -130,3 +130,76 @@ if (CMAKE_ANDROID_ARCH_ABI STREQUAL x86) set(TEST_subarch_sse4_2 FALSE CACHE BOOL INTERNAL FORCE) endif() qt_run_qtbase_config_tests() + +function(qt_internal_print_cmake_darwin_info) + if(APPLE) + if(NOT CMAKE_OSX_ARCHITECTURES) + set(default_osx_arch " (defaults to ${CMAKE_SYSTEM_PROCESSOR})") + endif() + message(STATUS "CMAKE_OSX_ARCHITECTURES: \"${CMAKE_OSX_ARCHITECTURES}\"${default_osx_arch}") + message(STATUS "CMAKE_OSX_SYSROOT: \"${CMAKE_OSX_SYSROOT}\"") + message(STATUS "CMAKE_OSX_DEPLOYMENT_TARGET: \"${CMAKE_OSX_DEPLOYMENT_TARGET}\"") + message(STATUS "QT_MAC_SDK_VERSION: \"${QT_MAC_SDK_VERSION}\"") + message(STATUS "QT_MAC_XCODE_VERSION: \"${QT_MAC_XCODE_VERSION}\"") + if(QT_UIKIT_SDK) + message(STATUS "QT_UIKIT_SDK: \"${QT_UIKIT_SDK}\"") + endif() + endif() +endfunction() +qt_internal_print_cmake_darwin_info() + +function(qt_internal_print_cmake_host_and_target_info) + message(STATUS "CMAKE_HOST_SYSTEM: \"${CMAKE_HOST_SYSTEM}\"") + message(STATUS "CMAKE_HOST_SYSTEM_NAME: \"${CMAKE_HOST_SYSTEM_NAME}\"") + message(STATUS "CMAKE_HOST_SYSTEM_VERSION: \"${CMAKE_HOST_SYSTEM_VERSION}\"") + message(STATUS "CMAKE_HOST_SYSTEM_PROCESSOR: \"${CMAKE_HOST_SYSTEM_PROCESSOR}\"") + + message(STATUS "CMAKE_SYSTEM: \"${CMAKE_SYSTEM_NAME}\"") + message(STATUS "CMAKE_SYSTEM_NAME: \"${CMAKE_SYSTEM_NAME}\"") + message(STATUS "CMAKE_SYSTEM_VERSION: \"${CMAKE_SYSTEM_VERSION}\"") + message(STATUS "CMAKE_SYSTEM_PROCESSOR: \"${CMAKE_SYSTEM_PROCESSOR}\"") + + message(STATUS "CMAKE_CROSSCOMPILING: \"${CMAKE_CROSSCOMPILING}\"") +endfunction() +qt_internal_print_cmake_host_and_target_info() + +function(qt_internal_print_cmake_compiler_info) + message(STATUS "CMAKE_C_COMPILER: \"${CMAKE_C_COMPILER}\" (${CMAKE_C_COMPILER_VERSION})") + message(STATUS "CMAKE_CXX_COMPILER: \"${CMAKE_CXX_COMPILER}\" (${CMAKE_CXX_COMPILER_VERSION})") + if(CMAKE_OBJC_COMPILER) + message(STATUS "CMAKE_OBJC_COMPILER: \"${CMAKE_OBJC_COMPILER}\" (${CMAKE_OBJC_COMPILER_VERSION})") + endif() + if(CMAKE_OBJCXX_COMPILER) + message(STATUS "CMAKE_OBJCXX_COMPILER: \"${CMAKE_OBJCXX_COMPILER}\" (${CMAKE_OBJCXX_COMPILER_VERSION})") + endif() +endfunction() +qt_internal_print_cmake_compiler_info() + +function(qt_internal_print_cmake_windows_info) + if(MSVC_VERSION) + message(STATUS "MSVC_VERSION: \"${MSVC_VERSION}\"") + endif() + if(MSVC_TOOLSET_VERSION) + message(STATUS "MSVC_TOOLSET_VERSION: \"${MSVC_TOOLSET_VERSION}\"") + endif() +endfunction() +qt_internal_print_cmake_windows_info() + +function(qt_internal_print_cmake_android_info) + if(ANDROID) + message(STATUS "ANDROID_TOOLCHAIN: \"${ANDROID_TOOLCHAIN}\"") + message(STATUS "ANDROID_NDK: \"${ANDROID_NDK}\"") + message(STATUS "ANDROID_ABI: \"${ANDROID_ABI}\"") + message(STATUS "ANDROID_PLATFORM: \"${ANDROID_PLATFORM}\"") + message(STATUS "ANDROID_STL: \"${ANDROID_STL}\"") + message(STATUS "ANDROID_PIE: \"${ANDROID_PIE}\"") + message(STATUS "ANDROID_CPP_FEATURES: \"${ANDROID_CPP_FEATURES}\"") + message(STATUS "ANDROID_ALLOW_UNDEFINED_SYMBOLS: \"${ANDROID_ALLOW_UNDEFINED_SYMBOLS}\"") + message(STATUS "ANDROID_ARM_MODE: \"${ANDROID_ARM_MODE}\"") + message(STATUS "ANDROID_ARM_NEON: \"${ANDROID_ARM_NEON}\"") + message(STATUS "ANDROID_DISABLE_FORMAT_STRING_CHECKS: \"${ANDROID_DISABLE_FORMAT_STRING_CHECKS}\"") + message(STATUS "ANDROID_NATIVE_API_LEVEL: \"${ANDROID_NATIVE_API_LEVEL}\"") + message(STATUS "ANDROID_LLVM_TRIPLE: \"${ANDROID_LLVM_TRIPLE}\"") + endif() +endfunction() +qt_internal_print_cmake_android_info() -- cgit v1.2.3