import("//clang/lib/ARCMigrate/enable.gni")
import("//clang/lib/StaticAnalyzer/Frontend/enable.gni")
import("//llvm/utils/gn/build/libs/xml/enable.gni")
import("//llvm/utils/gn/build/write_cmake_config.gni")
import("//llvm/version.gni")

config("Config_config") {
  visibility = [ ":Config" ]
  include_dirs = [ "$target_gen_dir/clang/include" ]
}

write_cmake_config("Config") {
  input = "config.h.cmake"
  output = "$target_gen_dir/config.h"
  values = [
    "BUG_REPORT_URL=https://bugs.llvm.org/",
    "CLANG_DEFAULT_LINKER=",
    "CLANG_DEFAULT_STD_C=",
    "CLANG_DEFAULT_STD_CXX=",
    "CLANG_DEFAULT_CXX_STDLIB=",
    "CLANG_DEFAULT_RTLIB=",
    "CLANG_DEFAULT_OBJCOPY=objcopy",
    "CLANG_DEFAULT_OPENMP_RUNTIME=libomp",
    "CLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_35",
    "CLANG_LIBDIR_SUFFIX=",
    "CLANG_RESOURCE_DIR=",
    "C_INCLUDE_DIRS=",
    "CLANG_CONFIG_FILE_SYSTEM_DIR=",
    "CLANG_CONFIG_FILE_USER_DIR=",
    "DEFAULT_SYSROOT=",
    "GCC_INSTALL_PREFIX=",
    "BACKEND_PACKAGE_STRING=LLVM ${llvm_version}svn",
    "ENABLE_LINKER_BUILD_ID=",
    "ENABLE_X86_RELAX_RELOCATIONS=",
    "ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER=",
    "CLANG_ENABLE_OBJC_REWRITER=1",  # FIXME: flag?
  ]

  if (clang_enable_arcmt) {
    values += [ "CLANG_ENABLE_ARCMT=1" ]
  } else {
    values += [ "CLANG_ENABLE_ARCMT=" ]
  }

  if (clang_enable_static_analyzer) {
    values += [ "CLANG_ENABLE_STATIC_ANALYZER=1" ]
  } else {
    values += [ "CLANG_ENABLE_STATIC_ANALYZER=" ]
  }

  if (host_os != "win") {
    values += [ "CLANG_HAVE_RLIMITS=1" ]
  } else {
    values += [ "CLANG_HAVE_RLIMITS=" ]
  }

  if (llvm_enable_libxml2) {
    values += [ "CLANG_HAVE_LIBXML=1" ]
  } else {
    values += [ "CLANG_HAVE_LIBXML=" ]
  }

  if (host_os == "mac") {
    # FIXME: Hardcoding this isn't great, but assuming that the host ld version
    # has anything to do with the ld version where the built clang will run
    # isn't either. Probably want to make this a declare_args.
    values += [ "HOST_LINK_VERSION=305" ]
  } else {
    values += [ "HOST_LINK_VERSION=" ]
  }

  # Let targets depending on this find the generated file.
  public_configs = [ ":Config_config" ]
}
