-
Notifications
You must be signed in to change notification settings - Fork 902
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
[REVIEW] ENH Allow arbitrary CMake config options in build.sh #8996
[REVIEW] ENH Allow arbitrary CMake config options in build.sh #8996
Conversation
I would solicit feedback from @robertmaynard or @trxcllnt. My understanding of |
Codecov Report
@@ Coverage Diff @@
## branch-21.10 #8996 +/- ##
===============================================
Coverage ? 10.65%
===============================================
Files ? 114
Lines ? 19077
Branches ? 0
===============================================
Hits ? 2033
Misses ? 17044
Partials ? 0 Continue to review full report at Codecov.
|
The purpose of
This isn't just a script for users, but for automation as well. Any other projects that may utilize cuDF (or other RAPIDS libraries source code) has access to this script which minimizes maintenance across the board. If a docker image is using CMake and other build tools directly, any changes to this process will require changes to multiple areas, which is difficult to maintain, especially as RAPIDS starts expanding. A project that utilizes For example, this PR: 61091a0 This change was one that affected the build commands being invoked. If it weren't for this script existing, we would have to edit these commands everywhere, not only in our own CI scripts (which this is utilized in), but also across our docker repo and any Jenkins builds that may be using this. It would be difficult to track, and the cost of maintenance for this script is much smaller than however many instances of build invocation we have across our infra. |
rerun tests |
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.
In general this option doesn't seem to be work as documented:
All of the following fail:
./build.sh libcudf --cmake-args=-DVALUE=TRUE
./build.sh libcudf --cmake-args="-DVALUE=TRUE"
./build.sh libcudf --cmake-args=\\\"-DVALUE=TRUE\\\"
./build.sh libcudf --cmake-args=\\\"--log-level=VERBOSE\\\"
./build.sh libcudf --cmake-args="--log-level=VERBOSE"
./build.sh libcudf --cmake-args=--log-level=VERBOSE
The error was caused by some weird interaction when --cmake-args was the last argument, I was getting error output whenever I had an argument following it. So good catch on this. The correct formatting is a single escape character, so all of these are expected failures. If the documentation is unclear let me know. Here's a screenshot of these commands failing in a better way after the latest changes, my environment isn't setup to build cudf so there are CMake errors. I formatted your example in the expected format to show that they do indeed make it to the cmake configuration step. |
rerun tests |
New logic is working great locally. Currently the script silently mangles multiple |
While testing the latest commit I found that leaving out |
@gpucibot merge |
rerun tests |
This PR adds a feature to the root
build.sh
script which allows it to consume any arbitrary CMake args and add them to the CMake configuration step.Some local testing:
--cmake-args
New
--help
output