Skip to content

Conversation

@swebb2066
Copy link
Contributor

Fixes #47887
Fixes #47301

@dg0yt
Copy link
Contributor

dg0yt commented Dec 22, 2025

Invalid.
The problem is not the passing of an empty list to multiple value option LANGUAGES.
The problem is having installed an old version of port vcpkg_cmake_get_vars which doesn't know that option.
The solution is to update the installed port.

@swebb2066
Copy link
Contributor Author

swebb2066 commented Dec 22, 2025

The problem is have installed an old version of port vcpkg_cmake_get_vars which doesn't know that option.

I was using the head of 'master' building qt_base.

Just checkout master and build icu to replicate.

@dg0yt
Copy link
Contributor

dg0yt commented Dec 22, 2025

But did you start with an up-to-date installation of host dependency vcpkg-cmake-get-vars?

vcpkg update

@swebb2066
Copy link
Contributor Author

But did you start with an up-to-date installation of host dependency vcpkg-cmake-get-vars?

Yes

 .\vcpkg upgrade
git checkout master
git pull
.\vcpkg update
.\vcpkg install icu:x64-windows-release

@dg0yt
Copy link
Contributor

dg0yt commented Dec 22, 2025

Do you want to indicate that .\vcpkg update didn't suggest any updates?
The actual upgrade is done with

`.\vcpkg upgrade --no-dry-run`

(after reviewing the suggestions).

Comment on lines +40 to +42
if(DEFINED arg_LANGUAGES)
set(Z_VCPKG_MAKE_GET_CMAKE_VARS_OPTS "ADDITIONAL_LANGUAGES;${arg_LANGUAGES}" CACHE INTERNAL "")
endif()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NB: This will still pass ADDITIONAL_LANGUAGES in many cases, and so it would still raise the same error if vcpkg_cmake_get_vars wouldn't understand that option.

ADDITIONAL_LANGUAGES with and without args passes CI without errors.
But old version of vcpkg-cmake-get-vars don't know the keyword and raise the error.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A direct use of the option is in port libffi.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was in no way apparent from the upgrade list that qtbase (or icu) needs vcpkg_cmake_get_vars.

Is there no way for a package (like icu) to check the required version of vcpkg_xxxx is installed?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was in no way apparent from the upgrade list that qtbase (or icu) needs vcpkg_cmake_get_vars.

True, but the update list is for showing updates, not for highlighting transitive dependencies. For dependencies, there is:

$ ./vcpkg depend-info icu
vcpkg-cmake: 
vcpkg-cmake-get-vars: vcpkg-cmake
vcpkg-make: vcpkg-cmake-get-vars
icu[tools]: vcpkg-cmake-get-vars, vcpkg-make

Is there no way for a package (like icu) to check the required version of vcpkg_xxxx is installed?

Not in a simple way.

In classic mode, version inforation from the manifests is not used, so a simple condition in the manifests wouldn't help. Basically, as it is tested in CI, all ports should use the version from the same commit in the registry. User may skip upgrading installed ports when updating their copy of the registry, but then things may break.

(In manifest mode, the builtin-baseline also selects versions from the same revision of the main registry. Upgrades are done automatically when changing the baseline, so this is almost a non-issue - at the price of long rebuilds.)

Copy link
Member

@BillyONeal BillyONeal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Invalid. The problem is not the passing of an empty list to multiple value option LANGUAGES. The problem is having installed an old version of port vcpkg_cmake_get_vars which doesn't know that option. The solution is to update the installed port.

I agree

@BillyONeal BillyONeal added the requires:vcpkg-team-review This PR or issue requires someone on the vcpkg team to take a further look. label Dec 22, 2025
@BillyONeal BillyONeal marked this pull request as draft December 22, 2025 21:18
@BillyONeal
Copy link
Member

image

@vicroms agrees so I'm going to close this. Thanks for your submission and sorry that the diagnostics aren't better :/

@BillyONeal BillyONeal closed this Dec 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

requires:vcpkg-team-review This PR or issue requires someone on the vcpkg team to take a further look.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[libffi] Build failure on x64-windows [graphicsmagick] Build error on x64-windows

4 participants