-
Notifications
You must be signed in to change notification settings - Fork 197
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
Use rapids-cmake new COMPONENT exporting feature #1154
Use rapids-cmake new COMPONENT exporting feature #1154
Conversation
a013790
to
2a9862e
Compare
613d086
to
36fa38a
Compare
Codecov ReportBase: 87.99% // Head: 87.99% // No change to project coverage 👍
Additional details and impacted files@@ Coverage Diff @@
## branch-23.02 #1154 +/- ##
=============================================
Coverage 87.99% 87.99%
=============================================
Files 21 21
Lines 483 483
=============================================
Hits 425 425
Misses 58 58 Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
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.
LGTM. I notice this is still a draft. Is it ready to go into 23.02 or are you still working on it?
36fa38a
to
f87323c
Compare
Still a draft as the rapids-cmake feature hasn't been merged yet. I expect we are going to have to slip this to 23.04 given that rapids-cmake is in burndown |
@robertmaynard just pinging to see how you feel about this PR. Do you think this is going to make it for 23.04 or should we push? |
Aiming to have the rapids-cmake changes merged tomorrow |
257e910
to
84a8935
Compare
84a8935
to
d1115e1
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.
The component changes themselves look good, but we raised some important questions about exactly what the packages should look like now that we need to resolve.
set(raft_export_sets raft-compiled-exports raft-distributed-exports) | ||
if(TARGET raft_lib) | ||
list(APPEND raft_components compiled) | ||
list(APPEND raft_export_sets raft-compiled-lib-exports) |
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.
At this point I'm a bit confused by the different targets and export sets that we have in raft. Why do we need both the raft_compiled
and raft_lib
targets? It used to be necessary for the nn/dist targets so that calling code could use either component independently as header-only or precompiled, but now why can't the raft
target just be the header-only target and raft_compiled
always be precompiled? And that stems from my other question, why do we need both raft-compiled-exports
and raft-compiled-lib-exports
?
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.
@vyasr from my understanding at this point, the answer is "we don't need both raft_compiled
and raft_lib
anymore, but at the current time they aren't really causing harm, so we aren't in an immediate rush to remove them". @robertmaynard please correct me if that assertion is wrong.
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.
The raft_compiled
target is created even when RAFT_COMPILE_LIBRARY
is turned off, so one solution for proper invariant behavior when generating the libraft-headers and libraft was to have the current organization.
If we are okay with making the raft::compiled
target conditional all this logic can be removed and we could have a single target raft_compiled
and export set ( raft-compiled-exports
). If we are good with this, I would be happy to open a PR that does these changes.
/merge |
Switches raft over to the upcoming raft_export(
COMPONET
) support.This allows raft to not require to support custom exporting logic