diff options
author | Eike Ziller <eike.ziller@qt.io> | 2020-10-09 11:39:56 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2020-10-09 12:01:13 +0000 |
commit | 0d5fdcee74b76175e0b03269b12d9bd4b6eee9c4 (patch) | |
tree | f7ba60c06c2fdc39631f5795fb4cdcdab2caf503 | |
parent | 0b74ad4f60c25a8293ad6a72bc5012464d0ed528 (diff) |
cmake: Fix issues with configuring locations on Windows
Make DLL destination configurable independently of LIB destination.
In Qt Creator we put DLLs into bin\, but LIBs into lib\.
Fix installation of plugin DLLs by adding corresponding RUNTIME section.
Fix setting PATH to Qt & Qbs libraries for BuildQbsResources.
Change-Id: I5029e82b8822c7e3ad43afe69530b2d4e2f918b3
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
-rw-r--r-- | cmake/QbsAPI.cmake | 14 | ||||
-rw-r--r-- | share/CMakeLists.txt | 8 |
2 files changed, 18 insertions, 4 deletions
diff --git a/cmake/QbsAPI.cmake b/cmake/QbsAPI.cmake index 26e658374..d8847e683 100644 --- a/cmake/QbsAPI.cmake +++ b/cmake/QbsAPI.cmake @@ -12,6 +12,7 @@ endif() set(QBS_OUTPUT_PREFIX "" CACHE STRING "Qbs build output location relative to CMAKE_BINARY_DIR.") set(QBS_APP_INSTALL_DIR "bin" CACHE STRING "Relative install location for Qbs binaries.") set(QBS_LIB_INSTALL_DIR "${_DEFAULT_LIB_INSTALL_DIR}" CACHE STRING "Relative install location for Qbs libraries.") +set(QBS_DLL_INSTALL_DIR "${QBS_LIB_INSTALL_DIR}" CACHE STRING "Relative install location for Qbs DLLs.") set(QBS_LIBEXEC_INSTALL_DIR "${_DEFAULT_LIBEXEC_INSTALL_DIR}" CACHE STRING "Relative install location for Qbs libexec.") set(QBS_PLUGINS_INSTALL_BASE "${QBS_LIBDIR_NAME}" CACHE STRING "Relative install location for Qbs plugins.") set(QBS_RESOURCES_INSTALL_BASE "." CACHE STRING "Relative install location for Qbs resources.") @@ -135,15 +136,19 @@ function(add_qbs_library target_name) target_link_libraries(${target_name} PRIVATE ${_arg_DEPENDS} PUBLIC ${_arg_PUBLIC_DEPENDS}) set_target_properties(${target_name} PROPERTIES + ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${QBS_OUTPUT_PREFIX}${QBS_LIB_INSTALL_DIR} LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${QBS_OUTPUT_PREFIX}${QBS_LIB_INSTALL_DIR} - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${QBS_OUTPUT_PREFIX}${QBS_LIB_INSTALL_DIR} + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${QBS_OUTPUT_PREFIX}${QBS_DLL_INSTALL_DIR} BUILD_RPATH "${QBS_LIB_RPATH}" INSTALL_RPATH "${QBS_LIB_RPATH}" SOVERSION ${_SOVERSION} VERSION ${QBS_VERSION} ) if (NOT _arg_STATIC) - install(TARGETS ${target_name} LIBRARY DESTINATION ${QBS_LIB_INSTALL_DIR}) + install(TARGETS ${target_name} + LIBRARY DESTINATION ${QBS_LIB_INSTALL_DIR} + RUNTIME DESTINATION ${QBS_DLL_INSTALL_DIR} + ) endif() endfunction() @@ -172,7 +177,10 @@ function(add_qbs_plugin target_name) BUILD_RPATH "${QBS_PLUGINS_RPATH}" INSTALL_RPATH "${QBS_PLUGINS_RPATH}" ) - install(TARGETS ${target_name} LIBRARY DESTINATION ${QBS_PLUGINS_INSTALL_DIR}) + install(TARGETS ${target_name} + LIBRARY DESTINATION ${QBS_PLUGINS_INSTALL_DIR} + RUNTIME DESTINATION ${QBS_PLUGINS_INSTALL_DIR} + ) endfunction() function(add_qbs_test test_name) diff --git a/share/CMakeLists.txt b/share/CMakeLists.txt index 8f53804fd..bfc657b6f 100644 --- a/share/CMakeLists.txt +++ b/share/CMakeLists.txt @@ -33,7 +33,13 @@ install( ) if(WIN32) - set(UPDATE_PATH_COMMAND set "PATH=${QT_QMAKE_EXECUTABLE}/..\;%PATH%") + get_target_property(_QTCORE_LIBRARY Qt5::Core IMPORTED_LOCATION_RELEASE) + if(NOT _QTCORE_LIBRARY) + get_target_property(_QTCORE_LIBRARY Qt5::Core IMPORTED_LOCATION_DEBUG) + endif() + get_filename_component(_QT_LIBRARY_PATH "${_QTCORE_LIBRARY}" DIRECTORY) + get_target_property(_QBS_LIBRARY_PATH qbscore LIBRARY_OUTPUT_DIRECTORY) + set(UPDATE_PATH_COMMAND set "PATH=${_QT_LIBRARY_PATH}\;${_QBS_LIBRARY_PATH}\;%PATH%") else() set(UPDATE_PATH_COMMAND "") endif() |