CMake: Don't strip debug builds with qt-cmake-private-install in CI
This provides better stack traces and easier debugging in CI VMs.
Put the MSVC check for disabling stripping into the same place so
there's one location to decide whether stripping should happen.
Amends 60d804c567
Pick-to: 6.6
Fixes: QTBUG-118070
Change-Id: I4684036c8a5a137d14eea58954b34fe1ceb7f804
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
This commit is contained in:
parent
510cc564c0
commit
09fdddeb32
@ -5,13 +5,18 @@
|
||||
# https://gitlab.kitware.com/cmake/cmake/-/issues/20713
|
||||
# https://gitlab.kitware.com/cmake/cmake/-/issues/21475
|
||||
set(configs "@__qt_configured_configs@")
|
||||
set(should_skip_strip "@__qt_skip_strip_installed_artifacts@")
|
||||
|
||||
if(NOT QT_BUILD_DIR)
|
||||
message(FATAL_ERROR "No QT_BUILD_DIR value provided to qt-cmake-private-install.")
|
||||
endif()
|
||||
unset(strip_arg)
|
||||
if ("x@MSVC@" STREQUAL "x")
|
||||
set(strip_arg --strip)
|
||||
|
||||
if(should_skip_strip)
|
||||
unset(strip_arg)
|
||||
else()
|
||||
set(strip_arg --strip)
|
||||
endif()
|
||||
|
||||
foreach(config ${configs})
|
||||
message(STATUS "Installing configuration: '${config}'")
|
||||
set(args "${CMAKE_COMMAND}" --install ${QT_BUILD_DIR} --config "${config}" ${strip_arg})
|
||||
|
@ -203,6 +203,22 @@ function(qt_internal_create_wrapper_scripts)
|
||||
elseif(CMAKE_BUILD_TYPE)
|
||||
set(__qt_configured_configs "${CMAKE_BUILD_TYPE}")
|
||||
endif()
|
||||
|
||||
if(
|
||||
# Skip stripping pure debug builds so it's easier to debug issues in CI VMs.
|
||||
(NOT QT_FEATURE_debug_and_release
|
||||
AND QT_FEATURE_debug
|
||||
AND NOT QT_FEATURE_separate_debug_info)
|
||||
|
||||
# Skip stripping on MSVC because ${CMAKE_STRIP} might contain a MinGW strip binary
|
||||
# and the breaks the linker version flag embedded in the binary and causes Qt Creator
|
||||
# to mis-identify the Kit ABI.
|
||||
OR MSVC
|
||||
)
|
||||
set(__qt_skip_strip_installed_artifacts TRUE)
|
||||
else()
|
||||
set(__qt_skip_strip_installed_artifacts FALSE)
|
||||
endif()
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bin/${__qt_cmake_install_script_name}.in"
|
||||
"${QT_BUILD_DIR}/${INSTALL_LIBEXECDIR}/${__qt_cmake_install_script_name}" @ONLY)
|
||||
qt_install(FILES "${QT_BUILD_DIR}/${INSTALL_LIBEXECDIR}/${__qt_cmake_install_script_name}"
|
||||
|
Loading…
Reference in New Issue
Block a user