[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