-
Notifications
You must be signed in to change notification settings - Fork 61
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
Refactor EVE's exported CMake target and installation #1336
Conversation
Hi! Thanks for this very thorough PR! We've been eye-balling our CMake install process for a while and I am very happy someone with proper skills took a look at it. Some points to go forward:
I think that once you clean up the docs/ part, we can run that as an actual PR and see how it goes. |
Awesome that you took the time, thanks. @jfalcou will do the review - I don't know any of this, just wanted to say thanks. |
@jfalcou @DenisYaroshevskiy Thanks for the quick look over! As for the Doxygen documentation, I have removed all of the generated Doxygen artifacts from this PR and let you handle generation in the most appropriate manner. The CI failures for these seem to come from pulling the export-install branch, but I really haven't sufficiently looked. I'll get back to the FetchContent and CPM integration tests after work. |
The CPM/FetchContent fails are probably due to the fact I try to fetch the from our repo. So whenever a PR from outside is made, it can't find the branch on jfalcou/eve. I probably need to grab the proper git ref for the PR and pull that. |
I've made the PR official so we can review the code in the meantime, and then we can address the CI checks, dealing with pulling proper git refs, after. |
0fee053
to
5870f59
Compare
So yeah the Fetch and CPM tests fail because we do stuff like
|
5870f59
to
180c8e7
Compare
cf1d452
to
6163af9
Compare
428454a
to
03085a6
Compare
@jfalcou I've rebased this branch on #1336 to combine the integration tests updates, specifically for the CI integration tests for this forked PR. Although those are now working, all of the other GitHub Actions CI checks are now failing due to a weird permission error within the CI environment. Whenever you happen to be free, could you please take a peek at their details to see if you recognize the issue? |
Oh something probably stopped our runner. I'll check if they need to be rebooted or something. That's unrelated to what you did. |
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.
Very last comment before merging
@@ -1,6 +1,7 @@ | |||
# Container image that runs your code | |||
FROM jfalcou/compilers:v3 | |||
|
|||
|
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.
let's be pedantic for 0.5ns.
Can we remove that noisy commit? I guess this new line is accidental.
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.
Being pedantic is good.
I actually placed that line there purposefully to change a Dockerfile, causing rebuilding of the docker image. I did this in an attempt to fix those mysterious CI errors. It didn't work.
I will clean up!
doc/page01_info.md
Outdated
``` | ||
|
||
> If a custom installation prefix was used, ensure your **EVE** installation is within **CMake's** | ||
search path with the use of the **CMake** variables **eve_ROOT** (CMake 3.12), **eve_DIR**, or |
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.
Should we remove the 3.12 remark ?
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.
Since we are now saying 3.19 is the minimum, yes. Thanks!
doc/page01_info.md
Outdated
some time. We recommend compiling in parallel using `-j`. | ||
| `EVE_BUILD_TEST` | Enable unit tests for **EVE** (`ON` by default). | `unit` | | ||
| `EVE_BUILD_BENCHMARKS`| Enable benchmark tests for **EVE** (`OFF` by default). | `benchmarks` | | ||
| `EVE_BUILD_RANDOM` | Enable random tests for **EVE** (`OFF` by default). | `random` | |
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.
Didn't we had a EVE_BUILD_INTEGRATION
entry at some point or did I dreamt too deep ?
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.
Yes, that option was added as part of #1336 to enable the integration tests that are now registered with CTest. Thanks for catching my not updating this documentation section to match! I'll do that.
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.
I added these docs and made an aggregated integration
target to run the integration tests. This target was really just to have a target to put in the table, though ;)
Thanks a lot for this amazing contribution! |
Good work, @justend29 |
Happy to help, guys! Thanks for the amazing project! |
Hello!
While using EVE for the first time via CMake, I noticed a few points of friction. Instead of creating a GitHub issue, I thought it would be most beneficial to arrive with solutions instead of problems. As this is my first PR into EVE, I've only made a draft PR.
The CMake issues were as follows
/usr/lib
, preventing consuming libraries, including those installed by my system package manager, from finding it without explicitly specifying its path. CMake's search paths are specified in their documentation, hereFurthermore, I noticed a comment in EVE's installation CMake module that mentioned it was installing EVE to versioned directories. It wasn't actually doing this
Changes
EVE....
::
.Testing
I've tested installing EVE in both default and custom installation locations. In both of these, a separate project and the integration test within EVE were able to find, link, and use EVE with the CMake language commands added to the documentation.
I've also gone through the procedure of building and running the
unit.meta.exe
unit test in the CI docker container detailed in the internal documentation. This was mostly a smoke test to ensure I didn't completely bork EVE. Running the full CI suite will be a better indication of this.