conan-io / conan

Conan - The open-source C and C++ package manager
https://conan.io
MIT License
8.28k stars 981 forks source link

Building Qt 6.5.3 fails using conan 2.1.0 and 2.5.0 #16823

Closed tim486 closed 3 months ago

tim486 commented 3 months ago

Describe the bug

OS: Windows 11 CMake: 3.26.4 Conan: 2.1.0 and 2.5.0 Python: 3.12.5 conanfile: conanfile.py.txt Output stream: error log.txt

How to reproduce it

conan lock create conanfile.py --user=user --channel=testing --lockfile-out=Conan/locks/base.lock --profile:build=./Libraries/lightfield/Conan/release ` --profile:host=./Libraries/lightfield/Conan/release

conan install . --lockfile Conan/locks/base.lock --profile:build=./Libraries/lightfield/Conan/$BuildType --profile:host=./Libraries/lightfield/Conan/$BuildType -of $BuildDir --build missing --deployer=full_deploy --deployer-folder=$BuildDir/build/imports

jcar87 commented 3 months ago

it could be related to this: https://giters.com/confluentinc/librdkafka/issues/4728

Which affects the compiler from vs 2019 and recent Windows SDK. Can you confirm which version of the windows SDKs you have installed?

tim486 commented 3 months ago

Hi,

Our CMake configuration sets WINDOWS_API_VERSION to "10.0.22621.0". Which is installed on each of the systems that are having this issue.

This issue is only happening on new PCs built within the last couple of months. So it does point to some kind of change in the system configuration on the newer builds. Or a change in the conan files that are being retrieved, as these systems would not have had pre existing conan caches.

Thanks for the reply!

tim486 commented 3 months ago

We have found the solution to this issue. The new machines were being loaded with Windows SDK 10.0.26100.0 which Qt was trying to use to build. That SDK seems to be causing some issues with builds, I found another case of the same error here: https://github.com/confluentinc/librdkafka/issues/4728

Uninstalling that SDK and forcing Qt to fall back to an earlier SDK version solved our issue.

jcar87 commented 3 months ago

Hi @tim486, thanks for the update.

Both cmake and the VCvars scripts typically prefer the most recent version of the Windows SDK found in the system. In all likelihood, you may have multiple versions of the Windows SDK, you can check the versions in C:\Program Files (x86)\Windows Kits\10\Include

If you do have multiple versions, you can use the following Conan configurations to set specific SDK versions:

tools.cmake.cmaketoolchain:system_version=10.0.xxxxx.z
tools.microsoft:winsdk_version=10.0.xxxxx.z

to prevent the behaviour of choosing the latest.

tim486 commented 3 months ago

Thank-you! That is what we'll do to prevent this from happening again on future builds.