Repository navigation
[UR][CMake] Keep UR dependency installs out of the sycl component - #23712
Open
lukaszstolarczuk wants to merge 1 commit into
Open
lukaszstolarczuk wants to merge 1 commit into
lukaszstolarczuk wants to merge 1 commit into
Conversation
Since llvm/llvm-project@8673c6f2cda8 ("[CMake] Give LLVM_EXTERNAL_PROJECTS installs a default component"), llvm/tools/CMakeLists.txt sets CMAKE_INSTALL_DEFAULT_COMPONENT_NAME to the external project name while adding it, i.e. "sycl" for this tree. Any install() rule without an explicit COMPONENT under the sycl external project then lands in the "sycl" component instead of the never-deployed "Unspecified" one. Unified Runtime's fetched dependencies (UMF in particular) install files without a COMPONENT, so after the WW44 pulldown deploy-sycl-toolchain started shipping umf libs, headers, and configs in the toolchain. Save CMAKE_INSTALL_DEFAULT_COMPONENT_NAME and reset it to "Unspecified" around the UR add_subdirectory, restoring the pre-pulldown behavior. UR's own install rules all set an explicit COMPONENT and are unaffected; the intentional unified-memory-framework component (shared libumf only) keeps working. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Author
|
Working "Deploy sycl" in nightly before: and broken after the pulldown: |
bratpiorka
reviewed
Nov 4, 2026
| # Keep such projects in the never-deployed "Unspecified" component instead; | ||
| # UR's own install rules all set an explicit COMPONENT and are unaffected. | ||
| set(_ur_saved_default_component "${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME}") | ||
| set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "Unspecified") |
Contributor
There was a problem hiding this comment.
I think that instead of using the push/pop WA, we could just set COMPONENT in all UR targets, since we have full control over the UR CMake files.
Contributor
Author
There was a problem hiding this comment.
I think this PR covers that:
#23722
we can/should merge @kswiecicki change instead of this, I believe.
sidenote: if every any component forgets to add COMPONENT name we may silently let it in into sycl's installation.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Since 8673c6f2cda8, llvm/tools/CMakeLists.txt sets CMAKE_INSTALL_DEFAULT_COMPONENT_NAME to the external project name while adding it, i.e. "sycl" for this tree. Any install() rule without an explicit COMPONENT under the sycl external project then lands in the "sycl" component instead of the never-deployed "Unspecified" one.
Unified Runtime's fetched dependencies (UMF in particular) install files without a COMPONENT, so after the WW44 pulldown deploy-sycl-toolchain started shipping umf libs, headers, and configs in the toolchain.
Save CMAKE_INSTALL_DEFAULT_COMPONENT_NAME and reset it to "Unspecified" around the UR add_subdirectory, restoring the pre-pulldown behavior. UR's own install rules all set an explicit COMPONENT and are unaffected; the intentional unified-memory-framework component (shared libumf only) keeps working.
Ref. #23676
Fixes: #23708