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://bugs.llvm.org/",
12    "CLANG_DEFAULT_LINKER=",
13    "CLANG_DEFAULT_STD_C=",
14    "CLANG_DEFAULT_STD_CXX=",
15    "CLANG_DEFAULT_CXX_STDLIB=",
16    "CLANG_DEFAULT_RTLIB=",
17    "CLANG_DEFAULT_OBJCOPY=objcopy",
18    "CLANG_DEFAULT_OPENMP_RUNTIME=libomp",
19    "CLANG_DEFAULT_UNWINDLIB=",
20    "CLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_35",
21    "CLANG_LIBDIR_SUFFIX=",
22    "CLANG_RESOURCE_DIR=",
23    "C_INCLUDE_DIRS=",
24    "CLANG_CONFIG_FILE_SYSTEM_DIR=",
25    "CLANG_CONFIG_FILE_USER_DIR=",
26    "CLANG_SPAWN_CC1=",
27    "DEFAULT_SYSROOT=",
28    "GCC_INSTALL_PREFIX=",
29    "BACKEND_PACKAGE_STRING=LLVM ${llvm_version}git",
30    "ENABLE_LINKER_BUILD_ID=",
31    "ENABLE_X86_RELAX_RELOCATIONS=1",
32    "CLANG_ENABLE_OBJC_REWRITER=1",  # FIXME: flag?
33    "CLANG_SYSTEMZ_DEFAULT_ARCH=z10",
34  ]
35
36  if (clang_enable_arcmt) {
37    values += [ "CLANG_ENABLE_ARCMT=1" ]
38  } else {
39    values += [ "CLANG_ENABLE_ARCMT=" ]
40  }
41
42  if (clang_enable_static_analyzer) {
43    values += [ "CLANG_ENABLE_STATIC_ANALYZER=1" ]
44  } else {
45    values += [ "CLANG_ENABLE_STATIC_ANALYZER=" ]
46  }
47
48  if (host_os != "win") {
49    values += [ "CLANG_HAVE_RLIMITS=1" ]
50  } else {
51    values += [ "CLANG_HAVE_RLIMITS=" ]
52  }
53
54  if (llvm_enable_libxml2) {
55    values += [ "CLANG_HAVE_LIBXML=1" ]
56  } else {
57    values += [ "CLANG_HAVE_LIBXML=" ]
58  }
59
60  if (host_os == "mac") {
61    # FIXME: Hardcoding this isn't great, but assuming that the host ld version
62    # has anything to do with the ld version where the built clang will run
63    # isn't either. Probably want to make this a declare_args.
64    values += [ "HOST_LINK_VERSION=305" ]
65  } else {
66    values += [ "HOST_LINK_VERSION=" ]
67  }
68}
69