summaryrefslogtreecommitdiffstats
path: root/cmake/QtTargetHelpers.cmake
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2021-07-07 16:04:17 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2021-07-09 09:44:58 +0200
commit7b3d9efc042bec4ce23a6e75553cced3d14d1542 (patch)
tree8cbdb7ce2ecb08d31a959c09d4c9d28d93c0080d /cmake/QtTargetHelpers.cmake
parentd2e88b8094db0bda6b3ab89172352861ae18d301 (diff)
CMake: Place internal apps in the correct output directory
In a -debug-and-release build, apps were placed under bin/Release rather than just bin. Apply the logic we use for tools for apps as well. Rename and move the common functions into QtTargetHelpers.cmake. Pick-to: 6.2 Fixes: QTBUG-95028 Change-Id: I5a9082ea50c9238c8fcf0c6dd099708fbc571bf8 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'cmake/QtTargetHelpers.cmake')
-rw-r--r--cmake/QtTargetHelpers.cmake24
1 files changed, 24 insertions, 0 deletions
diff --git a/cmake/QtTargetHelpers.cmake b/cmake/QtTargetHelpers.cmake
index a4114a6eb3..266bcac490 100644
--- a/cmake/QtTargetHelpers.cmake
+++ b/cmake/QtTargetHelpers.cmake
@@ -736,3 +736,27 @@ function(qt_internal_qtfy_target out_var target)
set(${out_var} "Qt${target}" PARENT_SCOPE)
set(${out_var}_versioned "Qt${PROJECT_VERSION_MAJOR}${target}" PARENT_SCOPE)
endfunction()
+
+function(qt_internal_get_main_cmake_configuration out_var)
+ if(CMAKE_BUILD_TYPE)
+ set(config "${CMAKE_BUILD_TYPE}")
+ elseif(QT_MULTI_CONFIG_FIRST_CONFIG)
+ set(config "${QT_MULTI_CONFIG_FIRST_CONFIG}")
+ endif()
+ set("${out_var}" "${config}" PARENT_SCOPE)
+endfunction()
+
+function(qt_internal_get_upper_case_main_cmake_configuration out_var)
+ qt_internal_get_main_cmake_configuration("${out_var}")
+ string(TOUPPER "${${out_var}}" upper_config)
+ set("${out_var}" "${upper_config}" PARENT_SCOPE)
+endfunction()
+
+function(qt_internal_adjust_main_config_runtime_output_dir target output_dir)
+ # When building Qt with multiple configurations, place the main configuration executable
+ # directly in ${output_dir}, rather than a ${output_dir}/<CONFIG> subdirectory.
+ qt_internal_get_upper_case_main_cmake_configuration(main_cmake_configuration)
+ set_target_properties("${target}" PROPERTIES
+ RUNTIME_OUTPUT_DIRECTORY_${main_cmake_configuration} "${output_dir}"
+ )
+endfunction()