From 759e15dbb4d3262e174d0d5ef15db355e2b18878 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 10 May 2021 13:54:19 +0200 Subject: [PATCH] CMake build: put .lib files next to .dll files for libraries - there is no reason for putting them elsewhere - since CMake file-api only reports the .lib location for linked libraries, Qt Creator has difficulties with adding the correct PATH for running e.g. manual tests, when the .lib files are at an arbitrary location Fixes: QTCREATORBUG-25684 Change-Id: I24b26a79c70fd5384f534f8f0b66b51fca1ecc56 Reviewed-by: Qt CI Bot Reviewed-by: Alessandro Portale --- cmake/QtCreatorAPI.cmake | 5 +++-- cmake/QtCreatorAPIInternal.cmake | 3 +++ qtcreator.pri | 2 ++ src/libs/CMakeLists.txt | 3 ++- src/libs/qlitehtml | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cmake/QtCreatorAPI.cmake b/cmake/QtCreatorAPI.cmake index 4c2b612af1e..9198f0b234d 100644 --- a/cmake/QtCreatorAPI.cmake +++ b/cmake/QtCreatorAPI.cmake @@ -13,6 +13,7 @@ set(IDE_APP_TARGET "${_IDE_APP_TARGET}") # The IDE application na set(IDE_PLUGIN_PATH "${_IDE_PLUGIN_PATH}") # The IDE plugin path (relative to CMAKE_INSTALL_PREFIX). set(IDE_LIBRARY_BASE_PATH "${_IDE_LIBRARY_BASE_PATH}") # The IDE library base path (relative to CMAKE_INSTALL_PREFIX). set(IDE_LIBRARY_PATH "${_IDE_LIBRARY_PATH}") # The IDE library path (relative to CMAKE_INSTALL_PREFIX). +set(IDE_LIBRARY_ARCHIVE_PATH "${_IDE_LIBRARY_ARCHIVE_PATH}") # The IDE library archive path (relative to CMAKE_INSTALL_PREFIX). set(IDE_LIBEXEC_PATH "${_IDE_LIBEXEC_PATH}") # The IDE libexec path (relative to CMAKE_INSTALL_PREFIX). set(IDE_DATA_PATH "${_IDE_DATA_PATH}") # The IDE data path (relative to CMAKE_INSTALL_PREFIX). set(IDE_DOC_PATH "${_IDE_DOC_PATH}") # The IDE documentation path (relative to CMAKE_INSTALL_PREFIX). @@ -249,7 +250,7 @@ function(add_qtc_library name) INSTALL_RPATH "${_LIB_RPATH}" RUNTIME_OUTPUT_DIRECTORY "${_output_binary_dir}/${_DESTINATION}" LIBRARY_OUTPUT_DIRECTORY "${_output_binary_dir}/${IDE_LIBRARY_PATH}" - ARCHIVE_OUTPUT_DIRECTORY "${_output_binary_dir}/${IDE_LIBRARY_PATH}" + ARCHIVE_OUTPUT_DIRECTORY "${_output_binary_dir}/${IDE_LIBRARY_ARCHIVE_PATH}" ${_arg_PROPERTIES} ) enable_pch(${name}) @@ -289,7 +290,7 @@ function(add_qtc_library name) DESTINATION "${IDE_LIBRARY_PATH}" COMPONENT Devel EXCLUDE_FROM_ALL ARCHIVE - DESTINATION "${IDE_LIBRARY_PATH}" + DESTINATION "${IDE_LIBRARY_ARCHIVE_PATH}" COMPONENT Devel EXCLUDE_FROM_ALL OPTIONAL ) diff --git a/cmake/QtCreatorAPIInternal.cmake b/cmake/QtCreatorAPIInternal.cmake index 549f05a9448..4c32dca5090 100644 --- a/cmake/QtCreatorAPIInternal.cmake +++ b/cmake/QtCreatorAPIInternal.cmake @@ -46,6 +46,7 @@ if (APPLE) set(_IDE_DATA_PATH "${_IDE_OUTPUT_PATH}/Resources") set(_IDE_DOC_PATH "${_IDE_OUTPUT_PATH}/Resources/doc") set(_IDE_BIN_PATH "${_IDE_OUTPUT_PATH}/MacOS") + set(_IDE_LIBRARY_ARCHIVE_PATH "${_IDE_LIBRARY_PATH}") set(_IDE_HEADER_INSTALL_PATH "${_IDE_DATA_PATH}/Headers/qtcreator") set(_IDE_CMAKE_INSTALL_PATH "${_IDE_DATA_PATH}/lib/cmake") @@ -60,6 +61,7 @@ elseif(WIN32) set(_IDE_DATA_PATH "share/qtcreator") set(_IDE_DOC_PATH "share/doc/qtcreator") set(_IDE_BIN_PATH "bin") + set(_IDE_LIBRARY_ARCHIVE_PATH "${_IDE_BIN_PATH}") set(_IDE_HEADER_INSTALL_PATH "include/qtcreator") set(_IDE_CMAKE_INSTALL_PATH "lib/cmake") @@ -75,6 +77,7 @@ else () set(_IDE_DATA_PATH "${CMAKE_INSTALL_DATAROOTDIR}/qtcreator") set(_IDE_DOC_PATH "${CMAKE_INSTALL_DATAROOTDIR}/doc/qtcreator") set(_IDE_BIN_PATH "${CMAKE_INSTALL_BINDIR}") + set(_IDE_LIBRARY_ARCHIVE_PATH "${_IDE_LIBRARY_PATH}") set(_IDE_HEADER_INSTALL_PATH "include/qtcreator") set(_IDE_CMAKE_INSTALL_PATH "lib/cmake") diff --git a/qtcreator.pri b/qtcreator.pri index 584e3970d0d..a03d88ad310 100644 --- a/qtcreator.pri +++ b/qtcreator.pri @@ -193,6 +193,8 @@ CONFIG += \ LIBS *= -L$$LINK_LIBRARY_PATH # Qt Creator libraries exists($$IDE_LIBRARY_PATH): LIBS *= -L$$IDE_LIBRARY_PATH # library path from output path +# linking against Qt Creator built with CMake +win32: LIBS *= -L$$IDE_BUILD_TREE/bin !isEmpty(vcproj) { DEFINES += IDE_LIBRARY_BASENAME=\"$$IDE_LIBRARY_BASENAME\" diff --git a/src/libs/CMakeLists.txt b/src/libs/CMakeLists.txt index 7907d8272af..920f1607dd5 100644 --- a/src/libs/CMakeLists.txt +++ b/src/libs/CMakeLists.txt @@ -25,6 +25,7 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/qlitehtml/src/CMakeLists.txt) if(BUILD_LIBRARY_QLITEHTML) set(QLITEHTML_BIN_PATH ${IDE_BIN_PATH}) set(QLITEHTML_LIBRARY_PATH ${IDE_LIBRARY_PATH}) + set(QLITEHTML_LIBRARY_ARCHIVE_PATH ${IDE_LIBRARY_ARCHIVE_PATH}) set(QLITEHTML_EXPORT QtCreator) set(QLITEHTML_DEVEL_COMPONENT Devel) set(QLITEHTML_DEVEL_EXCLUDE_FROM_ALL ON) @@ -42,7 +43,7 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/qlitehtml/src/CMakeLists.txt) INSTALL_RPATH "${_LIB_RPATH}" RUNTIME_OUTPUT_DIRECTORY "${_output_binary_dir}/${IDE_BIN_PATH}" LIBRARY_OUTPUT_DIRECTORY "${_output_binary_dir}/${IDE_LIBRARY_PATH}" - ARCHIVE_OUTPUT_DIRECTORY "${_output_binary_dir}/${IDE_LIBRARY_PATH}" + ARCHIVE_OUTPUT_DIRECTORY "${_output_binary_dir}/${IDE_LIBRARY_ARCHIVE_PATH}" ) endif() endif() diff --git a/src/libs/qlitehtml b/src/libs/qlitehtml index b90c00274b4..44e15759b74 160000 --- a/src/libs/qlitehtml +++ b/src/libs/qlitehtml @@ -1 +1 @@ -Subproject commit b90c00274b47fa7d66f9889872506e7e898d08a4 +Subproject commit 44e15759b7400901bfdc6b69ffb1256c82cc1699