Reland "[gn] port f29cfab55d1f"
authorNico Weber <thakis@chromium.org>
Tue, 14 Feb 2023 20:42:31 +0000 (15:42 -0500)
committerNico Weber <thakis@chromium.org>
Tue, 14 Feb 2023 20:42:31 +0000 (15:42 -0500)
This reverts commit ff66d410fd87608db16a4ffb5caae1fd62374d5a.
f29cfab55d1f relanded in 5b455a8efbf5.

llvm/unittests/Analysis/InlineAdvisorPlugin/CMakeLists.txt
llvm/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn
llvm/utils/gn/secondary/llvm/unittests/Analysis/InlineAdvisorPlugin/BUILD.gn [new file with mode: 0644]

index ac83ddd..aa319ab 100644 (file)
@@ -4,7 +4,9 @@
 # references), so just skip this testcase on Windows.
 if (NOT WIN32)
   unset(LLVM_LINK_COMPONENTS)
-  add_llvm_library(InlineAdvisorPlugin MODULE BUILDTREE_ONLY InlineAdvisorPlugin.cpp)
+  add_llvm_library(InlineAdvisorPlugin MODULE BUILDTREE_ONLY
+    InlineAdvisorPlugin.cpp
+    )
   # Put PLUGIN next to the unit test executable.
   set_output_directory(InlineAdvisorPlugin
       BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/../
index ee865bc..d946c57 100644 (file)
@@ -1,31 +1,5 @@
 import("//third-party/unittest/unittest.gni")
 
-# Keyed off LLVM_ENABLE_PLUGINS in the CMake build, which is usually false
-# on Windows and true elsewhere.
-if (host_os != "win") {
-  foreach(plugin, [ "InlineAdvisorPlugin" ]) {
-    loadable_module(plugin) {
-      # Put plugin next to the unit test executable.
-      output_dir = target_out_dir
-
-      sources = [ "$plugin.cpp" ]
-
-      deps = [
-        # TestPlugin doesn't want to link in any LLVM code, it just needs its
-        # headers.
-        "//llvm/include/llvm/IR:public_tablegen",
-      ]
-
-      if (host_os != "mac" && host_os != "win") {
-        # The GN build currently doesn't globally pass -fPIC, but that's
-        # needed for building .so files on ELF.  Just pass it manually
-        # for loadable_modules for now.
-        cflags = [ "-fPIC" ]
-      }
-    }
-  }
-}
-
 unittest("AnalysisTests") {
   deps = [
     "//llvm/lib/Analysis",
@@ -84,7 +58,7 @@ unittest("AnalysisTests") {
   # Otherwise, reconfiguring with plugins disabled will leave behind a stale
   # executable.
   if (host_os != "win") {
-    deps += [ ":InlineAdvisorPlugin" ]
+    deps += [ "InlineAdvisorPlugin" ]
   }
 
   # Support plugins.
diff --git a/llvm/utils/gn/secondary/llvm/unittests/Analysis/InlineAdvisorPlugin/BUILD.gn b/llvm/utils/gn/secondary/llvm/unittests/Analysis/InlineAdvisorPlugin/BUILD.gn
new file mode 100644 (file)
index 0000000..96d7b36
--- /dev/null
@@ -0,0 +1,25 @@
+# Keyed off LLVM_ENABLE_PLUGINS in the CMake build, which is usually false
+# on Windows and true elsewhere.
+if (host_os != "win") {
+  loadable_module("InlineAdvisorPlugin") {
+    # Put plugin next to the unit test executable.
+    output_dir =
+        rebase_path(get_label_info("//llvm/unittests/Analysis:AnalysisTests",
+                                   "target_out_dir"))
+
+    sources = [ "InlineAdvisorPlugin.cpp" ]
+
+    deps = [
+      # TestPlugin doesn't want to link in any LLVM code, it just needs its
+      # headers.
+      "//llvm/include/llvm/IR:public_tablegen",
+    ]
+
+    if (host_os != "mac" && host_os != "win") {
+      # The GN build currently doesn't globally pass -fPIC, but that's
+      # needed for building .so files on ELF.  Just pass it manually
+      # for loadable_modules for now.
+      cflags = [ "-fPIC" ]
+    }
+  }
+}