aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2020-10-09 11:39:56 +0200
committerEike Ziller <eike.ziller@qt.io>2020-10-09 12:01:13 +0000
commit0d5fdcee74b76175e0b03269b12d9bd4b6eee9c4 (patch)
treef7ba60c06c2fdc39631f5795fb4cdcdab2caf503
parent0b74ad4f60c25a8293ad6a72bc5012464d0ed528 (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.cmake14
-rw-r--r--share/CMakeLists.txt8
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()