[Openmp-commits] [openmp] [OpenMP] Fix missing install-openmp component (PR #197603)
Joseph Huber via Openmp-commits
openmp-commits at lists.llvm.org
Wed May 13 18:57:19 PDT 2026
https://github.com/jhuber6 created https://github.com/llvm/llvm-project/pull/197603
Summary:
This pattern is consistent throughout all the runtimes and is what the
top-level `install-openmp-<triple>` corresponds to. It should be
provided and used.
>From 7cb1a1bc02892ba91b755378b070cbbe0ad93ce8 Mon Sep 17 00:00:00 2001
From: Joseph Huber <huberjn at outlook.com>
Date: Wed, 13 May 2026 20:33:10 -0500
Subject: [PATCH] [OpenMP] Fix missing install-openmp component
Summary:
This pattern is consistent throughout all the runtimes and is what the
top-level `install-openmp-<triple>` corresponds to. It should be
provided and used.
---
openmp/CMakeLists.txt | 9 +++++++++
openmp/device/CMakeLists.txt | 6 ++++--
openmp/docs/CMakeLists.txt | 3 ++-
openmp/libompd/gdb-plugin/CMakeLists.txt | 2 +-
openmp/libompd/src/CMakeLists.txt | 3 ++-
openmp/module/CMakeLists.txt | 1 +
openmp/runtime/src/CMakeLists.txt | 19 ++++++++++---------
openmp/tools/Modules/CMakeLists.txt | 3 ++-
openmp/tools/archer/CMakeLists.txt | 4 ++--
openmp/tools/multiplex/CMakeLists.txt | 2 +-
10 files changed, 34 insertions(+), 18 deletions(-)
diff --git a/openmp/CMakeLists.txt b/openmp/CMakeLists.txt
index 9a0f809a1fc02..08e6c97d43c43 100644
--- a/openmp/CMakeLists.txt
+++ b/openmp/CMakeLists.txt
@@ -151,6 +151,15 @@ add_custom_target(openmp ALL
COMMENT "OpenMP meta-target. Use 'ninja openmp' to build all OpenMP runtime targets."
)
+if (NOT CMAKE_CONFIGURATION_TYPES)
+ add_custom_target(install-openmp
+ DEPENDS openmp
+ COMMAND "${CMAKE_COMMAND}" --install "${CMAKE_BINARY_DIR}" --component openmp)
+ add_custom_target(install-openmp-stripped
+ DEPENDS openmp
+ COMMAND "${CMAKE_COMMAND}" --install "${CMAKE_BINARY_DIR}" --component openmp --strip)
+endif()
+
# Use the current compiler target to determine the appropriate runtime to build.
if("${LLVM_DEFAULT_TARGET_TRIPLE}" MATCHES "^amdgcn|^nvptx|^spirv64" OR
"${CMAKE_CXX_COMPILER_TARGET}" MATCHES "^amdgcn|^nvptx|^spirv64")
diff --git a/openmp/device/CMakeLists.txt b/openmp/device/CMakeLists.txt
index 3100fa6c4dd14..11f474a5ed7f9 100644
--- a/openmp/device/CMakeLists.txt
+++ b/openmp/device/CMakeLists.txt
@@ -91,7 +91,8 @@ if(LLVM_DEFAULT_TARGET_TRIPLE)
endif()
install(TARGETS libompdevice
PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ
- DESTINATION ${OPENMP_INSTALL_LIBDIR})
+ DESTINATION ${OPENMP_INSTALL_LIBDIR}
+ COMPONENT openmp)
add_library(ompdevice.all_objs OBJECT IMPORTED)
set_property(TARGET ompdevice.all_objs APPEND PROPERTY IMPORTED_OBJECTS
@@ -105,6 +106,7 @@ set_target_properties(ompdevice PROPERTIES
LINKER_LANGUAGE CXX
)
target_link_libraries(ompdevice PRIVATE ompdevice.all_objs)
-install(TARGETS ompdevice ARCHIVE DESTINATION "${OPENMP_INSTALL_LIBDIR}")
+install(TARGETS ompdevice ARCHIVE DESTINATION "${OPENMP_INSTALL_LIBDIR}"
+ COMPONENT openmp)
openmp_register_meta_dep(ompdevice)
diff --git a/openmp/docs/CMakeLists.txt b/openmp/docs/CMakeLists.txt
index 018942cf0e9dc..1a807b172a762 100644
--- a/openmp/docs/CMakeLists.txt
+++ b/openmp/docs/CMakeLists.txt
@@ -77,7 +77,8 @@ if (LLVM_ENABLE_DOXYGEN)
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen/html
- DESTINATION docs/html)
+ DESTINATION docs/html
+ COMPONENT openmp)
endif()
endif()
endif()
diff --git a/openmp/libompd/gdb-plugin/CMakeLists.txt b/openmp/libompd/gdb-plugin/CMakeLists.txt
index f882f6d2cd9e4..b55bc4d382d99 100644
--- a/openmp/libompd/gdb-plugin/CMakeLists.txt
+++ b/openmp/libompd/gdb-plugin/CMakeLists.txt
@@ -38,5 +38,5 @@ set_target_properties (ompdModule PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_C
openmp_register_meta_dep(ompd_gdb_plugin ompdModule)
-install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/python-module/ompd DESTINATION share/gdb/python/ PATTERN ompdModule.so PERMISSIONS OWNER_READ WORLD_READ GROUP_READ OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
+install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/python-module/ompd DESTINATION share/gdb/python/ PATTERN ompdModule.so PERMISSIONS OWNER_READ WORLD_READ GROUP_READ OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE COMPONENT openmp)
diff --git a/openmp/libompd/src/CMakeLists.txt b/openmp/libompd/src/CMakeLists.txt
index f9804f746158b..78eed8f5e3387 100644
--- a/openmp/libompd/src/CMakeLists.txt
+++ b/openmp/libompd/src/CMakeLists.txt
@@ -50,4 +50,5 @@ include_directories (
INSTALL( TARGETS ompd
LIBRARY DESTINATION ${OPENMP_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${OPENMP_INSTALL_LIBDIR}
- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" )
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ COMPONENT openmp)
diff --git a/openmp/module/CMakeLists.txt b/openmp/module/CMakeLists.txt
index 0db23daf9a4e7..9265e70dd78cb 100644
--- a/openmp/module/CMakeLists.txt
+++ b/openmp/module/CMakeLists.txt
@@ -85,6 +85,7 @@ if (BUILD_FORTRAN_MODULES)
"${CMAKE_CURRENT_BINARY_DIR}/../runtime/src/omp_lib_kinds.mod"
"${CMAKE_CURRENT_BINARY_DIR}/../runtime/src/omp_lib.h"
DESTINATION ${destination}
+ COMPONENT openmp
)
endif ()
diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
index f4e000d7ccc2b..463b8fe2f14aa 100644
--- a/openmp/runtime/src/CMakeLists.txt
+++ b/openmp/runtime/src/CMakeLists.txt
@@ -412,20 +412,20 @@ set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS omp)
# We want to install libomp in ${DESTDIR}/${CMAKE_INSTALL_FULL_LIBDIR}
# We want to install headers in ${DESTDIR}/${CMAKE_INSTALL_FULL_INCLUDEDIR}
if(WIN32)
- install(TARGETS omp ${export_to_llvmexports} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
- install(TARGETS ${LIBOMP_IMP_LIB_TARGET} ARCHIVE DESTINATION "${OPENMP_INSTALL_LIBDIR}")
+ install(TARGETS omp ${export_to_llvmexports} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT openmp)
+ install(TARGETS ${LIBOMP_IMP_LIB_TARGET} ARCHIVE DESTINATION "${OPENMP_INSTALL_LIBDIR}" COMPONENT openmp)
# Create aliases (regular copies) of the library for backwards compatibility
set(LIBOMP_ALIASES "libiomp5md")
foreach(alias IN LISTS LIBOMP_ALIASES)
install(CODE "execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E copy \"${LIBOMP_LIB_FILE}\"
- \"${alias}${LIBOMP_LIBRARY_SUFFIX}\" WORKING_DIRECTORY \"${CMAKE_INSTALL_FULL_BINDIR}\")")
+ \"${alias}${LIBOMP_LIBRARY_SUFFIX}\" WORKING_DIRECTORY \"${CMAKE_INSTALL_FULL_BINDIR}\")" COMPONENT openmp)
extend_path(outdir "${CMAKE_INSTALL_PREFIX}" "${OPENMP_INSTALL_LIBDIR}")
install(CODE "execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E copy \"${LIBOMP_IMP_LIB_FILE}\"
- \"${alias}${CMAKE_STATIC_LIBRARY_SUFFIX}\" WORKING_DIRECTORY \"${outdir}\")")
+ \"${alias}${CMAKE_STATIC_LIBRARY_SUFFIX}\" WORKING_DIRECTORY \"${outdir}\")" COMPONENT openmp)
endforeach()
else()
- install(TARGETS omp ${export_to_llvmexports} ${LIBOMP_INSTALL_KIND} DESTINATION "${OPENMP_INSTALL_LIBDIR}")
+ install(TARGETS omp ${export_to_llvmexports} ${LIBOMP_INSTALL_KIND} DESTINATION "${OPENMP_INSTALL_LIBDIR}" COMPONENT openmp)
if(LIBOMP_INSTALL_ALIASES)
# Create aliases (symlinks) of the library for backwards compatibility
@@ -440,12 +440,12 @@ else()
foreach(alias IN LISTS LIBOMP_ALIASES)
install(CODE "execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E create_symlink \"${LIBOMP_LIB_NAME}${LIBRARY_SUFFIX}\"
\"${alias}${LIBRARY_SUFFIX}\" WORKING_DIRECTORY
- \"\$ENV{DESTDIR}${outdir}\")")
+ \"\$ENV{DESTDIR}${outdir}\")" COMPONENT openmp)
endforeach()
if(LIBOMP_ENABLE_SHARED AND NOT AIX)
install(CODE "execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E create_symlink \"${LIBOMP_LIB_FILE}\"
\"${VERSIONED_LIBGOMP_NAME}\" WORKING_DIRECTORY
- \"\$ENV{DESTDIR}${outdir}\")")
+ \"\$ENV{DESTDIR}${outdir}\")" COMPONENT openmp)
endif()
endif()
endif()
@@ -454,10 +454,11 @@ install(
${LIBOMP_HEADERS_INTDIR}/omp.h
${LIBOMP_HEADERS_INTDIR}/ompx.h
DESTINATION ${LIBOMP_HEADERS_INSTALL_PATH}
+ COMPONENT openmp
)
if(LIBOMP_OMPT_SUPPORT)
- install(FILES ${LIBOMP_HEADERS_INTDIR}/omp-tools.h DESTINATION ${LIBOMP_HEADERS_INSTALL_PATH})
+ install(FILES ${LIBOMP_HEADERS_INTDIR}/omp-tools.h DESTINATION ${LIBOMP_HEADERS_INSTALL_PATH} COMPONENT openmp)
# install under legacy name ompt.h
- install(FILES ${LIBOMP_HEADERS_INTDIR}/omp-tools.h DESTINATION ${LIBOMP_HEADERS_INSTALL_PATH} RENAME ompt.h)
+ install(FILES ${LIBOMP_HEADERS_INTDIR}/omp-tools.h DESTINATION ${LIBOMP_HEADERS_INSTALL_PATH} RENAME ompt.h COMPONENT openmp)
set(LIBOMP_OMP_TOOLS_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR} PARENT_SCOPE)
endif()
diff --git a/openmp/tools/Modules/CMakeLists.txt b/openmp/tools/Modules/CMakeLists.txt
index 22d818eea72d6..7739b9dff4ffe 100644
--- a/openmp/tools/Modules/CMakeLists.txt
+++ b/openmp/tools/Modules/CMakeLists.txt
@@ -12,4 +12,5 @@
install(FILES "FindOpenMPTarget.cmake"
- DESTINATION "${OPENMP_INSTALL_LIBDIR}/cmake/openmp")
+ DESTINATION "${OPENMP_INSTALL_LIBDIR}/cmake/openmp"
+ COMPONENT openmp)
diff --git a/openmp/tools/archer/CMakeLists.txt b/openmp/tools/archer/CMakeLists.txt
index c2c5b4cd04b3e..68008d5043507 100644
--- a/openmp/tools/archer/CMakeLists.txt
+++ b/openmp/tools/archer/CMakeLists.txt
@@ -31,8 +31,8 @@ if(LIBOMP_OMPT_SUPPORT AND LIBOMP_ARCHER_SUPPORT)
endif()
install(TARGETS archer archer_static
- LIBRARY DESTINATION ${OPENMP_INSTALL_LIBDIR}
- ARCHIVE DESTINATION ${OPENMP_INSTALL_LIBDIR})
+ LIBRARY DESTINATION ${OPENMP_INSTALL_LIBDIR} COMPONENT openmp
+ ARCHIVE DESTINATION ${OPENMP_INSTALL_LIBDIR} COMPONENT openmp)
openmp_register_meta_dep(archer archer_static)
diff --git a/openmp/tools/multiplex/CMakeLists.txt b/openmp/tools/multiplex/CMakeLists.txt
index afc7fc5aa44ad..646364fd9e1ac 100644
--- a/openmp/tools/multiplex/CMakeLists.txt
+++ b/openmp/tools/multiplex/CMakeLists.txt
@@ -4,7 +4,7 @@ if(LIBOMP_OMPT_SUPPORT)
add_library(ompt-multiplex INTERFACE)
target_include_directories(ompt-multiplex INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
- install(FILES ompt-multiplex.h DESTINATION "${LIBOMP_HEADERS_INSTALL_PATH}")
+ install(FILES ompt-multiplex.h DESTINATION "${LIBOMP_HEADERS_INSTALL_PATH}" COMPONENT openmp)
add_subdirectory(tests)
endif()
More information about the Openmp-commits
mailing list