-
Notifications
You must be signed in to change notification settings - Fork 6.6k
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
[github_actions] improve port compatibility #23202
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.
You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:
ports/libpng/vcpkg.json
ports/tiff/vcpkg.json
Valid values for the license field can be found in the documentation
did it find nothing or did it find the wrong file/path? CMake just does:
|
it finds wrong headers already installed in system folders (Mono), and on top of that they are incompatible with the ones provided by vcpkg (API breaking changes) |
That doesn't make sense. System paths should be searched after cmake paths. according to https://cmake.org/cmake/help/latest/command/find_path.html vcpkg paths should be found under rule 2. The system stuff is rule 5/6 |
yes, it doesn't make sense, i agree. But you can try on a osx github action runner and see by yourself. |
it's very strange also because the |
adding to the problems, i cannot just remove Mono at the beginning, because I need it to run nuget and setup vcpkg artifact storage 😄 |
I feel like strange is not the right argumentation to merge this PR. Maybe use a overlay until you (or someone) figured out what is really going on. In general, I would expect osx to behave similar so linux so only seeing it on osx is kind of strange too.
since
it could be that something nuked |
GDAL added this: |
i feel confident that under similar setup also windows or linux would show same problem without full investigation, i'd say that the problem lies in the search order defined inside the module: for example, png.h is under include/libpng16 for us, but the module first searches for png.h in include/libpng, which might roam in system folder before trying with different paths in following lines. |
Because @dg0yt already found the real reason.
no that is not how it works. |
I disagree. It is about macOS frameworks. See the the link in my other comment. |
… unnecessary mod to giflib
ff39f44
to
c3f21ff
Compare
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.
You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:
ports/giflib/vcpkg.json
Valid values for the license field can be found in the documentation
@dg0yt @Neumann-A thanks for the very constructive review |
cc @strega-nil-ms since she has more knowledge of osx? |
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 appears to be in keeping with what vcpkg wants to do (have our bits be found first) based on my reading of the documentation for CMAKE_FIND_FRAMEWORK
.
We may want to kick off a full rebuild since this touches buildsystems/vcpkg.cmake
and we found out recently that checking that is probably warranted :)
What you did is how I did it before but @ras0219 pointed out that you can queue the build against refs/pull/#/head by typing in the box rather than using the dropdown: |
x64-osx, the only one that would have been touched by this PR, is green. |
there is a warning when using this PR:
|
@cenit Maybe related to the cmake update? |
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.
You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:
ports/giflib/vcpkg.json
Valid values for the license field can be found in the documentation
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
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.
You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:
ports/giflib/vcpkg.json
Valid values for the license field can be found in the documentation
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.
You have modified or added at least one vcpkg.json where a "license" field is missing.
If you feel able to do so, please consider adding a "license" field to the following files:
ports/giflib/vcpkg.json
Valid values for the license field can be found in the documentation
anything more requested here? thie related issue is really blocking here for us, I still hope for a fix (this PR or anything else that might help) |
It probably will get fixed but it shouldn't be blocking you. As I said you can simply pass the same parameter directly to cmake in the meantime. |
it would require a tool chain chain loaded and more customizations for github and osx than what is reasonable for a uniform script. Passing the variable to cmake in the downstream project is not propagated upstream in the vcpkg dependencies, if this is what you mean (i think not because you know cmake well) |
many thanks for merging ❤️ |
Sorry for necroing this thread... deprioritizing macOS frameworks has some possibly unintended consequences when it comes to system frameworks. As a specific example, if the user has XQuartz (a popular X11 server for macOS) installed, CMake will start linking its OpenGL implementation at We ran into this in Mixxx (mixxxdj/mixxx#13080), but it turns out to affect other OpenGL-based apps, causing downstream build breakages in some vcpkg ports that depend on Qt, see #38141 |
is it possible to work on the OpenGL port to promote macOS system framework in that case? |
Use a parameter to avoid CMake looking for system frameworks on macOS before vcpkg-provided libs.
Reverts #22141 which is unnecessary (if this PR works and is considered effective)