-
Notifications
You must be signed in to change notification settings - Fork 324
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
Add newer versions of EASTL and update install script. #1403
base: main
Are you sure you want to change the base?
Conversation
bin/yaml/libraries.yaml
Outdated
after_stage_script: | ||
- mkdir build | ||
- cd build | ||
- /opt/compiler-explorer/cmake/bin/cmake .. |
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.
It is slightly unfortunate that we now run cmake
even on the versions for which it is not necessary (the ones not using FetchContent
), hopefully this isn't a big deal but I'm happy to hear about alternatives if anyone thinks of one.
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.
Which versions? We can solve that by making a new section and only applying the after_stage_script
to those. I'll try out in a branch and merge if I can get it to work.
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.
Hi @mattgodbolt,
We can solve that by making a new section and only applying the after_stage_script to those.
Thanks for your comment, I've changed the code a bit follow what benchmark
is doing and this seems to work properly without doing any unnecessary work. I'm not sure if that's exactly what you were suggesting, or if there's a better way, let me know what you think.
Converting this to a draft given that EASTL might have to go back to submodules after all. (see electronicarts/EASTL#539). Apologies for the churn. |
Let me know when/if you're ready and I can help with the changes (ping me on Discord or here) |
I still don't know what will happen with future versions of EASTL wrt going back to submodules, but either way I think this can be merged so we get up to date versions of EASTL working. |
maybe it's better to switch over to building anyway ( |
I think I might be missing a step in my local testing to get things built. I'll describe what I've tried and what I'm seeing to see if you spot what I'm missing: To simplify, I'm only testing the version which isn't using submodules anymore and is using
Then I run
Which gets the source of that version of eastl into my As a shot in the dark I tried
I suspect I'm missing something so that EASTL is actually built. The other part is that even if I manage to build EASTL the include paths would still need fixing up (unless cmake informs the build command used by compiler explorer for cmake type libraries?). When EASTL was using submodules for dependencies we knew exactly where the dependent headers where located so we could add the dependent include paths to the compile command (see this as an example). But, now that it's using Admittedly, if we know how EASTL will be built and where Cmake will end up putting those files we can add the include directory to the command in the You're right that EASTL has some source though so it'd be nice if we could get it building. |
There's 2 "interesting" things in this change (aside from the boring "just add new versions" part):
recursive: false
: EASTL suffered from a cyclical submodule dependency fiasco (see Circular submodule dependency causes recursive clones or submodule updates to fail electronicarts/EASTL#301), I actually don't know how this worked before. When I tried to doce_install install eastl
locally I'd hit the infinite recursion issue, this no longer occurs if we opt out of a recursive clone.after_stage_script
: starting in version3.21.23
EASTL moved away from submodule dependencies to potentially fix the circular dependency fiasco (see electronicarts/EASTL@c530255) and replaced them with CMake's FetchContent functionality. This script is an attempt to pull out the only non-test dependency (EABase) and put it in EASTL's include path so the parts of EASTL which do#include <EABase/foo.h>
still work.Tested running
ce_install install eastl
in a local instance of CE and things work as expected with all versions.The corresponding change in
compiler-explorer
is compiler-explorer/compiler-explorer#6816