-
Notifications
You must be signed in to change notification settings - Fork 6.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[wxwidgets] make wxUSE_STL an optional triplet feature disabled by default #19274
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!
After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 261c458af6e3eed5d099144aff95d2b5035f656b -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/baseline.json b/versions/baseline.json
index 7e64191..b042cca 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -6738,7 +6738,7 @@
},
"wxwidgets": {
"baseline": "3.1.5",
- "port-version": 2
+ "port-version": 3
},
"x-plane": {
"baseline": "3.0.3",
diff --git a/versions/w-/wxwidgets.json b/versions/w-/wxwidgets.json
index 72eaf13..38622b9 100644
--- a/versions/w-/wxwidgets.json
+++ b/versions/w-/wxwidgets.json
@@ -1,5 +1,10 @@
{
"versions": [
+ {
+ "git-tree": "3561ee078b11facb11fbd807f03093262cd52f19",
+ "version-semver": "3.1.5",
+ "port-version": 3
+ },
{
"git-tree": "6fa230bffdee1e7d700570c31e6f08367460c0c9",
"version-semver": "3.1.5",
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
I would like to ask for clarification whether this feature is additive and compatible with binary caching:
|
wxUSE_STL=ON and wxUSE_STL=OFF are not source compatible so I don't imagine they would be ABI compatible.
I suppose so. |
This is the list of "Do not" for features: I get the impression that the proposed feature is in conflict with at least one item. |
The only alternatives are:
|
https://github.com/microsoft/vcpkg/blob/master/docs/maintainers/maintainer-guide.md#do-not-use-features-to-control-alternatives-in-published-interfaces lists some exceptions made for backwards compatibility. I think this case should have an exception made for backwards compatibility. |
Don't misunderstand backwards compatibility and the existing exceptions: These ports already had a broken feature list. The feature were left for backwards compatibility.
There is more:
|
I don't think this is a good idea because the port currently does not work with downstream codebases that were developed with wxWidgets' default of wxUSE_STL=OFF.
This would be quite cumbersome. I don't know why that would be better than a port feature. |
It creates an entire consistent universe of compatible binaries bound to that particular triplet. With features, this is not possible: The binaries created from |
I would be annoyed if I had to use a custom triplet just to use wxWidgets with its upstream defaults. But if that's what the vcpkg maintainers decide, it should be documented. |
Do you have a repro? I'm trying to figure out why this is necessary, except for the |
I am working with this branch of Tenacity: https://github.com/tenacityteam/tenacity/pull/228 This branch is still very much a work-in-progress and I am force pushing frequently. When I tried to build that branch with the wxwidgets port in wxWidgets/wxWidgets#2402 which uses wxUSE_STL=ON, the build failed with these errors. When I build wxwidgets manually without vcpkg using the default wxUSE_STL=OFF, I am able to build that branch. When I rebuilt wxwidgets manually with wxUSE_STL=ON, I reproduced the compile errors. |
Those failures are due to the upstream doesn't handle the library path. See wxWidgets/wxWidgets#2402. |
@JackBoosY Will you help us to continue the PR that solve the problems? |
Yes the first error I posted in https://github.com/tenacityteam/tenacity/pull/228#issuecomment-880113285 was due to that upstream bug. But then I ran into the compile errors because of wxUSE_STL=ON. |
https://docs.wxwidgets.org/3.0/classwx_string.html has this note:
I think this is the source of the compile error I encountered with wxUSE_STL=ON. |
@Be-ing could you try instead with |
That's not an available CMake variable:
|
urggh... okay, I think the best thing is to default to |
So merge this PR? |
@Be-ing no, it shouldn't be a feature. Could you turn it off by default, and make turning it back on a triplet option? |
Okay, that sounds like a good solution. Is there documentation or an example how to do that? Just set the |
Where would I document that the triplet option exists? |
Good question. Documentation exists for global triplet variables, but not for per-port variables. How about adding a sentence to the port's description field? In this way, it would be visible in online package search. E.g.
|
wxUSE_STL defaults to OFF so that is how it is in Linux distribution packages. Downstream projects developed with wxUSE_STL=ON are not necessarily compatible with wxUSE_STL=OFF without modification. So, by default, go with wxWidgets' default for compatibility with downstream codebases. vcpkg users who need wxUSE_STL=ON can still do so by simply opting into the new 'stl' feature of this port. https://forums.wxwidgets.org/viewtopic.php?p=165208 Signed-off-by: Be <[email protected]>
This has been approved by 3 reviewers. Can it be merged? |
Thanks for reviewing. I am glad we found a solution that works with vcpkg's policies. Now, onto #17111... |
I so agree ... |
wxUSE_STL defaults to OFF so that is how it is in Linux
distribution packages. Downstream projects developed with
wxUSE_STL=ON are not necessarily compatible with wxUSE_STL=OFF
without modification. So, by default, go with wxWidgets' default
for compatibility with downstream codebases. vcpkg users who need
wxUSE_STL=ON can still do so by simply opting into the new 'stl'
feature of this port.
https://forums.wxwidgets.org/viewtopic.php?p=165208
Describe the pull request
What does your PR fix?
Fixes downstream applications not building with wxwidgets port
Which triplets are supported/not supported? Have you updated the CI baseline?
all
Does your PR follow the maintainer guide?
yes
If you have added/updated a port: Have you run
./vcpkg x-add-version --all
and committed the result?Yes