From 1ce2841fc1695325f6213d213f2d8dbf5d653c18 Mon Sep 17 00:00:00 2001 From: Cristian Le Date: Mon, 13 Jan 2025 17:18:02 +0100 Subject: Install `user_facing_tool_links.txt` automatically The installation is already gated by the user having to specify `INSTALL_PUBLICBINDIR`, at which point we know that they want symlinks created and installed. This automates the installation for that user. Fixes: QTBUG-132761 Change-Id: Ie1242f21ec39db8fc0f31d7f2b93a43a23533485 Reviewed-by: Alexandru Croitor --- cmake/QtPostProcessHelpers.cmake | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/cmake/QtPostProcessHelpers.cmake b/cmake/QtPostProcessHelpers.cmake index 5d8e299023d..9f220f9d78b 100644 --- a/cmake/QtPostProcessHelpers.cmake +++ b/cmake/QtPostProcessHelpers.cmake @@ -881,6 +881,11 @@ function(qt_internal_generate_user_facing_tools_info) qt_path_join(tool_link_base_dir "${CMAKE_INSTALL_PREFIX}" "${INSTALL_PUBLICBINDIR}") get_property(user_facing_tool_targets GLOBAL PROPERTY QT_USER_FACING_TOOL_TARGETS) set(lines "") + set(cmake_install_script "${PROJECT_BINARY_DIR}/install_user_facing_tool_links.cmake") + set(cmake_install_script_content +"execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E make_directory + \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${INSTALL_PUBLICBINDIR}\") +") foreach(target ${user_facing_tool_targets}) get_target_property(filename ${target} OUTPUT_NAME) if(NOT filename) @@ -897,9 +902,17 @@ function(qt_internal_generate_user_facing_tools_info) qt_path_join(tool_link_path "${INSTALL_PUBLICBINDIR}" "${linkname}${PROJECT_VERSION_MAJOR}") _qt_internal_relative_path(tool_target_path BASE_DIRECTORY ${tool_link_base_dir}) list(APPEND lines "${tool_target_path} ${tool_link_path}") + string(APPEND cmake_install_script_content +"execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E create_symlink + \"${tool_target_path}\" \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${tool_link_path}\") +") endforeach() string(REPLACE ";" "\n" content "${lines}") string(APPEND content "\n") set(out_file "${PROJECT_BINARY_DIR}/user_facing_tool_links.txt") file(WRITE "${out_file}" "${content}") + qt_configure_file(OUTPUT "${cmake_install_script}" + CONTENT "${cmake_install_script_content}" + ) + install(SCRIPT ${cmake_install_script}) endfunction() -- cgit v1.2.3