xref: /llvm-project/llvm/utils/gn/secondary/clang/include/clang/Config/BUILD.gn (revision 776495987272294de6aafbe73dab3e9ab445227a)
1import("//clang/lib/ARCMigrate/enable.gni")
2import("//clang/lib/StaticAnalyzer/Frontend/enable.gni")
3import("//llvm/utils/gn/build/libs/xml/enable.gni")
4import("//llvm/utils/gn/build/write_cmake_config.gni")
5import("//llvm/version.gni")
6
7write_cmake_config("Config") {
8  input = "config.h.cmake"
9  output = "$target_gen_dir/config.h"
10  values = [
11    "BUG_REPORT_URL=https://github.com/llvm/llvm-project/issues/",
12    "CLANG_DEFAULT_PIE_ON_LINUX=1",
13    "CLANG_DEFAULT_LINKER=",
14    "CLANG_DEFAULT_CXX_STDLIB=",
15    "CLANG_DEFAULT_RTLIB=",
16    "CLANG_DEFAULT_OBJCOPY=objcopy",
17    "CLANG_DEFAULT_OPENMP_RUNTIME=libomp",
18    "CLANG_DEFAULT_UNWINDLIB=",
19    "CLANG_INSTALL_LIBDIR_BASENAME=lib",
20    "CLANG_RESOURCE_DIR=",
21    "C_INCLUDE_DIRS=",
22    "CLANG_CONFIG_FILE_SYSTEM_DIR=",
23    "CLANG_CONFIG_FILE_USER_DIR=",
24    "CLANG_SPAWN_CC1=",
25    "DEFAULT_SYSROOT=",
26    "GCC_INSTALL_PREFIX=",
27    "ENABLE_LINKER_BUILD_ID=",
28    "ENABLE_X86_RELAX_RELOCATIONS=1",
29    "CLANG_ENABLE_OBJC_REWRITER=1",  # FIXME: flag?
30    "CLANG_ENABLE_CIR=",
31    "CLANG_SYSTEMZ_DEFAULT_ARCH=z10",
32    "PPC_LINUX_DEFAULT_IEEELONGDOUBLE=",
33  ]
34
35  if (clang_enable_arcmt) {
36    values += [ "CLANG_ENABLE_ARCMT=1" ]
37  } else {
38    values += [ "CLANG_ENABLE_ARCMT=" ]
39  }
40
41  if (clang_enable_static_analyzer) {
42    values += [ "CLANG_ENABLE_STATIC_ANALYZER=1" ]
43  } else {
44    values += [ "CLANG_ENABLE_STATIC_ANALYZER=" ]
45  }
46
47  if (host_os != "win") {
48    values += [
49      "CLANG_HAVE_DLADDR=1",
50      "CLANG_HAVE_DLFCN_H=1",
51      "CLANG_HAVE_RLIMITS=1",
52    ]
53  } else {
54    values += [
55      "CLANG_HAVE_DLADDR=",
56      "CLANG_HAVE_DLFCN_H=",
57      "CLANG_HAVE_RLIMITS=",
58    ]
59  }
60
61  if (llvm_enable_libxml2) {
62    values += [ "CLANG_HAVE_LIBXML=1" ]
63  } else {
64    values += [ "CLANG_HAVE_LIBXML=" ]
65  }
66
67  if (host_os == "mac") {
68    # FIXME: Hardcoding this isn't great, but assuming that the host ld version
69    # has anything to do with the ld version where the built clang will run
70    # isn't either. Probably want to make this a declare_args.
71    values += [ "HOST_LINK_VERSION=520" ]
72  } else {
73    values += [ "HOST_LINK_VERSION=" ]
74  }
75}
76