gn build: Merge r372706
[llvm-complete.git] / utils / gn / secondary / llvm / unittests / Support / DynamicLibrary / BUILD.gn
blobaac3da706d1d2f74c31bd34158702227eb57f572
1 import("//llvm/utils/unittest/unittest.gni")
3 # FIXME: If we add -Wl,-z,nodelete to the global ldflags, we need to remove
4 # it again for these tests (cf CMake).
6 template("dynlib_add_module") {
7   not_needed(invoker, "*")
9   loadable_module(target_name) {
10     # Put plugin next to the unit test executable.
11     # This assumes that unittest() puts tests in target_out_dir.
12     output_dir = target_out_dir
14     sources = [
15       "PipSqueak.cpp",
16     ]
18     if (host_os != "mac" && host_os != "win") {
19       # The GN build currently doesn't globally pass -fPIC, but that's
20       # needed for building .so files on ELF.  Just pass it manually
21       # for loadable_modules for now.
22       cflags = [ "-fPIC" ]
23     }
24   }
27 dynlib_add_module("PipSqueak") {
30 dynlib_add_module("SecondLib") {
33 unittest("DynamicLibraryTests") {
34   deps = [
35     ":PipSqueak",
36     ":SecondLib",
37     "//llvm/include/llvm/Config:config",
38     "//llvm/lib/Support",
39   ]
40   sources = [
41     "DynamicLibraryTest.cpp",
42     "ExportedFuncs.cpp",
43   ]
45   if (host_os != "mac" && host_os != "win") {
46     # Corresponds to export_executable_symbols() in cmake.
47     ldflags = [ "-rdynamic" ]
48   }