[Qt-creator] CMake configuration loop when using vcpkg

Cristian Adam cristian.adam at qt.io
Wed Sep 15 14:40:06 CEST 2021


Hi Jakub,

The bug is fixed in Qt Creator 5.0.1 
<https://www.qt.io/blog/qt-creator-5.0.1-released>!

Cheers,
Cristian.

On 8/30/2021 10:18 AM, Cristian Adam wrote:
> Hi Jakub,
>
> The infinite CMake loop bug is still not yet fixed.
>
> See https://bugreports.qt.io/browse/QTCREATORBUG-25346 for a similar 
> vpkg report.
>
> The workaround that seems to work is unchecking "Autorun CMake" in Qt 
> Creator settings.
>
> Cheers,
> Cristian.
>
>
> On 8/26/2021 6:32 PM, Jakub Narolewski wrote:
>> I recently stated observing extremely annoying thing when I use 
>> QtCreator with projects that also happen to use vcpkg as my package 
>> manager.
>> Namely, after initial, successful CMake configuration, any call to 
>> CMake configure causes infinite 'configuration loop'. This happens 
>> when QtCreator detects new changes in CMakeLists.txt or even if I 
>> just call it manually.
>>
>> This looks like this:
>>
>> ** logs -> **
>>
>> Running /usr/bin/cmake -S /home/izowiuz/Git/concordia -B 
>> /home/izowiuz/Git/concordia/build in /home/izowiuz/Git/concordia/build.
>> -- Running vcpkg install
>> Detecting compiler hash for triplet x64-linux...
>> All requested packages are currently installed.
>>
>> Total elapsed time: 2.04 us
>>
>> The package openssl is compatible with built-in CMake targets:
>>
>>      find_package(OpenSSL REQUIRED)
>>      target_link_libraries(main PRIVATE OpenSSL::SSL OpenSSL::Crypto)
>>
>> The package libpq provides CMake integration:
>>
>>      find_package(PostgreSQL REQUIRED)
>>      target_link_libraries(main PRIVATE PostgreSQL::PostgreSQL)
>>
>> The package libpqxx:x64-linux provides CMake targets:
>>
>>      find_package(libpqxx CONFIG REQUIRED)
>>      target_link_libraries(main PRIVATE libpqxx::pqxx)
>>
>> The package nlohmann-json:x64-linux provides CMake targets:
>>
>>      find_package(nlohmann_json CONFIG REQUIRED)
>>      target_link_libraries(main PRIVATE nlohmann_json 
>> nlohmann_json::nlohmann_json)
>>
>> The package spdlog:x64-linux provides CMake targets:
>>
>>      find_package(spdlog CONFIG REQUIRED)
>>      target_link_libraries(main PRIVATE spdlog::spdlog 
>> spdlog::spdlog_header_only)
>>
>> -- Running vcpkg install - done
>> -- Configuring done
>> -- Generating done
>> -- Build files have been written to: /home/izowiuz/Git/concordia/build
>> Elapsed time: 00:02.
>>
>> Running /usr/bin/cmake -S /home/izowiuz/Git/concordia -B 
>> /home/izowiuz/Git/concordia/build in /home/izowiuz/Git/concordia/build.
>> -- Running vcpkg install
>> Detecting compiler hash for triplet x64-linux...
>> All requested packages are currently installed.
>>
>> Total elapsed time: 1.68 us ...
>>
>> [ ... gazilion more configuration steps skipped ... ]
>>
>> ** logs <- **
>>
>> I somewhat suspecting this being a fault of a vcpkg because I believe 
>> QtC 4.15.2 worked fine earlier in that configuration. This is with 
>> pretty mundane CMakeLists.txt without any esoteric stuff done in it. 
>> I'm attaching a complete CMakeLists.txt where I see this at the end 
>> of my message.
>>
>> I see this with QtCreator 4.15.2, 5.0 RC / Beta and 5.0 release.
>> I'm using Kubuntu 21.04 x86_64 and vcpkg on version 
>> 2021-08-12-unknownhash
>>
>> Any help here would be greatly appreciated. I much prefer QtC to the 
>> vscode on Linux :]
>>
>> ** CMakeLists.txt -> **
>>
>> # minimum required CMake version
>> cmake_minimum_required(VERSION 3.15)
>>
>> # force verbose makefiles
>> set(CMAKE_VERBOSE_MAKEFILE ON)
>>
>> # vcpkg's toolchain_file
>> if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
>>      set(VCPKG_ROOT $ENV{VCPKG_ROOT})
>>      set(CMAKE_TOOLCHAIN_FILE 
>> "${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "")
>> endif()
>>
>> set(VCPKG_FEATURE_FLAGS ${VCPKG_FEATURE_FLAGS} "registries" CACHE 
>> STRING "")
>>
>> project("concordia")
>>
>> find_package(OpenSSL REQUIRED)
>> find_package(spdlog CONFIG REQUIRED)
>> find_package(PostgreSQL REQUIRED)
>> find_package(libpqxx CONFIG REQUIRED)
>> find_package(nlohmann_json CONFIG REQUIRED)
>>
>> set(Boost_USE_STATIC_LIBS ON)
>> find_package(Boost REQUIRED)
>>
>> add_executable(
>>      concordia
>>      ""
>> )
>>
>> target_compile_features(
>>      concordia
>> PRIVATE
>>      cxx_std_17
>> )
>>
>> target_sources(
>>      concordia
>> PRIVATE
>>      "src/Concordia.cpp"
>>      "src/Listener.cpp"
>>      "src/Listener.h"
>>      "src/Service.cpp"
>>      "src/Service.h"
>>      "src/Connection.cpp"
>>      "src/Connection.h"
>>      "src/DatabaseConnection.cpp"
>>      "src/DatabaseConnection.h"
>>      "src/RequestProcessor.cpp"
>>      "src/RequestProcessor.h"
>>      "src/Endpoint.cpp"
>>      "src/Endpoint.h"
>> )
>>
>> target_include_directories(
>>      concordia
>> PRIVATE
>>      ${Boost_INCLUDE_DIR}
>> )
>>
>> target_link_libraries(
>>      concordia
>> PRIVATE
>>      libpqxx::pqxx
>>      PostgreSQL::PostgreSQL
>>      OpenSSL::SSL
>>      OpenSSL::Crypto
>>      spdlog::spdlog
>>      nlohmann_json::nlohmann_json
>> )
>>
>>
>> ** CMakeLists.txt <- **
>>
> _______________________________________________
> Qt-creator mailing list
> Qt-creator at qt-project.org
> https://lists.qt-project.org/listinfo/qt-creator
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/qt-creator/attachments/20210915/5063dbca/attachment.html>


More information about the Qt-creator mailing list