| import("//llvm/utils/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") { |
| loadable_module("TestPlugin") { |
| # Put plugin next to the unit test executable. |
| output_dir = target_out_dir |
| |
| sources = [ |
| "TestPlugin.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 == "linux") { |
| # The GN build currently doesn't globally pass -fPIC, but that's |
| # needed for building .so files on Linux. Just pass it manually |
| # for loadable_modules for now. |
| cflags = [ "-fPIC" ] |
| } |
| } |
| } |
| |
| unittest("PluginsTests") { |
| deps = [ |
| "//llvm/include/llvm/Config:config", |
| "//llvm/lib/IR", |
| "//llvm/lib/Passes", |
| "//llvm/lib/Support", |
| "//llvm/lib/Testing/Support", |
| ] |
| sources = [ |
| "PluginsTest.cpp", |
| ] |
| |
| # If plugins are disabled, this test will disable itself at runtime. |
| # Otherwise, reconfiguring with plugins disabled will leave behind a stale |
| # executable. |
| if (host_os != "win") { |
| deps += [ ":TestPlugin" ] |
| defines = [ "LLVM_ENABLE_PLUGINS" ] |
| } |
| |
| if (host_os == "linux") { |
| # Corresponds to export_executable_symbols() in cmake. |
| ldflags = [ "-rdynamic" ] |
| } |
| } |