[llvm] [ORC-RT] Initial check-in for a new, top-level ORC runtime project. (PR #113499)

Lang Hames via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 28 13:52:08 PDT 2024


https://github.com/lhames updated https://github.com/llvm/llvm-project/pull/113499

>From fb7698d5d1377e85d1fd6a00fcbbc5a87cbb1323 Mon Sep 17 00:00:00 2001
From: Lang Hames <lhames at gmail.com>
Date: Thu, 24 Oct 2024 08:23:41 +1100
Subject: [PATCH 1/7] [ORC-RT] Initial check-in for a new, top-level ORC
 runtime project.

Includes CMake files and a placeholder header, library, and tool.

See discussion at
https://discourse.llvm.org/t/rfc-move-orc-executor-support-into-top-level-project/81049
---
 llvm/CMakeLists.txt                        |  2 +-
 llvm/projects/CMakeLists.txt               |  2 +
 orc-rt/CMakeLists.txt                      | 47 ++++++++++++++++++++++
 orc-rt/include/orc-rt-c/orc-rt.h           | 27 +++++++++++++
 orc-rt/lib/CMakeLists.txt                  |  1 +
 orc-rt/lib/prelink/CMakeLists.txt          |  1 +
 orc-rt/lib/prelink/orc-rt-prelink.cpp      |  5 +++
 orc-rt/tools/CMakeLists.txt                |  1 +
 orc-rt/tools/orc-executor/CMakeLists.txt   |  3 ++
 orc-rt/tools/orc-executor/orc-executor.cpp |  6 +++
 runtimes/CMakeLists.txt                    |  2 +-
 11 files changed, 95 insertions(+), 2 deletions(-)
 create mode 100644 orc-rt/CMakeLists.txt
 create mode 100644 orc-rt/include/orc-rt-c/orc-rt.h
 create mode 100644 orc-rt/lib/CMakeLists.txt
 create mode 100644 orc-rt/lib/prelink/CMakeLists.txt
 create mode 100644 orc-rt/lib/prelink/orc-rt-prelink.cpp
 create mode 100644 orc-rt/tools/CMakeLists.txt
 create mode 100644 orc-rt/tools/orc-executor/CMakeLists.txt
 create mode 100644 orc-rt/tools/orc-executor/orc-executor.cpp

diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
index cde4a999ea2e74..19e2eb9ae4108b 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -155,7 +155,7 @@ endif()
 # As we migrate runtimes to using the bootstrapping build, the set of default runtimes
 # should grow as we remove those runtimes from LLVM_ENABLE_PROJECTS above.
 set(LLVM_DEFAULT_RUNTIMES "libcxx;libcxxabi;libunwind")
-set(LLVM_SUPPORTED_RUNTIMES "libc;libunwind;libcxxabi;pstl;libcxx;compiler-rt;openmp;llvm-libgcc;offload")
+set(LLVM_SUPPORTED_RUNTIMES "libc;libunwind;libcxxabi;pstl;libcxx;compiler-rt;openmp;llvm-libgcc;offload;orc-rt")
 set(LLVM_ENABLE_RUNTIMES "" CACHE STRING
   "Semicolon-separated list of runtimes to build, or \"all\" (${LLVM_DEFAULT_RUNTIMES}). Supported runtimes are ${LLVM_SUPPORTED_RUNTIMES}.")
 if(LLVM_ENABLE_RUNTIMES STREQUAL "all")
diff --git a/llvm/projects/CMakeLists.txt b/llvm/projects/CMakeLists.txt
index 08f2fa522420b0..4bf482365feb1b 100644
--- a/llvm/projects/CMakeLists.txt
+++ b/llvm/projects/CMakeLists.txt
@@ -9,6 +9,7 @@ foreach(entry ${entries})
        (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/libcxx) AND
        (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/libcxxabi) AND
        (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/libunwind) AND
+       (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/orc-rt) AND
        (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/test-suite) AND
        (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/openmp) AND
        (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/cross-project-tests))
@@ -33,6 +34,7 @@ if(${LLVM_BUILD_RUNTIME})
     add_llvm_external_project(libc)
     add_llvm_external_project(libcxxabi)
     add_llvm_external_project(libcxx)
+    add_llvm_external_project(orc-rt)
   endif()
   if(NOT LLVM_BUILD_EXTERNAL_COMPILER_RT)
     add_llvm_external_project(compiler-rt)
diff --git a/orc-rt/CMakeLists.txt b/orc-rt/CMakeLists.txt
new file mode 100644
index 00000000000000..f48773e1bed7f0
--- /dev/null
+++ b/orc-rt/CMakeLists.txt
@@ -0,0 +1,47 @@
+# CMake build for ORC-RT.
+
+#===============================================================================
+# Setup Project
+#===============================================================================
+
+cmake_minimum_required(VERSION 3.20.0)
+set(LLVM_SUBPROJECT_TITLE "orc-rt")
+
+set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
+
+include(${LLVM_COMMON_CMAKE_UTILS}/Modules/CMakePolicy.cmake
+  NO_POLICY_SCOPE)
+
+# Add path for custom orc-rt modules.
+list(INSERT CMAKE_MODULE_PATH 0
+#  "${CMAKE_CURRENT_SOURCE_DIR}/cmake"
+#  "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules"
+  "${LLVM_COMMON_CMAKE_UTILS}"
+  "${LLVM_COMMON_CMAKE_UTILS}/Modules"
+  )
+
+set(CMAKE_FOLDER "orc-rt")
+
+set(LIBORCRT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+set(LIBORCRT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
+
+#===============================================================================
+# Setup CMake Options
+#===============================================================================
+
+set(CMAKE_CXX_STANDARD 17 CACHE STRING "C++ standard to conform to")
+set(CMAKE_CXX_STANDARD_REQUIRED YES)
+set(CMAKE_CXX_EXTENSIONS NO)
+
+#================================
+# Setup Compiler Flags
+#================================
+
+# Configure compiler. Must happen after setting the target flags.
+
+#===============================================================================
+# Setup Source Code
+#===============================================================================
+
+add_subdirectory(lib)
+add_subdirectory(tools)
diff --git a/orc-rt/include/orc-rt-c/orc-rt.h b/orc-rt/include/orc-rt-c/orc-rt.h
new file mode 100644
index 00000000000000..fdc0fd29976d4a
--- /dev/null
+++ b/orc-rt/include/orc-rt-c/orc-rt.h
@@ -0,0 +1,27 @@
+/*===- orc-rt-c/orc-rt.h - Placeholder header for orc-rt ----------*- C -*-===*\
+|*                                                                            *|
+|* Part of the LLVM Project, under the Apache License v2.0 with LLVM          *|
+|* Exceptions.                                                                *|
+|* See https://llvm.org/LICENSE.txt for license information.                  *|
+|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    *|
+|*                                                                            *|
+|*===----------------------------------------------------------------------===*|
+|*                                                                            *|
+|* Placeholder header for initial orc-rt checkin                              *|
+|*                                                                            *|
+\*===----------------------------------------------------------------------===*/
+
+#ifndef ORC_RT_C_ORC_RT_H
+#define ORC_RT_C_ORC_RT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void orc_rt(void);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* ORC_RT_C_ORC_RT_H */
diff --git a/orc-rt/lib/CMakeLists.txt b/orc-rt/lib/CMakeLists.txt
new file mode 100644
index 00000000000000..6080b84a51fcad
--- /dev/null
+++ b/orc-rt/lib/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(prelink)
diff --git a/orc-rt/lib/prelink/CMakeLists.txt b/orc-rt/lib/prelink/CMakeLists.txt
new file mode 100644
index 00000000000000..4e951e77764369
--- /dev/null
+++ b/orc-rt/lib/prelink/CMakeLists.txt
@@ -0,0 +1 @@
+add_library(orc-rt-prelink STATIC orc-rt-prelink.cpp)
diff --git a/orc-rt/lib/prelink/orc-rt-prelink.cpp b/orc-rt/lib/prelink/orc-rt-prelink.cpp
new file mode 100644
index 00000000000000..d24d5838a25cc9
--- /dev/null
+++ b/orc-rt/lib/prelink/orc-rt-prelink.cpp
@@ -0,0 +1,5 @@
+#include <stdio.h>
+
+extern "C" void orc_rt(void) {
+  printf("hello, world!\n");
+}
diff --git a/orc-rt/tools/CMakeLists.txt b/orc-rt/tools/CMakeLists.txt
new file mode 100644
index 00000000000000..fc78ea41316067
--- /dev/null
+++ b/orc-rt/tools/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(orc-executor)
diff --git a/orc-rt/tools/orc-executor/CMakeLists.txt b/orc-rt/tools/orc-executor/CMakeLists.txt
new file mode 100644
index 00000000000000..7750afc61c4b84
--- /dev/null
+++ b/orc-rt/tools/orc-executor/CMakeLists.txt
@@ -0,0 +1,3 @@
+add_executable(orc-executor orc-executor.cpp)
+target_link_libraries(orc-executor PRIVATE orc-rt-prelink)
+target_include_directories(orc-executor PRIVATE ../../include)
diff --git a/orc-rt/tools/orc-executor/orc-executor.cpp b/orc-rt/tools/orc-executor/orc-executor.cpp
new file mode 100644
index 00000000000000..4a03ac64710d22
--- /dev/null
+++ b/orc-rt/tools/orc-executor/orc-executor.cpp
@@ -0,0 +1,6 @@
+#include "orc-rt-c/orc-rt.h"
+
+int main(int argc, char *argv[]) {
+  orc_rt();
+  return 0;
+}
diff --git a/runtimes/CMakeLists.txt b/runtimes/CMakeLists.txt
index 830165c799c2ab..a99890180a0e88 100644
--- a/runtimes/CMakeLists.txt
+++ b/runtimes/CMakeLists.txt
@@ -23,7 +23,7 @@ list(INSERT CMAKE_MODULE_PATH 0
 
 # We order libraries to mirror roughly how they are layered, except that compiler-rt can depend
 # on libc++, so we put it after.
-set(LLVM_DEFAULT_RUNTIMES "libc;libunwind;libcxxabi;pstl;libcxx;compiler-rt;openmp;offload")
+set(LLVM_DEFAULT_RUNTIMES "libc;libunwind;libcxxabi;pstl;libcxx;compiler-rt;openmp;offload;orc-rt")
 set(LLVM_SUPPORTED_RUNTIMES "${LLVM_DEFAULT_RUNTIMES};llvm-libgcc")
 set(LLVM_ENABLE_RUNTIMES "" CACHE STRING
   "Semicolon-separated list of runtimes to build, or \"all\" (${LLVM_DEFAULT_RUNTIMES}). Supported runtimes are ${LLVM_SUPPORTED_RUNTIMES}.")

>From f801afbede00b602351ae8015c15aeab35ee278b Mon Sep 17 00:00:00 2001
From: Lang Hames <lhames at gmail.com>
Date: Thu, 24 Oct 2024 11:25:16 +1100
Subject: [PATCH 2/7] clang-format

---
 orc-rt/lib/prelink/orc-rt-prelink.cpp | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/orc-rt/lib/prelink/orc-rt-prelink.cpp b/orc-rt/lib/prelink/orc-rt-prelink.cpp
index d24d5838a25cc9..b97d9cd22a0a23 100644
--- a/orc-rt/lib/prelink/orc-rt-prelink.cpp
+++ b/orc-rt/lib/prelink/orc-rt-prelink.cpp
@@ -1,5 +1,3 @@
 #include <stdio.h>
 
-extern "C" void orc_rt(void) {
-  printf("hello, world!\n");
-}
+extern "C" void orc_rt(void) { printf("hello, world!\n"); }

>From 60116194ed806768e974b8e7b8fc75ce55a51dff Mon Sep 17 00:00:00 2001
From: Lang Hames <lhames at gmail.com>
Date: Mon, 28 Oct 2024 08:06:21 +1100
Subject: [PATCH 3/7] Simplify CMake files, add install support.

---
 orc-rt/CMakeLists.txt                         | 23 ++++---------------
 orc-rt/include/CMakeLists.txt                 | 16 +++++++++++++
 orc-rt/lib/CMakeLists.txt                     |  2 +-
 orc-rt/lib/executor/CMakeLists.txt            | 13 +++++++++++
 .../orc-rt-executor.cpp}                      |  0
 orc-rt/lib/prelink/CMakeLists.txt             |  1 -
 orc-rt/tools/orc-executor/CMakeLists.txt      |  2 +-
 7 files changed, 35 insertions(+), 22 deletions(-)
 create mode 100644 orc-rt/include/CMakeLists.txt
 create mode 100644 orc-rt/lib/executor/CMakeLists.txt
 rename orc-rt/lib/{prelink/orc-rt-prelink.cpp => executor/orc-rt-executor.cpp} (100%)
 delete mode 100644 orc-rt/lib/prelink/CMakeLists.txt

diff --git a/orc-rt/CMakeLists.txt b/orc-rt/CMakeLists.txt
index f48773e1bed7f0..2b170f51c861a7 100644
--- a/orc-rt/CMakeLists.txt
+++ b/orc-rt/CMakeLists.txt
@@ -5,25 +5,14 @@
 #===============================================================================
 
 cmake_minimum_required(VERSION 3.20.0)
-set(LLVM_SUBPROJECT_TITLE "orc-rt")
 
 set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
-
 include(${LLVM_COMMON_CMAKE_UTILS}/Modules/CMakePolicy.cmake
   NO_POLICY_SCOPE)
 
-# Add path for custom orc-rt modules.
-list(INSERT CMAKE_MODULE_PATH 0
-#  "${CMAKE_CURRENT_SOURCE_DIR}/cmake"
-#  "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules"
-  "${LLVM_COMMON_CMAKE_UTILS}"
-  "${LLVM_COMMON_CMAKE_UTILS}/Modules"
-  )
-
-set(CMAKE_FOLDER "orc-rt")
+project(LibOrcRT LANGUAGES C CXX ASM)
 
-set(LIBORCRT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
-set(LIBORCRT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
+include(GNUInstallDirs)
 
 #===============================================================================
 # Setup CMake Options
@@ -32,16 +21,12 @@ set(LIBORCRT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
 set(CMAKE_CXX_STANDARD 17 CACHE STRING "C++ standard to conform to")
 set(CMAKE_CXX_STANDARD_REQUIRED YES)
 set(CMAKE_CXX_EXTENSIONS NO)
-
-#================================
-# Setup Compiler Flags
-#================================
-
-# Configure compiler. Must happen after setting the target flags.
+set(CMAKE_FOLDER "orc-rt")
 
 #===============================================================================
 # Setup Source Code
 #===============================================================================
 
+add_subdirectory(include)
 add_subdirectory(lib)
 add_subdirectory(tools)
diff --git a/orc-rt/include/CMakeLists.txt b/orc-rt/include/CMakeLists.txt
new file mode 100644
index 00000000000000..9137e5823fe25f
--- /dev/null
+++ b/orc-rt/include/CMakeLists.txt
@@ -0,0 +1,16 @@
+set(files
+    orc-rt-c/orc-rt.h
+)
+
+add_library(orc-rt-headers INTERFACE)
+target_include_directories(orc-rt-headers INTERFACE
+    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    $<INSTALL_INTERFACE:include>
+)
+target_sources(orc-rt-headers
+    INTERFACE FILE_SET HEADERS
+    BASE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}
+    FILES ${files}
+)
+install(TARGETS orc-rt-headers
+    FILE_SET HEADERS DESTINATION include)
diff --git a/orc-rt/lib/CMakeLists.txt b/orc-rt/lib/CMakeLists.txt
index 6080b84a51fcad..993f2b8b52eb77 100644
--- a/orc-rt/lib/CMakeLists.txt
+++ b/orc-rt/lib/CMakeLists.txt
@@ -1 +1 @@
-add_subdirectory(prelink)
+add_subdirectory(executor)
diff --git a/orc-rt/lib/executor/CMakeLists.txt b/orc-rt/lib/executor/CMakeLists.txt
new file mode 100644
index 00000000000000..82d29455eb6dfe
--- /dev/null
+++ b/orc-rt/lib/executor/CMakeLists.txt
@@ -0,0 +1,13 @@
+set(files
+  orc-rt-executor.cpp
+  )
+
+add_library(orc-rt-executor STATIC ${files})
+target_link_libraries(orc-rt-executor
+  PUBLIC orc-rt-headers
+  )
+install(TARGETS orc-rt-executor
+  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          COMPONENT OrcRT_Development
+  PUBLIC_HEADER DESTINATION include COMPONENT OrcRT_Development
+)
diff --git a/orc-rt/lib/prelink/orc-rt-prelink.cpp b/orc-rt/lib/executor/orc-rt-executor.cpp
similarity index 100%
rename from orc-rt/lib/prelink/orc-rt-prelink.cpp
rename to orc-rt/lib/executor/orc-rt-executor.cpp
diff --git a/orc-rt/lib/prelink/CMakeLists.txt b/orc-rt/lib/prelink/CMakeLists.txt
deleted file mode 100644
index 4e951e77764369..00000000000000
--- a/orc-rt/lib/prelink/CMakeLists.txt
+++ /dev/null
@@ -1 +0,0 @@
-add_library(orc-rt-prelink STATIC orc-rt-prelink.cpp)
diff --git a/orc-rt/tools/orc-executor/CMakeLists.txt b/orc-rt/tools/orc-executor/CMakeLists.txt
index 7750afc61c4b84..f75849f0877275 100644
--- a/orc-rt/tools/orc-executor/CMakeLists.txt
+++ b/orc-rt/tools/orc-executor/CMakeLists.txt
@@ -1,3 +1,3 @@
 add_executable(orc-executor orc-executor.cpp)
-target_link_libraries(orc-executor PRIVATE orc-rt-prelink)
+target_link_libraries(orc-executor PRIVATE orc-rt-executor)
 target_include_directories(orc-executor PRIVATE ../../include)

>From 81dc0e4be5b8eb6811ba741bfd1cb50673db1c35 Mon Sep 17 00:00:00 2001
From: Lang Hames <lhames at gmail.com>
Date: Tue, 29 Oct 2024 07:48:23 +1100
Subject: [PATCH 4/7] Use '//' style comments.

---
 orc-rt/include/orc-rt-c/orc-rt.h | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/orc-rt/include/orc-rt-c/orc-rt.h b/orc-rt/include/orc-rt-c/orc-rt.h
index fdc0fd29976d4a..324d6dc05ec72e 100644
--- a/orc-rt/include/orc-rt-c/orc-rt.h
+++ b/orc-rt/include/orc-rt-c/orc-rt.h
@@ -1,15 +1,14 @@
-/*===- orc-rt-c/orc-rt.h - Placeholder header for orc-rt ----------*- C -*-===*\
-|*                                                                            *|
-|* Part of the LLVM Project, under the Apache License v2.0 with LLVM          *|
-|* Exceptions.                                                                *|
-|* See https://llvm.org/LICENSE.txt for license information.                  *|
-|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    *|
-|*                                                                            *|
-|*===----------------------------------------------------------------------===*|
-|*                                                                            *|
-|* Placeholder header for initial orc-rt checkin                              *|
-|*                                                                            *|
-\*===----------------------------------------------------------------------===*/
+//===- orc-rt-c/orc-rt.h - Placeholder header for orc-rt ----------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// Placeholder header for initial orc-rt checkin.
+//
+//===----------------------------------------------------------------------===//
 
 #ifndef ORC_RT_C_ORC_RT_H
 #define ORC_RT_C_ORC_RT_H
@@ -21,7 +20,7 @@ extern "C" {
 void orc_rt(void);
 
 #ifdef __cplusplus
-} /* extern "C" */
+} // extern "C"
 #endif
 
-#endif /* ORC_RT_C_ORC_RT_H */
+#endif // ORC_RT_C_ORC_RT_H

>From 7106b9dc5fe9702a853bbd68c2d31c4e4d13f358 Mon Sep 17 00:00:00 2001
From: Lang Hames <lhames at gmail.com>
Date: Tue, 29 Oct 2024 07:48:54 +1100
Subject: [PATCH 5/7] Add missing copyright header.

---
 orc-rt/lib/executor/orc-rt-executor.cpp | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/orc-rt/lib/executor/orc-rt-executor.cpp b/orc-rt/lib/executor/orc-rt-executor.cpp
index b97d9cd22a0a23..d70488d11d3faf 100644
--- a/orc-rt/lib/executor/orc-rt-executor.cpp
+++ b/orc-rt/lib/executor/orc-rt-executor.cpp
@@ -1,3 +1,15 @@
+//===- orc-rt-executor.cpp - Placeholder implementation for orc-rt --------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// Placeholder implementation file for initial orc-rt checkin.
+//
+//===----------------------------------------------------------------------===//
+
 #include <stdio.h>
 
 extern "C" void orc_rt(void) { printf("hello, world!\n"); }

>From db2709778be5c618d6078ba20e3206621eed499e Mon Sep 17 00:00:00 2001
From: Lang Hames <lhames at gmail.com>
Date: Tue, 29 Oct 2024 07:49:15 +1100
Subject: [PATCH 6/7] Use 'install (DIRECTORY...' instead of file sets.

---
 orc-rt/include/CMakeLists.txt | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/orc-rt/include/CMakeLists.txt b/orc-rt/include/CMakeLists.txt
index 9137e5823fe25f..027317e28c8ce3 100644
--- a/orc-rt/include/CMakeLists.txt
+++ b/orc-rt/include/CMakeLists.txt
@@ -1,4 +1,4 @@
-set(files
+set(ORC_RT_HEADERS
     orc-rt-c/orc-rt.h
 )
 
@@ -7,10 +7,10 @@ target_include_directories(orc-rt-headers INTERFACE
     $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
     $<INSTALL_INTERFACE:include>
 )
-target_sources(orc-rt-headers
-    INTERFACE FILE_SET HEADERS
-    BASE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}
-    FILES ${files}
+set_property(TARGET orc-rt-headers
+    PROPERTY PUBLIC_HEADER ${ORC_RT_HEADERS}
+)
+install(DIRECTORY ./
+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/
+    FILES_MATCHING PATTERN "*.h"
 )
-install(TARGETS orc-rt-headers
-    FILE_SET HEADERS DESTINATION include)

>From b0eb59985606c560c33239139fe4648b6086371f Mon Sep 17 00:00:00 2001
From: Lang Hames <lhames at gmail.com>
Date: Tue, 29 Oct 2024 07:50:57 +1100
Subject: [PATCH 7/7] Add missing copyright header.

---
 orc-rt/tools/orc-executor/orc-executor.cpp | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/orc-rt/tools/orc-executor/orc-executor.cpp b/orc-rt/tools/orc-executor/orc-executor.cpp
index 4a03ac64710d22..92bdd5bf5d53f2 100644
--- a/orc-rt/tools/orc-executor/orc-executor.cpp
+++ b/orc-rt/tools/orc-executor/orc-executor.cpp
@@ -1,3 +1,15 @@
+//===- orc-executor.cpp - Placeholder implementation for orc-rt ----------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// Placeholder implementation file for initial orc-rt checkin.
+//
+//===----------------------------------------------------------------------===//
+
 #include "orc-rt-c/orc-rt.h"
 
 int main(int argc, char *argv[]) {



More information about the llvm-commits mailing list