summaryrefslogtreecommitdiffstats
path: root/cmake/QtToolHelpers.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/QtToolHelpers.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/QtToolHelpers.cmake')
-rw-r--r--cmake/QtToolHelpers.cmake27
1 files changed, 5 insertions, 22 deletions
diff --git a/cmake/QtToolHelpers.cmake b/cmake/QtToolHelpers.cmake
index 4274e622a4..c1b6b0cdbf 100644
--- a/cmake/QtToolHelpers.cmake
+++ b/cmake/QtToolHelpers.cmake
@@ -149,7 +149,10 @@ function(qt_internal_add_tool target_name)
set(install_dir "${arg_INSTALL_DIR}")
endif()
- qt_internal_add_executable("${target_name}" OUTPUT_DIRECTORY "${QT_BUILD_DIR}/${install_dir}"
+ set(output_dir "${QT_BUILD_DIR}/${install_dir}")
+
+ qt_internal_add_executable("${target_name}"
+ OUTPUT_DIRECTORY "${output_dir}"
${bootstrap}
${exceptions}
NO_INSTALL
@@ -173,6 +176,7 @@ function(qt_internal_add_tool target_name)
)
qt_internal_add_target_aliases("${target_name}")
_qt_internal_apply_strict_cpp("${target_name}")
+ qt_internal_adjust_main_config_runtime_output_dir("${target_name}" "${output_dir}")
if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.19.0" AND QT_FEATURE_debug_and_release)
set_property(TARGET "${target_name}"
@@ -209,12 +213,6 @@ function(qt_internal_add_tool target_name)
set_property(GLOBAL APPEND PROPERTY QT_USER_FACING_TOOL_TARGETS ${target_name})
endif()
- # If building with a multi-config configuration, the main configuration tool will be placed in
- # ./bin, while the rest will be in <CONFIG> specific subdirectories.
- qt_get_tool_cmake_configuration(tool_cmake_configuration)
- set_target_properties("${target_name}" PROPERTIES
- RUNTIME_OUTPUT_DIRECTORY_${tool_cmake_configuration} "${QT_BUILD_DIR}/${install_dir}"
- )
if(NOT arg_NO_INSTALL AND arg_TOOLS_TARGET)
# Assign a tool to an export set, and mark the module to which the tool belongs.
@@ -410,21 +408,6 @@ endif()
)
endfunction()
-function(qt_get_tool_cmake_configuration out_var)
- qt_get_main_cmake_configuration("${out_var}")
- string(TOUPPER "${${out_var}}" upper_config)
- set("${out_var}" "${upper_config}" PARENT_SCOPE)
-endfunction()
-
-function(qt_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()
-
# Returns the target name for the tool with the given name.
#
# In most cases, the target name is the same as the tool name.