CMake Build: Use install component Dependencies

Fixes: QTCREATORBUG-23593
Change-Id: If9861a0ee09f2ce12ac093c2fde600a77958723a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Cristian Adam
2020-02-12 08:24:50 +01:00
parent 6a23f644dc
commit eed49de35b
4 changed files with 19 additions and 10 deletions

View File

@@ -367,7 +367,9 @@ jobs:
- name: Install Strip - name: Install Strip
run: ${{ steps.cmake_and_ninja.outputs.cmake_dir }}/cmake --install build --prefix instdir --strip run: |
${{ steps.cmake_and_ninja.outputs.cmake_dir }}/cmake --install build --prefix instdir --strip
${{ steps.cmake_and_ninja.outputs.cmake_dir }}/cmake --install build --prefix instdir --component Dependencies
- name: Install Devel - name: Install Devel
run: ${{ steps.cmake_and_ninja.outputs.cmake_dir }}/cmake --install build --prefix instdir-dev --component Devel run: ${{ steps.cmake_and_ninja.outputs.cmake_dir }}/cmake --install build --prefix instdir-dev --component Devel

View File

@@ -6,10 +6,7 @@
# #
# This way we are sure that all the binaries have been installed before. # This way we are sure that all the binaries have been installed before.
option(DEPLOY_QTC_DEPENDENCIES if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.16)
"Deployment of Qt, Clang, C++ Runtime libraries" ON)
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.16 AND DEPLOY_QTC_DEPENDENCIES)
get_target_property(moc_binary Qt5::moc IMPORTED_LOCATION) get_target_property(moc_binary Qt5::moc IMPORTED_LOCATION)
get_filename_component(moc_dir "${moc_binary}" DIRECTORY) get_filename_component(moc_dir "${moc_binary}" DIRECTORY)
get_filename_component(QT_BASE_DIR "${moc_dir}/../" ABSOLUTE) get_filename_component(QT_BASE_DIR "${moc_dir}/../" ABSOLUTE)
@@ -28,6 +25,7 @@ if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.16 AND DEPLOY_QTC_DEPENDENCIES)
install( install(
DIRECTORY "${QT_BASE_DIR}/plugins/${plugin}" DIRECTORY "${QT_BASE_DIR}/plugins/${plugin}"
DESTINATION ${QT_DEST_PLUGIN_PATH} DESTINATION ${QT_DEST_PLUGIN_PATH}
COMPONENT Dependencies
${exclusion_mask} ${exclusion_mask}
) )
list(APPEND QT_PLUGIN_DIRECTORIES "${QT_DEST_PLUGIN_PATH}/${plugin}") list(APPEND QT_PLUGIN_DIRECTORIES "${QT_DEST_PLUGIN_PATH}/${plugin}")
@@ -36,6 +34,7 @@ if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.16 AND DEPLOY_QTC_DEPENDENCIES)
install( install(
DIRECTORY "${QT_BASE_DIR}/qml/" DIRECTORY "${QT_BASE_DIR}/qml/"
DESTINATION ${QT_DEST_QML_PATH} DESTINATION ${QT_DEST_QML_PATH}
COMPONENT Dependencies
PATTERN "qml/*" PATTERN "qml/*"
${exclusion_mask} ${exclusion_mask}
) )
@@ -43,7 +42,10 @@ if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.16 AND DEPLOY_QTC_DEPENDENCIES)
# Analyze the binaries and install missing dependencies if they are # Analyze the binaries and install missing dependencies if they are
# found the CMAKE_PREFIX_PATH e.g. Qt, Clang # found the CMAKE_PREFIX_PATH e.g. Qt, Clang
configure_file(InstallDependentSharedObjects.cmake.in InstallDependentSharedObjects.cmake @ONLY) configure_file(InstallDependentSharedObjects.cmake.in InstallDependentSharedObjects.cmake @ONLY)
install(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/InstallDependentSharedObjects.cmake) install(
SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/InstallDependentSharedObjects.cmake
COMPONENT Dependencies
)
if (MSVC) if (MSVC)
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP ON) set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP ON)
@@ -51,6 +53,7 @@ if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.16 AND DEPLOY_QTC_DEPENDENCIES)
install(PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} install(PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS}
DESTINATION ${IDE_APP_PATH} DESTINATION ${IDE_APP_PATH}
COMPONENT Dependencies
) )
endif() endif()
endif() endif()

View File

@@ -1045,6 +1045,7 @@ function(add_qtc_executable name)
create_qt_conf(\"${_EXECUTABLE_PATH}\" \"${IDE_LIBRARY_BASE_PATH}/Qt\") create_qt_conf(\"${_EXECUTABLE_PATH}\" \"${IDE_LIBRARY_BASE_PATH}/Qt\")
endif() endif()
" "
COMPONENT Dependencies
) )
endif() endif()

View File

@@ -176,15 +176,17 @@ foreach(executable clang clang-cl clangd clang-tidy clazy-standalone)
# For the install directory # For the install directory
install(PROGRAMS install(PROGRAMS
"${LLVM_TOOLS_BINARY_DIR}/${executable}${CMAKE_EXECUTABLE_SUFFIX}" "${LLVM_TOOLS_BINARY_DIR}/${executable}${CMAKE_EXECUTABLE_SUFFIX}"
DESTINATION "${IDE_LIBEXEC_PATH}/clang/bin" DESTINATION "${IDE_LIBEXEC_PATH}/clang/bin"
COMPONENT Dependencies
) )
if (IS_SYMLINK "${LLVM_TOOLS_BINARY_DIR}/${executable}${CMAKE_EXECUTABLE_SUFFIX}") if (IS_SYMLINK "${LLVM_TOOLS_BINARY_DIR}/${executable}${CMAKE_EXECUTABLE_SUFFIX}")
file(READ_SYMLINK file(READ_SYMLINK
"${LLVM_TOOLS_BINARY_DIR}/${executable}${CMAKE_EXECUTABLE_SUFFIX}" real_executable) "${LLVM_TOOLS_BINARY_DIR}/${executable}${CMAKE_EXECUTABLE_SUFFIX}" real_executable)
install(PROGRAMS install(PROGRAMS
"${LLVM_TOOLS_BINARY_DIR}/${real_executable}${CMAKE_EXECUTABLE_SUFFIX}" "${LLVM_TOOLS_BINARY_DIR}/${real_executable}${CMAKE_EXECUTABLE_SUFFIX}"
DESTINATION "${IDE_LIBEXEC_PATH}/clang/bin" DESTINATION "${IDE_LIBEXEC_PATH}/clang/bin"
COMPONENT Dependencies
) )
endif() endif()
endif() endif()
@@ -192,4 +194,5 @@ endforeach()
install(DIRECTORY ${LLVM_LIBRARY_DIR}/clang/${CLANG_VERSION}/include install(DIRECTORY ${LLVM_LIBRARY_DIR}/clang/${CLANG_VERSION}/include
DESTINATION "${IDE_LIBEXEC_PATH}/clang/lib/clang/${CLANG_VERSION}" DESTINATION "${IDE_LIBEXEC_PATH}/clang/lib/clang/${CLANG_VERSION}"
COMPONENT Dependencies
) )