-
Notifications
You must be signed in to change notification settings - Fork 6.5k
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
[vcpkg|scripts] add configure cache to vcpkg_configure_make #22473
base: master
Are you sure you want to change the base?
Conversation
How to mix with a per-port cache file? |
@dg0yt simply overwrite the value or try to merge the two files in the portfile. |
@dg0yt: Also is gettext maybe not using |
I explicitly added a shared cache to port gettext, to speed up the build time (which is mostly configuration tests). |
@dg0yt In the gettext case I would probably add |
Any progress? |
# Conflicts: # scripts/cmake/vcpkg_configure_make.cmake
Maybe it should be skipped for most triplets until mature enough? Too much world rebuild congestion ATM. |
I think it can be done if we can explicitly modify the affected parts and detect them. |
He is just saying I should skip merging this PR with master until all the other WR PRs have been solved. |
With the scripts, skipping some triplets is difficult indeed, unless hacking it into some other script which is not hashed. |
There is #24823 now. Do you want to update and finish this PR for rolling up the changes to the same script? |
@dg0yt I think the MS team hasn't decided to merge this approach yet? So it probably doesn't make sense to block the bugfix on this PR. |
I think we should go through the configuration process completely every time instead of using a cache that might contain problems? |
a) it doesn't make sense to always run all of the configure test. Especially if the result is know (e.g. checks for if the compiler is GNU)
since when? The build folder with the configure results gets deleted..... |
Reminding the reviewers that this configuration process is one of the slow parts of autotools builds on windows, because a) it relies on running many programs, and b) running programs is particular expensive on Windows due to passing the border betweens Windows world and mingw/msys2 subsystem world. So it least fairly immutable properties of Windows triplets should be cached/prefefined globally. |
# Conflicts: # docs/maintainers/vcpkg_configure_make.md # scripts/cmake/vcpkg_configure_make.cmake
and update release only triplet
My PC:
After:
so seems to shave a few seconds of. Probably needs more values to be added to the cache. |
@dg0yt: any ideas what the expensive configure checks are? At least the one I used here are basically so fast that they doesn't seem to matter. |
I'm not sure if we are looking at the same thing. For gettext, it is like this:
So the expensive thing is to do the same test several times. Passing a cache file into the top-level And this could be said about all packages that use gnulib: They do similar tests although the result can be expected to reproduce the same result for a given triplet, unless gaps are filled by installing ports. That's why capturing and caching |
For me it seems like some tests are rerun regardless. The configure script does not have a way to skip some tests if the variables are already defined. I mean it still saves a few seconds but I was honestly expecting a lot more considering how long configure sometimes takes.
|
Also "debug" and "release" do the same tests. But in |
And after |
If the sources are always copied before configure I'll agree with that.
Yeah it is but I expected configure in general to be faster. |
Apart from being sequential, |
Adds the possibility to add a cache file for make to avoid running configure checks. (Needs additional ABI hashing for the cache files.)
depends on a tool change to include some files in the binary hash