static_library("Support") {
  output_name = "LLVMSupport"
  deps = [
    "//llvm/include/llvm/Config:config",
    "//llvm/lib/Demangle",
    "//llvm/utils/gn/build/libs/pthread",
    "//llvm/utils/gn/build/libs/terminfo",
    "//llvm/utils/gn/build/libs/zlib",
  ]

  # public_deps are used for depending on targets that generate headers
  # which are included in public headers of this target. public_deps means
  # that targets depending on Support will implicitly be built only after
  # abi-breaking and llvm-config have been built.
  public_deps = [
    # abi-breaking.h is also include by public headers in ADT, but ADT has
    # no target in the gn build.  Since everything depends on Support, this
    # public_dep does double duty of abi-breaking.h uses in public headers of
    # both Support and ADT.
    "//llvm/include/llvm/Config:abi-breaking",
    "//llvm/include/llvm/Config:llvm-config",

    # public_dep because public header TargetSelect.h includes these .def files.
    "//llvm/include/llvm/Config:write_target_def_files",
  ]
  include_dirs = [
    "Unix",
    "Windows",
  ]
  sources = [
    "AArch64TargetParser.cpp",
    "AMDGPUMetadata.cpp",
    "APFloat.cpp",
    "APInt.cpp",
    "APSInt.cpp",
    "ARMAttributeParser.cpp",
    "ARMBuildAttrs.cpp",
    "ARMTargetParser.cpp",
    "ARMWinEH.cpp",
    "Allocator.cpp",
    "BinaryStreamError.cpp",
    "BinaryStreamReader.cpp",
    "BinaryStreamRef.cpp",
    "BinaryStreamWriter.cpp",
    "BlockFrequency.cpp",
    "BranchProbability.cpp",
    "BuryPointer.cpp",
    "COM.cpp",
    "CachePruning.cpp",
    "Chrono.cpp",
    "CodeGenCoverage.cpp",
    "CommandLine.cpp",
    "Compression.cpp",
    "ConvertUTF.cpp",
    "ConvertUTFWrapper.cpp",
    "CrashRecoveryContext.cpp",
    "DAGDeltaAlgorithm.cpp",
    "DJB.cpp",
    "DataExtractor.cpp",
    "Debug.cpp",
    "DebugCounter.cpp",
    "DeltaAlgorithm.cpp",
    "Error.cpp",
    "ErrorHandling.cpp",
    "FileCheck.cpp",
    "FileOutputBuffer.cpp",
    "FileUtilities.cpp",
    "FoldingSet.cpp",
    "FormatVariadic.cpp",
    "FormattedStream.cpp",
    "GlobPattern.cpp",
    "GraphWriter.cpp",
    "Hashing.cpp",
    "InitLLVM.cpp",
    "IntEqClasses.cpp",
    "IntervalMap.cpp",
    "ItaniumManglingCanonicalizer.cpp",
    "JSON.cpp",
    "JamCRC.cpp",
    "KnownBits.cpp",
    "LEB128.cpp",
    "LineIterator.cpp",
    "Locale.cpp",
    "LockFileManager.cpp",
    "LowLevelType.cpp",
    "MD5.cpp",
    "ManagedStatic.cpp",
    "MathExtras.cpp",
    "MemoryBuffer.cpp",
    "NativeFormatting.cpp",
    "Optional.cpp",
    "Options.cpp",
    "Parallel.cpp",
    "PluginLoader.cpp",
    "PrettyStackTrace.cpp",
    "RandomNumberGenerator.cpp",
    "Regex.cpp",
    "SHA1.cpp",
    "ScaledNumber.cpp",
    "ScopedPrinter.cpp",
    "SmallPtrSet.cpp",
    "SmallVector.cpp",
    "SourceMgr.cpp",
    "SpecialCaseList.cpp",
    "Statistic.cpp",
    "StringExtras.cpp",
    "StringMap.cpp",
    "StringPool.cpp",
    "StringRef.cpp",
    "StringSaver.cpp",
    "SymbolRemappingReader.cpp",
    "SystemUtils.cpp",
    "TarWriter.cpp",
    "TargetParser.cpp",
    "ThreadPool.cpp",
    "Timer.cpp",
    "ToolOutputFile.cpp",
    "TrigramIndex.cpp",
    "Triple.cpp",
    "Twine.cpp",
    "Unicode.cpp",
    "UnicodeCaseFold.cpp",
    "VersionTuple.cpp",
    "WithColor.cpp",
    "YAMLParser.cpp",
    "YAMLTraits.cpp",
    "circular_raw_ostream.cpp",
    "raw_os_ostream.cpp",
    "raw_ostream.cpp",
    "regcomp.c",
    "regerror.c",
    "regexec.c",
    "regfree.c",
    "regstrlcpy.c",
    "xxhash.cpp",

    # System
    "Atomic.cpp",
    "DynamicLibrary.cpp",
    "Errno.cpp",
    "Host.cpp",
    "Memory.cpp",
    "Mutex.cpp",
    "Path.cpp",
    "Process.cpp",
    "Program.cpp",
    "RWMutex.cpp",
    "Signals.cpp",
    "TargetRegistry.cpp",
    "ThreadLocal.cpp",
    "Threading.cpp",
    "Valgrind.cpp",
    "VirtualFileSystem.cpp",
    "Watchdog.cpp",
  ]

  libs = []

  if (current_os == "linux" || current_os == "android") {
    libs += [ "dl" ]
  }
}
