# Copyright 2023 The Dawn Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import("../../../scripts/dawn_overrides_with_defaults.gni")

import("//build/config/win/visual_studio_version.gni")
import("${dawn_root}/scripts/dawn_features.gni")

import("build/add_hlsl_hctgen.gni")
import("build/built_target_action.gni")
import("build/cmake_configure_file.gni")
import("build/generate_version_include.gni")
import("build/system_binary_action.gni")

dawn_dxc_gn_dir = "$dawn_dxc_dir/../gn"
llvm_target_triple = "dxil-ms-dx"  # Force target triple
llvm_version_major = 3
llvm_version_minor = 7
llvm_version_patch = 0
llvm_version = "$llvm_version_major.$llvm_version_minor.$llvm_version_patch"

declare_args() {
  # DXC sometimes asserts on valid HLSL. Set this to true to disable assertions in debug builds.
  dawn_dxc_disable_asserts_debug = false
}

if (host_cpu == "x86" || host_cpu == "x64") {
  native_target = "X86"
} else {
  assert(false, "define 'native_target' for host_cpu: $host_cpu")
}

if (target_cpu == "x64") {
  if (current_os == "linux") {
    llvm_current_triple = "x86_64-unknown-linux-gnu"
  } else if (current_os == "win") {
    llvm_current_triple = "x86_64-pc-win32"
  } else {
    assert(
        false,
        "define 'llvm_current_triple' for target_cpu: $target_cpu, target_os: $current_os")
  }
} else if (target_cpu == "x86") {
  if (current_os == "win") {
    llvm_current_triple = "x86_32-pc-win32"
  } else {
    assert(
        false,
        "define 'llvm_current_triple' for target_cpu: $target_cpu, target_os: $current_os")
  }
} else {
  assert(
      false,
      "define 'llvm_current_triple' for target_cpu: $target_cpu, target_os: $current_os")
}

#######################################################################
## CMake config targets
#######################################################################

cmake_configure_file("config-header") {
  input = "$dawn_dxc_dir/include/llvm/Config/config.h.cmake"
  output = "$target_gen_dir/include/llvm/Config/config.h"
  values = [
    # TODO(amaiorano): Many of the flags set here are duplicated for the "llvm-config-header" target below.
    # Factor this out somehow (template?).
    "LLVM_ENABLE_ABI_BREAKING_CHECKS=1",
    "LLVM_ENABLE_THREADS=1",
    "LLVM_HAS_ATOMICS=1",
    "HAVE_INTTYPES_H=1",
    "HAVE_STDINT_H=1",
    "HAVE_UINT64_T=1",
    "HAVE_U_INT64_T=",
    "LLVM_BINDIR=",
    "LLVM_CONFIGTIME=",
    "LLVM_DATADIR=",
    "LLVM_DEFAULT_TARGET_TRIPLE=$llvm_target_triple",
    "LLVM_DOCSDIR=",
    "LLVM_ETCDIR=",
    "LLVM_HOST_TRIPLE=$llvm_current_triple",
    "LLVM_INCLUDEDIR=",
    "LLVM_INFODIR=",
    "LLVM_MANDIR=",
    "LLVM_NATIVE_ARCH=$native_target",
    "LLVM_NATIVE_ASMPARSER=",
    "LLVM_NATIVE_ASMPRINTER=",
    "LLVM_NATIVE_DISASSEMBLER=",
    "LLVM_NATIVE_TARGET=",
    "LLVM_NATIVE_TARGETINFO=",
    "LLVM_NATIVE_TARGETMC=",
    "LLVM_PREFIX=/usr/local",
    "LLVM_VERSION_MAJOR=$llvm_version_major",
    "LLVM_VERSION_MINOR=$llvm_version_minor",
    "LLVM_VERSION_PATCH=$llvm_version_patch",
    "PACKAGE_VERSION=${llvm_version}git",
    "PACKAGE_BUGREPORT=http://llvm.org/bugs/",
    "PACKAGE_NAME=LLVM",
    "PACKAGE_STRING=LLVM ${llvm_version}git",
    "strdup=_strdup",
    "stricmp=_stricmp",
    "strtoll=",
    "strtoull=",

    # TODO(amaiorano): Revisit variables below. Most are just unset for now.
    "ENABLE_BACKTRACES=1",
    "ENABLE_CRASH_OVERRIDES=1",
    "DISABLE_LLVM_DYLIB_ATEXIT=1",
    "ENABLE_PIC=1",
    "HAVE_ISATTY=",
    "LLVM_ENABLE_ZLIB=",
    "LLVM_USE_INTEL_JITEVENTS=",
    "LLVM_USE_OPROFILE=",
    "LINK_POLLY_INTO_TOOLS=",
    "BUG_REPORT_URL=http://llvm.org/bugs/",
    "ENABLE_TIMESTAMPS=1",
    "HAVE____CHKSTK_MS=",
    "HAVE____CHKSTK=",
    "HAVE___ALLOCA=",
    "HAVE___ASHLDI3=",
    "HAVE___ASHRDI3=",
    "HAVE___CHKSTK_MS=",
    "HAVE___CHKSTK=1",
    "HAVE___CMPDI2=",
    "HAVE___DIVDI3=",
    "HAVE___FIXDFDI=",
    "HAVE___FIXSFDI=",
    "HAVE___FLOATDIDF=",
    "HAVE___LSHRDI3=",
    "HAVE___MAIN=",
    "HAVE___MODDI3=",
    "HAVE___UDIVDI3=",
    "HAVE___UMODDI3=",
    "HAVE__ALLOCA=",
    "HAVE__CHSIZE_S=1",
    "HAVE_BACKTRACE=",
    "HAVE_CLOSEDIR=",
    "HAVE_CXXABI_H=",
    "HAVE_DECL_ARC4RANDOM=",
    "HAVE_DIA_SDK=",
    "HAVE_DLERROR=",
    "HAVE_DLFCN_H=",
    "HAVE_DLOPEN=",
    "HAVE_ERRNO_H=1",
    "HAVE_EXECINFO_H=",
    "HAVE_FCNTL_H=1",
    "HAVE_FENV_H=1",
    "HAVE_FFI_CALL=",
    "HAVE_FFI_FFI_H=",
    "HAVE_FFI_H=",
    "HAVE_FUTIMENS=",
    "HAVE_GETCWD=",
    "HAVE_GETRLIMIT=",
    "HAVE_GETTIMEOFDAY=",
    "HAVE_INT64_T=1",
    "HAVE_LIBDL=",
    "HAVE_LIBEDIT=",
    "HAVE_LIBPSAPI=",
    "HAVE_LIBPTHREAD=",
    "HAVE_LIBSHELL32=",
    "HAVE_LIBZ=",
    "HAVE_LIMITS_H=1",
    "HAVE_LINK_H=",
    "HAVE_LONGJMP=",
    "HAVE_MACH_MACH_H=",
    "HAVE_MACH_O_DYLD_H=",
    "HAVE_MALLCTL=",
    "HAVE_MALLINFO2=",
    "HAVE_MALLOC_H=1",
    "HAVE_MALLOC_MALLOC_H=",
    "HAVE_MALLOC_ZONE_STATISTICS=",
    "HAVE_MKDTEMP=",
    "HAVE_MKSTEMP=",
    "HAVE_MKTEMP=",
    "HAVE_NDIR_H=",
    "HAVE_OPENDIR=",
    "HAVE_POSIX_SPAWN=",
    "HAVE_PREAD=",
    "HAVE_PTHREAD_RWLOCK_INIT=",
    "HAVE_RAND48=",
    "HAVE_READDIR=",
    "HAVE_REALPATH=",
    "HAVE_SBRK=",
    "HAVE_SETENV=",
    "HAVE_SETJMP=",
    "HAVE_SETRLIMIT=",
    "HAVE_SIGLONGJMP=",
    "HAVE_SIGNAL_H=1",
    "HAVE_SIGSETJMP=",
    "HAVE_STRDUP=",
    "HAVE_STRERROR_R=",
    "HAVE_STRERROR=1",
    "HAVE_STRTOLL=1",
    "HAVE_STRTOQ=",
    "HAVE_SYS_DIR_H=",
    "HAVE_SYS_IOCTL_H=",

    "HAVE_SYS_NDIR_H=",
    "HAVE_SYS_STAT_H=1",
    "HAVE_SYS_TYPES_H=",
    "HAVE_SYS_UIO_H=",
    "HAVE_SYS_WAIT_H=",
    "HAVE_TERMINFO=",
    "HAVE_TERMIOS_H=",
    "HAVE_UTIME_H=",
    "HAVE_VALGRIND_VALGRIND_H=",
    "HAVE_WRITEV=",
    "HAVE_ZLIB_H=",
    "LTDL_DLOPEN_DEPLIBS=",
    "LTDL_SHLIB_EXT=.dll",
    "LTDL_SYSSEARCHPATH=",
    "RETSIGTYPE=void",
    "WIN32_ELMCB_PCSTR=PCSTR",
  ]

  if (is_win) {
    values += [
      "HAVE_DECL_STRERROR_S=1",
      "HAVE_DIRENT_H=",
      "HAVE_FUTIMES=",
      "HAVE_GETPAGESIZE=",
      "HAVE_GETRUSAGE=",
      "HAVE_MALLINFO=",
      "HAVE_SYS_MMAN_H=",
      "HAVE_SYS_PARAM_H=",
      "HAVE_SYS_RESOURCE_H=",
      "HAVE_SYS_TIME_H=",
      "HAVE_UNISTD_H=",
      "HAVE_PTHREAD_GETSPECIFIC=",
      "HAVE_PTHREAD_H=",
      "HAVE_PTHREAD_MUTEX_LOCK=",
    ]
  } else if (is_linux) {
    values += [
      "HAVE_DECL_STRERROR_S=",
      "HAVE_DIRENT_H=1",
      "HAVE_FUTIMES=1",
      "HAVE_GETPAGESIZE=1",
      "HAVE_GETRUSAGE=1",
      "HAVE_MALLINFO=1",
      "HAVE_SYS_MMAN_H=1",
      "HAVE_SYS_PARAM_H=1",
      "HAVE_SYS_RESOURCE_H=1",
      "HAVE_SYS_TIME_H=1",
      "HAVE_UNISTD_H=1",
      "HAVE_PTHREAD_GETSPECIFIC=1",
      "HAVE_PTHREAD_H=1",
      "HAVE_PTHREAD_MUTEX_LOCK=1",
    ]
  }
  if (is_win) {
    values += [
      "LLVM_ON_UNIX=",
      "LLVM_ON_WIN32=1",
    ]
  } else {
    values += [
      "LLVM_ON_UNIX=1",
      "LLVM_ON_WIN32=",
    ]
  }
}

cmake_configure_file("llvm-config-header") {
  input = "$dawn_dxc_dir/include/llvm/Config/llvm-config.h.cmake"
  output = "$target_gen_dir/include/llvm/Config/llvm-config.h"
  values = [
    "LLVM_BINDIR=",
    "LLVM_CONFIGTIME=",
    "LLVM_DATADIR=",
    "LLVM_DEFAULT_TARGET_TRIPLE=$llvm_target_triple",
    "LLVM_DOCSDIR=",
    "LLVM_ENABLE_ABI_BREAKING_CHECKS=1",
    "LLVM_ETCDIR=",
    "LLVM_HAS_ATOMICS=1",
    "LLVM_HOST_TRIPLE=$llvm_current_triple",
    "LLVM_INCLUDEDIR=",
    "LLVM_INFODIR=",
    "LLVM_MANDIR=",
    "LLVM_NATIVE_ARCH=$native_target",
    "LLVM_NATIVE_ASMPARSER=",
    "LLVM_NATIVE_ASMPRINTER=",
    "LLVM_NATIVE_DISASSEMBLER=",
    "LLVM_NATIVE_TARGET=",
    "LLVM_NATIVE_TARGETINFO=",
    "LLVM_NATIVE_TARGETMC=",
    "LLVM_PREFIX=/usr/local",
    "LLVM_USE_INTEL_JITEVENTS=",
    "LLVM_USE_OPROFILE=",
    "LLVM_VERSION_MAJOR=$llvm_version_major",
    "LLVM_VERSION_MINOR=$llvm_version_minor",
    "LLVM_VERSION_PATCH=$llvm_version_patch",
    "PACKAGE_VERSION=${llvm_version}git",
    "LINK_POLLY_INTO_TOOLS=",
    "LLVM_ENABLE_THREADS=1",
  ]
  if (is_win) {
    values += [
      "LLVM_ON_UNIX=",
      "LLVM_ON_WIN32=1",
    ]
  } else {
    values += [
      "LLVM_ON_UNIX=1",
      "LLVM_ON_WIN32=",
    ]
  }
}

cmake_configure_file("DataTypes-header") {
  input = "$dawn_dxc_dir/include/llvm/Support/DataTypes.h.cmake"
  output = "$target_gen_dir/include/llvm/Support/DataTypes.h"
  values = [
    "HAVE_INTTYPES_H=1",
    "HAVE_STDINT_H=1",
    "HAVE_UINT64_T=1",
    "HAVE_U_INT64_T=",
  ]
}

cmake_configure_file("Targets-def") {
  input = "$dawn_dxc_dir/include/llvm/Config/Targets.def.in"
  output = "$target_gen_dir/include/llvm/Config/Targets.def"
  values = [
    # TODO(amaiorano): Should normally contain list of supported targets,
    # which I think should be AMDGPU and NVPTX based on LLVM_ALL_TARGETS
    # in the root CMakeLists.txt, but building with CMake, the generated
    # TargetsDef.h has no value at all for this...
    "LLVM_ENUM_TARGETS=",
  ]
}

cmake_configure_file("AsmPrinters-def") {
  input = "$dawn_dxc_dir/include/llvm/Config/AsmPrinters.def.in"
  output = "$target_gen_dir/include/llvm/Config/AsmPrinters.def"
  values = [ "LLVM_ENUM_ASM_PRINTERS=" ]
}

cmake_configure_file("AsmParsers-def") {
  input = "$dawn_dxc_dir/include/llvm/Config/AsmParsers.def.in"
  output = "$target_gen_dir/include/llvm/Config/AsmParsers.def"
  values = [ "LLVM_ENUM_ASM_PARSERS=" ]
}

cmake_configure_file("Disassemblers-def") {
  input = "$dawn_dxc_dir/include/llvm/Config/Disassemblers.def.in"
  output = "$target_gen_dir/include/llvm/Config/Disassemblers.def"
  values = [ "LLVM_ENUM_DISASSEMBLERS=" ]
}

cmake_configure_file("SharedLibAffix-h") {
  input = "$dawn_dxc_dir/lib/DxcSupport/SharedLibAffix.inc"
  output = "$target_gen_dir/include/dxc/Support/SharedLibAffix.h"
  values = [
    "CMAKE_SHARED_LIBRARY_PREFIX=",

    # TODO(amaiorano): .dll for Win32, .so for Linux, .dylib for MacOS?
    "CMAKE_SHARED_LIBRARY_SUFFIX=.dll",
  ]
}

cmake_configure_file("clang-basic-version-inc") {
  input = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Version.inc.in"
  output = "$target_gen_dir/tools/clang/include/clang/Basic/Version.inc"
  values = [
    "CLANG_VERSION=$llvm_version",
    "CLANG_VERSION_MAJOR=$llvm_version_major",
    "CLANG_VERSION_MINOR=$llvm_version_minor",
    "CLANG_VERSION_PATCHLEVEL=$llvm_version_patch",
    "CLANG_HAS_VERSION_PATCHLEVEL=0",
  ]
}

cmake_configure_file("clang-config-h") {
  input = "$dawn_dxc_dir/tools/clang/include/clang/Config/config.h.cmake"
  output = "$target_gen_dir/tools/clang/include/clang/Config/config.h"
  values = [
    "BUG_REPORT_URL=http://llvm.org/bugs/",
    "CLANG_DEFAULT_OPENMP_RUNTIME=libgomp",
    "CLANG_LIBDIR_SUFFIX=",
    "CLANG_RESOURCE_DIR=",
    "C_INCLUDE_DIRS=",
    "DEFAULT_SYSROOT=",
    "GCC_INSTALL_PREFIX=",
    "CLANG_HAVE_LIBXML=",
    "BACKEND_PACKAGE_STRING=",
    "HOST_LINK_VERSION=",
  ]
}

#######################################################################
## Common config shared by all targets
#######################################################################

config("common_config") {
  warning_flags = []
  if (is_clang) {
    warning_flags += [
      "-Wno-error",  # TODO(amaiorano): For now, allow warnings
      "-Wno-unknown-pragmas",
      "-Wno-shadow",
      "-Wno-deprecated-declarations",
      "-Wno-deprecated-enum-float-conversion",
      "-Wno-extra-semi",
      "-Wno-reorder-ctor",
      "-Wno-implicit-fallthrough",
      "-Wno-header-hygiene",
      "-Wno-unused-const-variable",
      "-Wno-implicit-fallthrough",
      "-Wno-sign-compare",
      "-Wno-unused-but-set-variable",
      "-Wno-unreachable-code-return",
      "-Wno-unreachable-code-break",
      "-Wno-unused-function",
      "-Wno-unused-local-typedef",
      "-Wno-string-conversion",
      "-Wno-macro-redefined",
      "-Wno-unreachable-code",
      "-Wno-switch",
      "-Wno-constant-logical-operand",
      "-Wno-microsoft-exception-spec",
      "-Wno-inconsistent-missing-override",
      "-Wno-enum-compare-conditional",
      "-Wno-rtti",
      "-Wno-microsoft-extra-qualification",
      "-Wno-range-loop-bind-reference",
      "-Wno-pessimizing-move",
      "-Wno-unused-lambda-capture",
      "-Wno-bool-conversion",
      "-Wno-enum-compare",
      "-Wno-deprecated-copy",
      "-Wno-unused-variable",
      "-Wno-microsoft-template",
      "-Wno-unused-private-field",
      "-Wno-deprecated-enum-enum-conversion",
      "-Wno-deprecated-anon-enum-enum-conversion",
      "-Wno-ambiguous-reversed-operator",
    ]
  } else {
    # MSVC
    warning_flags += [
      "/W0",  # Suppress most warnings
      "/wd4267",  # conversion from 'size_t' to 'type', possible loss of data
      "/wd4996",  # std::iterator class template (used as a base class to
                  # provide typedefs) is deprecated in C++17
    ]
  }

  if (is_win) {
    cflags_cc = [
      "/EHsc",  # DXC uses exceptions
      "/Zc:__cplusplus",
      "/Zc:twoPhase-",  # DXC source relies on MSVC's non-conforming
                        # two-phase lookup
      "/Zc:sizedDealloc-",  # Disable sized allocation
    ]

    cflags_c = [
      "/EHsc",  # DXC uses exceptions
    ]
  } else if (is_linux) {
    cflags_c = []

    cflags_cc = [
      "-fcxx-exceptions",  # DXC uses exceptions
      "-fms-extensions",
      "-frtti",  # DXC uses RTTI
    ]
  }

  cflags_c += warning_flags
  cflags_cc += warning_flags

  include_dirs = [
    "$dawn_dxc_dir/include",
    "$dawn_dxc_dir/tools/clang/include",
    "$dawn_dxc_dir/tools/clang/tools",
    "$dawn_dxc_dir/include/llvm/llvm_assert",
    "${target_gen_dir}/include",  # Generated files
  ]

  defines = []
  if (is_debug && dawn_dxc_disable_asserts_debug) {
    defines += [ "NDEBUG" ]
  }
}

#######################################################################
## Support
#######################################################################

# Target shared by tbl-gen and dxc targets
static_library("Support") {
  output_name = "LLVMSupport"

  if (dawn_has_build) {
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
  }

  public_configs = [ ":common_config" ]

  public_deps = [
    ":AsmParsers-def",
    ":AsmPrinters-def",
    ":Disassemblers-def",
    ":Targets-def",
    ":config-header",
    ":llvm-config-header",
  ]

  sources = [
    "$dawn_dxc_dir/lib/MSSupport/MSFileSystemImpl.cpp",
    "$dawn_dxc_dir/lib/Support/APFloat.cpp",
    "$dawn_dxc_dir/lib/Support/APInt.cpp",
    "$dawn_dxc_dir/lib/Support/APSInt.cpp",
    "$dawn_dxc_dir/lib/Support/ARMBuildAttrs.cpp",
    "$dawn_dxc_dir/lib/Support/ARMWinEH.cpp",
    "$dawn_dxc_dir/lib/Support/Allocator.cpp",
    "$dawn_dxc_dir/lib/Support/Atomic.cpp",
    "$dawn_dxc_dir/lib/Support/BlockFrequency.cpp",
    "$dawn_dxc_dir/lib/Support/BranchProbability.cpp",
    "$dawn_dxc_dir/lib/Support/COM.cpp",
    "$dawn_dxc_dir/lib/Support/CommandLine.cpp",
    "$dawn_dxc_dir/lib/Support/Compression.cpp",
    "$dawn_dxc_dir/lib/Support/ConvertUTF.c",
    "$dawn_dxc_dir/lib/Support/ConvertUTFWrapper.cpp",
    "$dawn_dxc_dir/lib/Support/CrashRecoveryContext.cpp",
    "$dawn_dxc_dir/lib/Support/DAGDeltaAlgorithm.cpp",
    "$dawn_dxc_dir/lib/Support/DataExtractor.cpp",
    "$dawn_dxc_dir/lib/Support/DataStream.cpp",
    "$dawn_dxc_dir/lib/Support/Debug.cpp",
    "$dawn_dxc_dir/lib/Support/DeltaAlgorithm.cpp",
    "$dawn_dxc_dir/lib/Support/Dwarf.cpp",
    "$dawn_dxc_dir/lib/Support/Errno.cpp",
    "$dawn_dxc_dir/lib/Support/ErrorHandling.cpp",
    "$dawn_dxc_dir/lib/Support/FileOutputBuffer.cpp",
    "$dawn_dxc_dir/lib/Support/FileUtilities.cpp",
    "$dawn_dxc_dir/lib/Support/FoldingSet.cpp",
    "$dawn_dxc_dir/lib/Support/FormattedStream.cpp",
    "$dawn_dxc_dir/lib/Support/GraphWriter.cpp",
    "$dawn_dxc_dir/lib/Support/Hashing.cpp",
    "$dawn_dxc_dir/lib/Support/Host.cpp",
    "$dawn_dxc_dir/lib/Support/IntEqClasses.cpp",
    "$dawn_dxc_dir/lib/Support/IntervalMap.cpp",
    "$dawn_dxc_dir/lib/Support/IntrusiveRefCntPtr.cpp",
    "$dawn_dxc_dir/lib/Support/LEB128.cpp",
    "$dawn_dxc_dir/lib/Support/LineIterator.cpp",
    "$dawn_dxc_dir/lib/Support/Locale.cpp",
    "$dawn_dxc_dir/lib/Support/LockFileManager.cpp",
    "$dawn_dxc_dir/lib/Support/MD5.cpp",
    "$dawn_dxc_dir/lib/Support/MSFileSystemBasic.cpp",
    "$dawn_dxc_dir/lib/Support/ManagedStatic.cpp",
    "$dawn_dxc_dir/lib/Support/MathExtras.cpp",
    "$dawn_dxc_dir/lib/Support/Memory.cpp",
    "$dawn_dxc_dir/lib/Support/MemoryBuffer.cpp",
    "$dawn_dxc_dir/lib/Support/MemoryObject.cpp",
    "$dawn_dxc_dir/lib/Support/Mutex.cpp",
    "$dawn_dxc_dir/lib/Support/Options.cpp",
    "$dawn_dxc_dir/lib/Support/Path.cpp",
    "$dawn_dxc_dir/lib/Support/PrettyStackTrace.cpp",
    "$dawn_dxc_dir/lib/Support/Process.cpp",
    "$dawn_dxc_dir/lib/Support/Program.cpp",
    "$dawn_dxc_dir/lib/Support/RWMutex.cpp",
    "$dawn_dxc_dir/lib/Support/RandomNumberGenerator.cpp",
    "$dawn_dxc_dir/lib/Support/Regex.cpp",
    "$dawn_dxc_dir/lib/Support/ScaledNumber.cpp",
    "$dawn_dxc_dir/lib/Support/SearchForAddressOfSpecialSymbol.cpp",
    "$dawn_dxc_dir/lib/Support/Signals.cpp",
    "$dawn_dxc_dir/lib/Support/SmallPtrSet.cpp",
    "$dawn_dxc_dir/lib/Support/SmallVector.cpp",
    "$dawn_dxc_dir/lib/Support/SourceMgr.cpp",
    "$dawn_dxc_dir/lib/Support/SpecialCaseList.cpp",
    "$dawn_dxc_dir/lib/Support/Statistic.cpp",
    "$dawn_dxc_dir/lib/Support/StreamingMemoryObject.cpp",
    "$dawn_dxc_dir/lib/Support/StringExtras.cpp",
    "$dawn_dxc_dir/lib/Support/StringMap.cpp",
    "$dawn_dxc_dir/lib/Support/StringPool.cpp",
    "$dawn_dxc_dir/lib/Support/StringRef.cpp",
    "$dawn_dxc_dir/lib/Support/StringSaver.cpp",
    "$dawn_dxc_dir/lib/Support/SystemUtils.cpp",
    "$dawn_dxc_dir/lib/Support/TargetParser.cpp",
    "$dawn_dxc_dir/lib/Support/TargetRegistry.cpp",
    "$dawn_dxc_dir/lib/Support/ThreadLocal.cpp",
    "$dawn_dxc_dir/lib/Support/Threading.cpp",
    "$dawn_dxc_dir/lib/Support/TimeProfiler.cpp",
    "$dawn_dxc_dir/lib/Support/TimeValue.cpp",
    "$dawn_dxc_dir/lib/Support/Timer.cpp",
    "$dawn_dxc_dir/lib/Support/ToolOutputFile.cpp",
    "$dawn_dxc_dir/lib/Support/Triple.cpp",
    "$dawn_dxc_dir/lib/Support/Twine.cpp",
    "$dawn_dxc_dir/lib/Support/Unicode.cpp",
    "$dawn_dxc_dir/lib/Support/Valgrind.cpp",
    "$dawn_dxc_dir/lib/Support/Watchdog.cpp",
    "$dawn_dxc_dir/lib/Support/YAMLParser.cpp",
    "$dawn_dxc_dir/lib/Support/YAMLTraits.cpp",
    "$dawn_dxc_dir/lib/Support/assert.cpp",
    "$dawn_dxc_dir/lib/Support/circular_raw_ostream.cpp",
    "$dawn_dxc_dir/lib/Support/raw_os_ostream.cpp",
    "$dawn_dxc_dir/lib/Support/raw_ostream.cpp",
    "$dawn_dxc_dir/lib/Support/regcomp.c",
    "$dawn_dxc_dir/lib/Support/regerror.c",
    "$dawn_dxc_dir/lib/Support/regexec.c",
    "$dawn_dxc_dir/lib/Support/regfree.c",
    "$dawn_dxc_dir/lib/Support/regmalloc.cpp",
    "$dawn_dxc_dir/lib/Support/regstrlcpy.c",
  ]
}

#######################################################################
## llvm-tblgen and clang-tblgen executables and templates
#######################################################################

# Common code for both llvm-tblgen and clang-tblgen
source_set("TableGen") {
  public_deps = [ ":Support" ]

  sources = [
    "$dawn_dxc_dir/lib/TableGen/Error.cpp",
    "$dawn_dxc_dir/lib/TableGen/Main.cpp",
    "$dawn_dxc_dir/lib/TableGen/Record.cpp",
    "$dawn_dxc_dir/lib/TableGen/SetTheory.cpp",
    "$dawn_dxc_dir/lib/TableGen/StringMatcher.cpp",
    "$dawn_dxc_dir/lib/TableGen/TGLexer.cpp",
    "$dawn_dxc_dir/lib/TableGen/TGParser.cpp",
    "$dawn_dxc_dir/lib/TableGen/TableGenBackend.cpp",
  ]
}

executable("llvm-tblgen") {
  deps = [ ":TableGen" ]

  sources = [
    "$dawn_dxc_dir/utils/TableGen/AsmMatcherEmitter.cpp",
    "$dawn_dxc_dir/utils/TableGen/AsmWriterEmitter.cpp",
    "$dawn_dxc_dir/utils/TableGen/AsmWriterInst.cpp",
    "$dawn_dxc_dir/utils/TableGen/CTagsEmitter.cpp",
    "$dawn_dxc_dir/utils/TableGen/CallingConvEmitter.cpp",
    "$dawn_dxc_dir/utils/TableGen/CodeEmitterGen.cpp",
    "$dawn_dxc_dir/utils/TableGen/CodeGenDAGPatterns.cpp",
    "$dawn_dxc_dir/utils/TableGen/CodeGenInstruction.cpp",
    "$dawn_dxc_dir/utils/TableGen/CodeGenMapTable.cpp",
    "$dawn_dxc_dir/utils/TableGen/CodeGenRegisters.cpp",
    "$dawn_dxc_dir/utils/TableGen/CodeGenSchedule.cpp",
    "$dawn_dxc_dir/utils/TableGen/CodeGenTarget.cpp",
    "$dawn_dxc_dir/utils/TableGen/DAGISelEmitter.cpp",
    "$dawn_dxc_dir/utils/TableGen/DAGISelMatcher.cpp",
    "$dawn_dxc_dir/utils/TableGen/DAGISelMatcherEmitter.cpp",
    "$dawn_dxc_dir/utils/TableGen/DAGISelMatcherGen.cpp",
    "$dawn_dxc_dir/utils/TableGen/DAGISelMatcherOpt.cpp",
    "$dawn_dxc_dir/utils/TableGen/DFAPacketizerEmitter.cpp",
    "$dawn_dxc_dir/utils/TableGen/DisassemblerEmitter.cpp",
    "$dawn_dxc_dir/utils/TableGen/FastISelEmitter.cpp",
    "$dawn_dxc_dir/utils/TableGen/FixedLenDecoderEmitter.cpp",
    "$dawn_dxc_dir/utils/TableGen/InstrInfoEmitter.cpp",
    "$dawn_dxc_dir/utils/TableGen/IntrinsicEmitter.cpp",
    "$dawn_dxc_dir/utils/TableGen/OptParserEmitter.cpp",
    "$dawn_dxc_dir/utils/TableGen/PseudoLoweringEmitter.cpp",
    "$dawn_dxc_dir/utils/TableGen/RegisterInfoEmitter.cpp",
    "$dawn_dxc_dir/utils/TableGen/SubtargetEmitter.cpp",
    "$dawn_dxc_dir/utils/TableGen/TableGen.cpp",
  ]
}

executable("clang-tblgen") {
  deps = [ ":TableGen" ]

  sources = [
    "$dawn_dxc_dir/tools/clang/utils/TableGen/ClangASTNodesEmitter.cpp",
    "$dawn_dxc_dir/tools/clang/utils/TableGen/ClangAttrEmitter.cpp",
    "$dawn_dxc_dir/tools/clang/utils/TableGen/ClangCommentCommandInfoEmitter.cpp",
    "$dawn_dxc_dir/tools/clang/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp",
    "$dawn_dxc_dir/tools/clang/utils/TableGen/ClangCommentHTMLTagsEmitter.cpp",
    "$dawn_dxc_dir/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp",
    "$dawn_dxc_dir/tools/clang/utils/TableGen/ClangSACheckersEmitter.cpp",
    "$dawn_dxc_dir/tools/clang/utils/TableGen/NeonEmitter.cpp",
    "$dawn_dxc_dir/tools/clang/utils/TableGen/TableGen.cpp",
  ]
}

template("tblgen") {
  assert(defined(invoker.args), "must set 'args'")
  assert(defined(invoker.td_file), "must set 'td_file")
  assert(defined(invoker.output_name), "must set 'output_name")
  assert(defined(invoker.tblgen_target), "must set 'tblgen_target")

  built_target_action(target_name) {
    td_file = invoker.td_file
    target = invoker.tblgen_target
    inputs = [ td_file ]

    # TODO(amaiorano): Maybe targets should provide full path
    output_file = "$target_gen_dir/" + invoker.output_name
    depfile = "$output_file.d"
    td_file = rebase_path(td_file, root_build_dir)

    args = [
             "-I",
             rebase_path("${invoker.dawn_dxc_dir}/include", root_build_dir),
             "-I",
             get_path_info(td_file, "dir"),
             "-d",
             rebase_path(depfile, root_build_dir),
             "-o",
             rebase_path(output_file, root_build_dir),
             td_file,
           ] + invoker.args

    outputs = [ output_file ]
  }
}

template("clang_tablegen") {
  tblgen(target_name) {
    forward_variables_from(invoker,
                           [
                             "output_name",
                             "td_file",
                             "visibility",
                           ])
    args = invoker.args
    tblgen_target = ":clang-tblgen"
  }
}

template("clang_diag_gen") {
  clang_tablegen("Diagnostic${target_name}Kinds-inc") {
    forward_variables_from(invoker, "*")
    args = [
      "-gen-clang-diags-defs",
      "-clang-component=${target_name}",
    ]
    td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Diagnostic.td"
    output_name =
        "/tools/clang/include/clang/Basic/Diagnostic${target_name}Kinds.inc"
  }
}

#######################################################################
## llvm-tblgen and clang-tblgen targets
#######################################################################

tblgen("HLSLOptions-inc") {
  args = [ "-gen-opt-parser-defs" ]
  td_file = "$dawn_dxc_dir/include/dxc/Support/HLSLOptions.td"
  output_name = "include/dxc/Support/HLSLOptions.inc"
  tblgen_target = ":llvm-tblgen"
}

tblgen("Intrinsics-td") {
  args = [ "-gen-intrinsic" ]
  td_file = "$dawn_dxc_dir/include/llvm/IR/Intrinsics.td"
  output_name = "include/llvm/IR/Intrinsics.gen"
  tblgen_target = ":llvm-tblgen"
}

tblgen("clang-Driver-Options-inc") {
  args = [ "-gen-opt-parser-defs" ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Driver/Options.td"
  output_name = "tools/clang/include/clang/Driver/Options.inc"
  tblgen_target = ":llvm-tblgen"
}

clang_diag_gen("Analysis") {
}
clang_diag_gen("AST") {
}
clang_diag_gen("Comment") {
}
clang_diag_gen("Common") {
}
clang_diag_gen("Driver") {
}
clang_diag_gen("Frontend") {
}
clang_diag_gen("Lex") {
}
clang_diag_gen("Parse") {
}
clang_diag_gen("Sema") {
}
clang_diag_gen("Serialization") {
}
clang_tablegen("DiagnosticGroups-inc") {
  args = [ "-gen-clang-diag-groups" ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Diagnostic.td"
  output_name = "/tools/clang/include/clang/Basic/DiagnosticGroups.inc"
}
clang_tablegen("AttrList-inc") {
  args = [
    "-gen-clang-attr-list",
    "-I",
    rebase_path("$dawn_dxc_dir/tools/clang/include", root_build_dir),
  ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Attr.td"
  output_name = "/tools/clang/include/clang/Basic/AttrList.inc"
}
clang_tablegen("AttrHasAttributeImpl-inc") {
  args = [
    "-gen-clang-attr-has-attribute-impl",
    "-I",
    rebase_path("$dawn_dxc_dir/tools/clang/include", root_build_dir),
  ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Attr.td"
  output_name = "/tools/clang/include/clang/Basic/AttrHasAttributeImpl.inc"
}
ClangBasicDeps = [
  ":DiagnosticAnalysisKinds-inc",
  ":DiagnosticASTKinds-inc",
  ":DiagnosticCommentKinds-inc",
  ":DiagnosticCommonKinds-inc",
  ":DiagnosticDriverKinds-inc",
  ":DiagnosticFrontendKinds-inc",
  ":DiagnosticLexKinds-inc",
  ":DiagnosticParseKinds-inc",
  ":DiagnosticSemaKinds-inc",
  ":DiagnosticSerializationKinds-inc",
  ":DiagnosticGroups-inc",
  ":AttrList-inc",
  ":AttrHasAttributeImpl-inc",
]

clang_tablegen("Attrs-inc") {
  args = [
    "-gen-clang-attr-classes",
    "-I",
    rebase_path("$dawn_dxc_dir/tools/clang/include", root_build_dir),
  ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Attr.td"
  output_name = "/tools/clang/include/clang/AST/Attrs.inc"
}
clang_tablegen("AttrImpl-inc") {
  args = [
    "-gen-clang-attr-impl",
    "-I",
    rebase_path("$dawn_dxc_dir/tools/clang/include", root_build_dir),
  ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Attr.td"
  output_name = "/tools/clang/include/clang/AST/AttrImpl.inc"
}
clang_tablegen("AttrDump-inc") {
  args = [
    "-gen-clang-attr-dump",
    "-I",
    rebase_path("$dawn_dxc_dir/tools/clang/include", root_build_dir),
  ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Attr.td"
  output_name = "/tools/clang/include/clang/AST/AttrDump.inc"
}
clang_tablegen("AttrVisitor-inc") {
  args = [
    "-gen-clang-attr-ast-visitor",
    "-I",
    rebase_path("$dawn_dxc_dir/tools/clang/include", root_build_dir),
  ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Attr.td"
  output_name = "/tools/clang/include/clang/AST/AttrVisitor.inc"
}
clang_tablegen("StmtNodes-inc") {
  args = [ "-gen-clang-stmt-nodes" ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/StmtNodes.td"
  output_name = "/tools/clang/include/clang/AST/StmtNodes.inc"
}
clang_tablegen("DeclNodes-inc") {
  args = [ "-gen-clang-decl-nodes" ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/DeclNodes.td"
  output_name = "/tools/clang/include/clang/AST/DeclNodes.inc"
}
clang_tablegen("CommentNodes-inc") {
  args = [ "-gen-clang-comment-nodes" ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/CommentNodes.td"
  output_name = "/tools/clang/include/clang/AST/CommentNodes.inc"
}
clang_tablegen("CommentHTMLTags-inc") {
  args = [ "-gen-clang-comment-html-tags" ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/AST/CommentHTMLTags.td"
  output_name = "/tools/clang/include/clang/AST/CommentHTMLTags.inc"
}
clang_tablegen("CommentHTMLTagsProperties-inc") {
  args = [ "-gen-clang-comment-html-tags-properties" ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/AST/CommentHTMLTags.td"
  output_name = "/tools/clang/include/clang/AST/CommentHTMLTagsProperties.inc"
}
clang_tablegen("CommentHTMLNamedCharacterReferences-inc") {
  args = [ "-gen-clang-comment-html-named-character-references" ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/AST/CommentHTMLNamedCharacterReferences.td"
  output_name =
      "/tools/clang/include/clang/AST/CommentHTMLNamedCharacterReferences.inc"
}
clang_tablegen("CommentCommandInfo-inc") {
  args = [ "-gen-clang-comment-command-info" ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/AST/CommentCommands.td"
  output_name = "/tools/clang/include/clang/AST/CommentCommandInfo.inc"
}
clang_tablegen("CommentCommandList-inc") {
  args = [ "-gen-clang-comment-command-list" ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/AST/CommentCommands.td"
  output_name = "/tools/clang/include/clang/AST/CommentCommandList.inc"
}
ClangASTDeps = [
  ":Attrs-inc",
  ":AttrImpl-inc",
  ":AttrDump-inc",
  ":AttrVisitor-inc",
  ":StmtNodes-inc",
  ":DeclNodes-inc",
  ":CommentNodes-inc",
  ":CommentHTMLTags-inc",
  ":CommentHTMLTagsProperties-inc",
  ":CommentHTMLNamedCharacterReferences-inc",
  ":CommentCommandInfo-inc",
  ":CommentCommandList-inc",
]
clang_tablegen("AttrTemplateInstantiate-inc") {
  args = [
    "-gen-clang-attr-template-instantiate",
    "-I",
    rebase_path("$dawn_dxc_dir/tools/clang/include", root_build_dir),
  ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Attr.td"
  output_name = "/tools/clang/include/clang/Sema/AttrTemplateInstantiate.inc"
}
clang_tablegen("AttrParsedAttrList-inc") {
  args = [
    "-gen-clang-attr-parsed-attr-list",
    "-I",
    rebase_path("$dawn_dxc_dir/tools/clang/include", root_build_dir),
  ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Attr.td"
  output_name = "/tools/clang/include/clang/Sema/AttrParsedAttrList.inc"
}
clang_tablegen("AttrParsedAttrKinds-inc") {
  args = [
    "-gen-clang-attr-parsed-attr-kinds",
    "-I",
    rebase_path("$dawn_dxc_dir/tools/clang/include", root_build_dir),
  ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Attr.td"
  output_name = "/tools/clang/include/clang/Sema/AttrParsedAttrKinds.inc"
}
clang_tablegen("AttrSpellingListIndex-inc") {
  args = [
    "-gen-clang-attr-spelling-index",
    "-I",
    rebase_path("$dawn_dxc_dir/tools/clang/include", root_build_dir),
  ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Attr.td"
  output_name = "/tools/clang/include/clang/Sema/AttrSpellingListIndex.inc"
}
clang_tablegen("AttrParsedAttrImpl-inc") {
  args = [
    "-gen-clang-attr-parsed-attr-impl",
    "-I",
    rebase_path("$dawn_dxc_dir/tools/clang/include", root_build_dir),
  ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Attr.td"
  output_name = "/tools/clang/include/clang/Sema/AttrParsedAttrImpl.inc"
}
ClangSemaDeps = [
  ":AttrTemplateInstantiate-inc",
  ":AttrParsedAttrList-inc",
  ":AttrParsedAttrKinds-inc",
  ":AttrSpellingListIndex-inc",
  ":AttrParsedAttrImpl-inc",
]
clang_tablegen("AttrParserStringSwitches-inc") {
  args = [
    "-gen-clang-attr-parser-string-switches",
    "-I",
    rebase_path("$dawn_dxc_dir/tools/clang/include", root_build_dir),
  ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Attr.td"
  output_name = "/tools/clang/include/clang/Parse/AttrParserStringSwitches.inc"
}
clang_tablegen("AttrPCHRead-inc") {
  args = [
    "-gen-clang-attr-pch-read",
    "-I",
    rebase_path("$dawn_dxc_dir/tools/clang/include", root_build_dir),
  ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Attr.td"
  output_name = "/tools/clang/include/clang/Serialization/AttrPCHRead.inc"
}
clang_tablegen("AttrPCHWrite-inc") {
  args = [
    "-gen-clang-attr-pch-write",
    "-I",
    rebase_path("$dawn_dxc_dir/tools/clang/include", root_build_dir),
  ]
  td_file = "$dawn_dxc_dir/tools/clang/include/clang/Basic/Attr.td"
  output_name = "/tools/clang/include/clang/Serialization/AttrPCHWrite.inc"
}

#######################################################################
## dxc generators (gen_version, hlsl_hctgen, etc.)
#######################################################################

# Generates dxcetw.h used by dxcompiler
system_binary_action("dxcetw-h") {
  manifest = "$dawn_dxc_dir/include/dxc/Tracing/dxcetw.man"
  inputs = [ manifest ]
  gen_output_dir = "$target_gen_dir/include/dxc/Tracing/dxcetw"
  outputs = [
    "$gen_output_dir/dxcetw.h",
    "$gen_output_dir/dxcetw.rc",
    "$gen_output_dir/dxcetwTEMP.bin",

    # Note: CMake copies from tmpdxcetw_MSG00001.bin to MSG00001.bin,
    # but we don't copy, so we get the default output name. Is this okay?
    "$gen_output_dir/dxcetw_MSG00001.bin",
  ]
  args = [
    "mc",
    "-r",
    rebase_path(gen_output_dir, root_build_dir),
    "-h",
    rebase_path(gen_output_dir, root_build_dir),
    "-p",
    "DxcEtw_",
    "-um",
    "-z",
    "dxcetw",
    rebase_path(manifest, root_build_dir),
  ]
}

generate_version_include("hlsl_dxcversion_autogen") {
  input_file = "$dawn_dxc_dir/utils/version/version.inc"
  output_file = "/utils/version/dxcversion.inc"
}

add_hlsl_hctgen("DxcDisassembler-inc") {
  mode = "DxcDisassembler"
  output = "/tools/clang/tools/dxcompiler/DxcDisassembler.inc"
  build_dir = true
}
add_hlsl_hctgen("DxilValidation-inc") {
  mode = "DxilValidationInc"
  output = "/include/dxc/HLSL/DxilValidation.inc"
  build_dir = true
}
add_hlsl_hctgen("DxcOptimizer-inc") {
  mode = "DxcOptimizer"
  output = "/lib/HLSL/DxcOptimizer.inc"
  build_dir = true
}
add_hlsl_hctgen("DxilValidationImpl-inc") {
  mode = "DxilValidation"
  output = "/lib/HLSL/DxilValidationImpl.inc"
  build_dir = true
}
add_hlsl_hctgen("gen_intrin_main_tables_15-h") {
  mode = "DxilIntrinsicTables"
  output = "/tools/clang/lib/Sema/gen_intrin_main_tables_15.h"
  build_dir = true
}
add_hlsl_hctgen("DxilPIXPasses-inc") {
  mode = "DxilPIXPasses"
  output = "/lib/DxilPIXPasses/DxilPIXPasses.inc"
  build_dir = true
}

#######################################################################
## dxc and dxcompiler
#######################################################################

# This target contains common code shared by both 'dxc' and 'dxcompiler' targets
static_library("dxclib") {
  public_configs = [ ":common_config" ]

  if (dawn_has_build) {
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
  }
  public_deps = [
    ":DataTypes-header",
    ":HLSLOptions-inc",
    ":Intrinsics-td",
    ":SharedLibAffix-h",
    ":Support",
  ]
  sources = [
    "$dawn_dxc_dir/lib/DXIL/DxilCBuffer.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilCompType.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilCounters.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilInterpolationMode.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilMetadataHelper.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilModule.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilModuleHelper.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilOperations.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilPDB.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilResource.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilResourceBase.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilResourceBinding.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilResourceProperties.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilSampler.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilSemantic.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilShaderFlags.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilShaderModel.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilSignature.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilSignatureElement.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilSubobject.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilTypeSystem.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilUtil.cpp",
    "$dawn_dxc_dir/lib/DXIL/DxilUtilDbgInfoAndMisc.cpp",
    "$dawn_dxc_dir/lib/DxcSupport/FileIOHelper.cpp",
    "$dawn_dxc_dir/lib/DxcSupport/Global.cpp",
    "$dawn_dxc_dir/lib/DxcSupport/HLSLOptions.cpp",
    "$dawn_dxc_dir/lib/DxcSupport/Unicode.cpp",
    "$dawn_dxc_dir/lib/DxcSupport/WinAdapter.cpp",
    "$dawn_dxc_dir/lib/DxcSupport/WinFunctions.cpp",
    "$dawn_dxc_dir/lib/DxcSupport/dxcapi.use.cpp",
    "$dawn_dxc_dir/lib/DxcSupport/dxcmem.cpp",
    "$dawn_dxc_dir/lib/DxilContainer/DxcContainerBuilder.cpp",
    "$dawn_dxc_dir/lib/DxilContainer/DxilContainer.cpp",
    "$dawn_dxc_dir/lib/DxilContainer/DxilContainerAssembler.cpp",
    "$dawn_dxc_dir/lib/DxilContainer/DxilContainerReader.cpp",
    "$dawn_dxc_dir/lib/DxilContainer/DxilRDATBuilder.cpp",
    "$dawn_dxc_dir/lib/DxilContainer/DxilRuntimeReflection.cpp",
    "$dawn_dxc_dir/lib/DxilContainer/RDATDxilSubobjects.cpp",
    "$dawn_dxc_dir/lib/Option/Arg.cpp",
    "$dawn_dxc_dir/lib/Option/ArgList.cpp",
    "$dawn_dxc_dir/lib/Option/OptTable.cpp",
    "$dawn_dxc_dir/lib/Option/Option.cpp",
  ]
}

# Template to define a source_set or static_library for dxcompiler sources.
# Used to split up sources into multiple targets to avoid name collisions.
template("dxcompiler_sourceset") {
  assert(defined(invoker.target_type), "must set target_type")

  target(invoker.target_type, target_name) {
    forward_variables_from(invoker, [ "sources" ])

    public_configs = [ ":common_config" ]

    if (is_win) {
      # DXC is built with multibyte character set, so it expects Win32 functions to map the ANSI ones, not the UNICODE ones.
      configs -= [ "//build/config/win:unicode" ]
    }

    deps = [
      ":AttrPCHRead-inc",
      ":AttrPCHWrite-inc",
      ":AttrParserStringSwitches-inc",
      ":DxcOptimizer-inc",
      ":DxilPIXPasses-inc",
      ":DxilValidation-inc",
      ":DxilValidationImpl-inc",
      ":clang-Driver-Options-inc",
      ":clang-basic-version-inc",
      ":clang-config-h",
      ":dxclib",
      ":gen_intrin_main_tables_15-h",
      ":hlsl_dxcversion_autogen",
    ]
    deps += ClangBasicDeps
    deps += ClangASTDeps
    deps += ClangSemaDeps

    include_dirs = [
      "${target_gen_dir}/utils/version",  # hlsl_dxcversion_autogen
      "${target_gen_dir}/tools/clang/include",
      "${target_gen_dir}/tools/clang/tools/dxcompiler",
      "${target_gen_dir}/tools/clang/lib/Sema",
      "${target_gen_dir}/lib/HLSL",
      "${target_gen_dir}/lib/DxilPIXPasses",
    ]

    if (is_linux) {
      include_dirs += [
        "$dawn_dxheaders_dir/include/directx",
        "$dawn_dxheaders_dir/include/wsl/stubs/",
      ]
    }

    if (is_win) {
      deps += [ ":dxcetw-h" ]
      include_dirs += [
        "$target_gen_dir/include/dxc/Tracing/dxcetw",  # dxcetw-h
        "$visual_studio_path/DIA SDK/include",  # Required for msvc builds
      ]
    }

    defines = [
      "DXC_API_IMPORT=",  # Don't import locally defined symbols
      "CINDEX_LINKAGE=",
      "LIBCLANG_CC=",
      "_CINDEX_LIB_",
    ]

    if (defined(invoker.defines)) {
      defines += invoker.defines
    }
  }
}

dxcompiler_sourceset("lib_analysis") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/lib/Analysis/AliasAnalysis.cpp",
    "$dawn_dxc_dir/lib/Analysis/AliasAnalysisCounter.cpp",
    "$dawn_dxc_dir/lib/Analysis/AliasAnalysisEvaluator.cpp",
    "$dawn_dxc_dir/lib/Analysis/AliasDebugger.cpp",
    "$dawn_dxc_dir/lib/Analysis/AliasSetTracker.cpp",
    "$dawn_dxc_dir/lib/Analysis/Analysis.cpp",
    "$dawn_dxc_dir/lib/Analysis/AssumptionCache.cpp",
    "$dawn_dxc_dir/lib/Analysis/BasicAliasAnalysis.cpp",
    "$dawn_dxc_dir/lib/Analysis/BlockFrequencyInfo.cpp",
    "$dawn_dxc_dir/lib/Analysis/BlockFrequencyInfoImpl.cpp",
    "$dawn_dxc_dir/lib/Analysis/BranchProbabilityInfo.cpp",
    "$dawn_dxc_dir/lib/Analysis/CFG.cpp",
    "$dawn_dxc_dir/lib/Analysis/CFGPrinter.cpp",
    "$dawn_dxc_dir/lib/Analysis/CFLAliasAnalysis.cpp",
    "$dawn_dxc_dir/lib/Analysis/CGSCCPassManager.cpp",
    "$dawn_dxc_dir/lib/Analysis/CaptureTracking.cpp",
    "$dawn_dxc_dir/lib/Analysis/CodeMetrics.cpp",
    "$dawn_dxc_dir/lib/Analysis/ConstantFolding.cpp",
    "$dawn_dxc_dir/lib/Analysis/CostModel.cpp",
    "$dawn_dxc_dir/lib/Analysis/Delinearization.cpp",
    "$dawn_dxc_dir/lib/Analysis/DependenceAnalysis.cpp",
    "$dawn_dxc_dir/lib/Analysis/DivergenceAnalysis.cpp",
    "$dawn_dxc_dir/lib/Analysis/DomPrinter.cpp",
    "$dawn_dxc_dir/lib/Analysis/DominanceFrontier.cpp",
    "$dawn_dxc_dir/lib/Analysis/DxilConstantFolding.cpp",
    "$dawn_dxc_dir/lib/Analysis/DxilConstantFoldingExt.cpp",
    "$dawn_dxc_dir/lib/Analysis/DxilSimplify.cpp",
    "$dawn_dxc_dir/lib/Analysis/DxilValueCache.cpp",
    "$dawn_dxc_dir/lib/Analysis/IPA/CallGraph.cpp",
    "$dawn_dxc_dir/lib/Analysis/IPA/CallGraphSCCPass.cpp",
    "$dawn_dxc_dir/lib/Analysis/IPA/CallPrinter.cpp",
    "$dawn_dxc_dir/lib/Analysis/IPA/GlobalsModRef.cpp",
    "$dawn_dxc_dir/lib/Analysis/IPA/IPA.cpp",
    "$dawn_dxc_dir/lib/Analysis/IPA/InlineCost.cpp",
    "$dawn_dxc_dir/lib/Analysis/IVUsers.cpp",
    "$dawn_dxc_dir/lib/Analysis/InstCount.cpp",
    "$dawn_dxc_dir/lib/Analysis/InstructionSimplify.cpp",
    "$dawn_dxc_dir/lib/Analysis/Interval.cpp",
    "$dawn_dxc_dir/lib/Analysis/IntervalPartition.cpp",
    "$dawn_dxc_dir/lib/Analysis/IteratedDominanceFrontier.cpp",
    "$dawn_dxc_dir/lib/Analysis/LazyCallGraph.cpp",
    "$dawn_dxc_dir/lib/Analysis/LazyValueInfo.cpp",
    "$dawn_dxc_dir/lib/Analysis/LibCallAliasAnalysis.cpp",
    "$dawn_dxc_dir/lib/Analysis/LibCallSemantics.cpp",
    "$dawn_dxc_dir/lib/Analysis/Lint.cpp",
    "$dawn_dxc_dir/lib/Analysis/Loads.cpp",
    "$dawn_dxc_dir/lib/Analysis/LoopAccessAnalysis.cpp",
    "$dawn_dxc_dir/lib/Analysis/LoopInfo.cpp",
    "$dawn_dxc_dir/lib/Analysis/LoopPass.cpp",
    "$dawn_dxc_dir/lib/Analysis/MemDepPrinter.cpp",
    "$dawn_dxc_dir/lib/Analysis/MemDerefPrinter.cpp",
    "$dawn_dxc_dir/lib/Analysis/MemoryBuiltins.cpp",
    "$dawn_dxc_dir/lib/Analysis/MemoryDependenceAnalysis.cpp",
    "$dawn_dxc_dir/lib/Analysis/MemoryLocation.cpp",
    "$dawn_dxc_dir/lib/Analysis/ModuleDebugInfoPrinter.cpp",
    "$dawn_dxc_dir/lib/Analysis/NoAliasAnalysis.cpp",
    "$dawn_dxc_dir/lib/Analysis/PHITransAddr.cpp",
    "$dawn_dxc_dir/lib/Analysis/PostDominators.cpp",
    "$dawn_dxc_dir/lib/Analysis/PtrUseVisitor.cpp",
    "$dawn_dxc_dir/lib/Analysis/ReducibilityAnalysis.cpp",
    "$dawn_dxc_dir/lib/Analysis/RegionPass.cpp",
    "$dawn_dxc_dir/lib/Analysis/ScalarEvolution.cpp",
    "$dawn_dxc_dir/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp",
    "$dawn_dxc_dir/lib/Analysis/ScalarEvolutionExpander.cpp",
    "$dawn_dxc_dir/lib/Analysis/ScalarEvolutionNormalization.cpp",
    "$dawn_dxc_dir/lib/Analysis/ScopedNoAliasAA.cpp",
    "$dawn_dxc_dir/lib/Analysis/SparsePropagation.cpp",
    "$dawn_dxc_dir/lib/Analysis/TargetLibraryInfo.cpp",
    "$dawn_dxc_dir/lib/Analysis/TargetTransformInfo.cpp",
    "$dawn_dxc_dir/lib/Analysis/Trace.cpp",
    "$dawn_dxc_dir/lib/Analysis/TypeBasedAliasAnalysis.cpp",
    "$dawn_dxc_dir/lib/Analysis/ValueTracking.cpp",
    "$dawn_dxc_dir/lib/Analysis/VectorUtils.cpp",
    "$dawn_dxc_dir/lib/Analysis/VectorUtils2.cpp",
    "$dawn_dxc_dir/lib/Analysis/regioninfo.cpp",
    "$dawn_dxc_dir/lib/Analysis/regionprinter.cpp",
  ]
}
dxcompiler_sourceset("lib_asmparser") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/lib/AsmParser/LLLexer.cpp",
    "$dawn_dxc_dir/lib/AsmParser/LLParser.cpp",
    "$dawn_dxc_dir/lib/AsmParser/Parser.cpp",
  ]
}
dxcompiler_sourceset("lib_bitcode") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/lib/Bitcode/Reader/BitcodeReader.cpp",
    "$dawn_dxc_dir/lib/Bitcode/Reader/BitstreamReader.cpp",
    "$dawn_dxc_dir/lib/Bitcode/Writer/BitWriter.cpp",
    "$dawn_dxc_dir/lib/Bitcode/Writer/BitcodeWriter.cpp",
    "$dawn_dxc_dir/lib/Bitcode/Writer/BitcodeWriterPass.cpp",
    "$dawn_dxc_dir/lib/Bitcode/Writer/ValueEnumerator.cpp",
  ]
}
dxcompiler_sourceset("lib_dxcbindingtable") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [ "$dawn_dxc_dir/lib/DxcBindingTable/DxcBindingTable.cpp" ]
}
dxcompiler_sourceset("lib_dxilcompression") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/lib/DxilCompression/DxilCompression.cpp",
    "$dawn_dxc_dir/lib/DxilCompression/miniz.c",
  ]
}
dxcompiler_sourceset("lib_dxildia") {
  target_type = "static_library"  # Ensure unused globals are stripped
  if (is_win) {
    sources = [
      "$dawn_dxc_dir/lib/DxilDia/DxcPixCompilationInfo.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxcPixDxilDebugInfo.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxcPixDxilStorage.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxcPixEntrypoints.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxcPixLiveVariables.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxcPixLiveVariables_FragmentIterator.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxcPixTypes.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxcPixVariables.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxilDia.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxilDiaDataSource.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxilDiaEnumTables.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxilDiaSession.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxilDiaSymbolManager.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxilDiaTable.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxilDiaTableFrameData.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxilDiaTableInjectedSources.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxilDiaTableInputAssemblyFile.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxilDiaTableLineNumbers.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxilDiaTableSections.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxilDiaTableSegmentMap.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxilDiaTableSourceFiles.cpp",
      "$dawn_dxc_dir/lib/DxilDia/DxilDiaTableSymbols.cpp",
    ]
  }
}
dxcompiler_sourceset("lib_dxilpixpasses") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/lib/DxilPIXPasses/DxilAddPixelHitInstrumentation.cpp",
    "$dawn_dxc_dir/lib/DxilPIXPasses/DxilAnnotateWithVirtualRegister.cpp",
    "$dawn_dxc_dir/lib/DxilPIXPasses/DxilDbgValueToDbgDeclare.cpp",
    "$dawn_dxc_dir/lib/DxilPIXPasses/DxilDebugInstrumentation.cpp",
    "$dawn_dxc_dir/lib/DxilPIXPasses/DxilForceEarlyZ.cpp",
    "$dawn_dxc_dir/lib/DxilPIXPasses/DxilOutputColorBecomesConstant.cpp",
    "$dawn_dxc_dir/lib/DxilPIXPasses/DxilPIXAddTidToAmplificationShaderPayload.cpp",
    "$dawn_dxc_dir/lib/DxilPIXPasses/DxilPIXMeshShaderOutputInstrumentation.cpp",
    "$dawn_dxc_dir/lib/DxilPIXPasses/DxilPIXPasses.cpp",
    "$dawn_dxc_dir/lib/DxilPIXPasses/DxilPIXVirtualRegisters.cpp",
    "$dawn_dxc_dir/lib/DxilPIXPasses/DxilReduceMSAAToSingleSample.cpp",
    "$dawn_dxc_dir/lib/DxilPIXPasses/DxilRemoveDiscards.cpp",
    "$dawn_dxc_dir/lib/DxilPIXPasses/DxilShaderAccessTracking.cpp",
    "$dawn_dxc_dir/lib/DxilPIXPasses/PixPassHelpers.cpp",
  ]
}
dxcompiler_sourceset("lib_dxilrootsignature") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/lib/DxilRootSignature/DxilRootSignature.cpp",
    "$dawn_dxc_dir/lib/DxilRootSignature/DxilRootSignatureConvert.cpp",
    "$dawn_dxc_dir/lib/DxilRootSignature/DxilRootSignatureSerializer.cpp",
    "$dawn_dxc_dir/lib/DxilRootSignature/DxilRootSignatureValidator.cpp",
  ]
}
dxcompiler_sourceset("lib_hlsl") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/lib/HLSL/ComputeViewIdState.cpp",
    "$dawn_dxc_dir/lib/HLSL/ComputeViewIdStateBuilder.cpp",
    "$dawn_dxc_dir/lib/HLSL/ControlDependence.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxcOptimizer.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilCondenseResources.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilContainerReflection.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilConvergent.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilDeleteRedundantDebugValues.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilEliminateOutputDynamicIndexing.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilExpandTrigIntrinsics.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilExportMap.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilGenerationPass.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilLegalizeEvalOperations.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilLegalizeSampleOffsetPass.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilLinker.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilLoopDeletion.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilNoOptLegalize.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilNoops.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilPackSignatureElement.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilPatchShaderRecordBindings.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilPoisonValues.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilPrecisePropagatePass.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilPreparePasses.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilPreserveAllOutputs.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilPromoteResourcePasses.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilRenameResourcesPass.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilSignatureValidation.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilSimpleGVNHoist.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilTargetLowering.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilTargetTransformInfo.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilTranslateRawBuffer.cpp",
    "$dawn_dxc_dir/lib/HLSL/DxilValidation.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLDeadFunctionElimination.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLExpandStoreIntrinsics.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLLegalizeParameter.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLLowerUDT.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLMatrixBitcastLowerPass.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLMatrixLowerPass.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLMatrixSubscriptUseReplacer.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLMatrixType.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLMetadataPasses.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLModule.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLOperationLower.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLOperationLowerExtension.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLOperations.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLPreprocess.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLResource.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLSignatureLower.cpp",
    "$dawn_dxc_dir/lib/HLSL/HLUtil.cpp",
    "$dawn_dxc_dir/lib/HLSL/PauseResumePasses.cpp",
    "$dawn_dxc_dir/lib/HLSL/WaveSensitivityAnalysis.cpp",
  ]
}

dxcompiler_sourceset("lib_irreader") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [ "$dawn_dxc_dir/lib/IRReader/IRReader.cpp" ]
}
dxcompiler_sourceset("lib_linker") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [ "$dawn_dxc_dir/lib/Linker/LinkModules.cpp" ]
}
dxcompiler_sourceset("lib_mc") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/lib/MC/ConstantPools.cpp",
    "$dawn_dxc_dir/lib/MC/ELFObjectWriter.cpp",
    "$dawn_dxc_dir/lib/MC/MCAsmBackend.cpp",
    "$dawn_dxc_dir/lib/MC/MCAsmInfo.cpp",
    "$dawn_dxc_dir/lib/MC/MCAsmInfoCOFF.cpp",
    "$dawn_dxc_dir/lib/MC/MCAsmInfoDarwin.cpp",
    "$dawn_dxc_dir/lib/MC/MCAsmInfoELF.cpp",
    "$dawn_dxc_dir/lib/MC/MCAsmStreamer.cpp",
    "$dawn_dxc_dir/lib/MC/MCAssembler.cpp",
    "$dawn_dxc_dir/lib/MC/MCCodeEmitter.cpp",
    "$dawn_dxc_dir/lib/MC/MCCodeGenInfo.cpp",
    "$dawn_dxc_dir/lib/MC/MCContext.cpp",
    "$dawn_dxc_dir/lib/MC/MCDwarf.cpp",
    "$dawn_dxc_dir/lib/MC/MCELFObjectTargetWriter.cpp",
    "$dawn_dxc_dir/lib/MC/MCELFStreamer.cpp",
    "$dawn_dxc_dir/lib/MC/MCExpr.cpp",
    "$dawn_dxc_dir/lib/MC/MCInst.cpp",
    "$dawn_dxc_dir/lib/MC/MCInstPrinter.cpp",
    "$dawn_dxc_dir/lib/MC/MCInstrAnalysis.cpp",
    "$dawn_dxc_dir/lib/MC/MCInstrDesc.cpp",
    "$dawn_dxc_dir/lib/MC/MCLabel.cpp",
    "$dawn_dxc_dir/lib/MC/MCLinkerOptimizationHint.cpp",
    "$dawn_dxc_dir/lib/MC/MCMachOStreamer.cpp",
    "$dawn_dxc_dir/lib/MC/MCMachObjectTargetWriter.cpp",
    "$dawn_dxc_dir/lib/MC/MCNullStreamer.cpp",
    "$dawn_dxc_dir/lib/MC/MCObjectFileInfo.cpp",
    "$dawn_dxc_dir/lib/MC/MCObjectStreamer.cpp",
    "$dawn_dxc_dir/lib/MC/MCObjectWriter.cpp",
    "$dawn_dxc_dir/lib/MC/MCRegisterInfo.cpp",
    "$dawn_dxc_dir/lib/MC/MCSchedule.cpp",
    "$dawn_dxc_dir/lib/MC/MCSection.cpp",
    "$dawn_dxc_dir/lib/MC/MCSectionCOFF.cpp",
    "$dawn_dxc_dir/lib/MC/MCSectionELF.cpp",
    "$dawn_dxc_dir/lib/MC/MCSectionMachO.cpp",
    "$dawn_dxc_dir/lib/MC/MCStreamer.cpp",
    "$dawn_dxc_dir/lib/MC/MCSubtargetInfo.cpp",
    "$dawn_dxc_dir/lib/MC/MCSymbol.cpp",
    "$dawn_dxc_dir/lib/MC/MCSymbolELF.cpp",
    "$dawn_dxc_dir/lib/MC/MCSymbolizer.cpp",
    "$dawn_dxc_dir/lib/MC/MCTargetOptions.cpp",
    "$dawn_dxc_dir/lib/MC/MCValue.cpp",
    "$dawn_dxc_dir/lib/MC/MCWin64EH.cpp",
    "$dawn_dxc_dir/lib/MC/MCWinEH.cpp",
    "$dawn_dxc_dir/lib/MC/MachObjectWriter.cpp",
    "$dawn_dxc_dir/lib/MC/StringTableBuilder.cpp",
    "$dawn_dxc_dir/lib/MC/SubtargetFeature.cpp",
    "$dawn_dxc_dir/lib/MC/WinCOFFObjectWriter.cpp",
    "$dawn_dxc_dir/lib/MC/WinCOFFStreamer.cpp",
    "$dawn_dxc_dir/lib/MC/YAML.cpp",
  ]
}
dxcompiler_sourceset("lib_object") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/lib/Object/Archive.cpp",
    "$dawn_dxc_dir/lib/Object/ArchiveWriter.cpp",
    "$dawn_dxc_dir/lib/Object/Binary.cpp",
    "$dawn_dxc_dir/lib/Object/COFFObjectFile.cpp",
    "$dawn_dxc_dir/lib/Object/COFFYAML.cpp",
    "$dawn_dxc_dir/lib/Object/ELF.cpp",
    "$dawn_dxc_dir/lib/Object/ELFObjectFile.cpp",
    "$dawn_dxc_dir/lib/Object/ELFYAML.cpp",
    "$dawn_dxc_dir/lib/Object/Error.cpp",
    "$dawn_dxc_dir/lib/Object/IRObjectFile.cpp",
    "$dawn_dxc_dir/lib/Object/MachOObjectFile.cpp",
    "$dawn_dxc_dir/lib/Object/MachOUniversal.cpp",
    "$dawn_dxc_dir/lib/Object/Object.cpp",
    "$dawn_dxc_dir/lib/Object/ObjectFile.cpp",
    "$dawn_dxc_dir/lib/Object/RecordStreamer.cpp",
    "$dawn_dxc_dir/lib/Object/SymbolSize.cpp",
    "$dawn_dxc_dir/lib/Object/SymbolicFile.cpp",
  ]
}
dxcompiler_sourceset("lib_passprinters") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [ "$dawn_dxc_dir/lib/PassPrinters/PassPrinters.cpp" ]
}
dxcompiler_sourceset("lib_profiledata") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/lib/ProfileData/CoverageMapping.cpp",
    "$dawn_dxc_dir/lib/ProfileData/CoverageMappingReader.cpp",
    "$dawn_dxc_dir/lib/ProfileData/CoverageMappingWriter.cpp",
    "$dawn_dxc_dir/lib/ProfileData/InstrProf.cpp",
    "$dawn_dxc_dir/lib/ProfileData/InstrProfReader.cpp",
    "$dawn_dxc_dir/lib/ProfileData/InstrProfWriter.cpp",
    "$dawn_dxc_dir/lib/ProfileData/SampleProf.cpp",
    "$dawn_dxc_dir/lib/ProfileData/SampleProfReader.cpp",
    "$dawn_dxc_dir/lib/ProfileData/SampleProfWriter.cpp",
  ]
}
dxcompiler_sourceset("lib_target") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/lib/Target/Target.cpp",
    "$dawn_dxc_dir/lib/Target/TargetIntrinsicInfo.cpp",
    "$dawn_dxc_dir/lib/Target/TargetLoweringObjectFile.cpp",
    "$dawn_dxc_dir/lib/Target/TargetMachine.cpp",
    "$dawn_dxc_dir/lib/Target/TargetMachineC.cpp",
    "$dawn_dxc_dir/lib/Target/TargetRecip.cpp",
    "$dawn_dxc_dir/lib/Target/TargetSubtargetInfo.cpp",
  ]
}
dxcompiler_sourceset("lib_transforms") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/lib/Transforms/IPO/BarrierNoopPass.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/ConstantMerge.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/DeadArgumentElimination.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/ElimAvailExtern.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/ExtractGV.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/FunctionAttrs.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/GlobalDCE.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/GlobalOpt.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/IPConstantPropagation.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/IPO.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/InlineAlways.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/InlineSimple.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/Inliner.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/Internalize.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/LoopExtractor.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/LowerBitSets.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/MergeFunctions.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/PartialInlining.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/PassManagerBuilder.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/PruneEH.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/StripDeadPrototypes.cpp",
    "$dawn_dxc_dir/lib/Transforms/IPO/StripSymbols.cpp",
    "$dawn_dxc_dir/lib/Transforms/InstCombine/InstCombineAddSub.cpp",
    "$dawn_dxc_dir/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp",
    "$dawn_dxc_dir/lib/Transforms/InstCombine/InstCombineCalls.cpp",
    "$dawn_dxc_dir/lib/Transforms/InstCombine/InstCombineCasts.cpp",
    "$dawn_dxc_dir/lib/Transforms/InstCombine/InstCombineCompares.cpp",
    "$dawn_dxc_dir/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp",
    "$dawn_dxc_dir/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp",
    "$dawn_dxc_dir/lib/Transforms/InstCombine/InstCombinePHI.cpp",
    "$dawn_dxc_dir/lib/Transforms/InstCombine/InstCombineSelect.cpp",
    "$dawn_dxc_dir/lib/Transforms/InstCombine/InstCombineShifts.cpp",
    "$dawn_dxc_dir/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp",
    "$dawn_dxc_dir/lib/Transforms/InstCombine/InstCombineVectorOps.cpp",
    "$dawn_dxc_dir/lib/Transforms/InstCombine/InstructionCombining.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/ADCE.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/BDCE.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/ConstantHoisting.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/ConstantProp.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/DCE.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/DeadStoreElimination.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/DxilConditionalMem2Reg.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/DxilEliminateVector.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/DxilEraseDeadRegion.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/DxilFixConstArrayInitializer.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/DxilLoopUnroll.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/DxilRemoveDeadBlocks.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/DxilRemoveUnstructuredLoopExits.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/EarlyCSE.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/FlattenCFGPass.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/Float2Int.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/GVN.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/HoistConstantArray.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/IndVarSimplify.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/JumpThreading.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/LICM.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/LoadCombine.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/LoopDeletion.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/LoopDistribute.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/LoopIdiomRecognize.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/LoopInstSimplify.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/LoopInterchange.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/LoopRerollPass.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/LoopRotation.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/LoopStrengthReduce.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/LoopUnrollPass.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/LoopUnswitch.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/LowerAtomic.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/LowerTypePasses.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/MemCpyOptimizer.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/NaryReassociate.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/PlaceSafepoints.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/Reassociate.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/Reg2Mem.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/Reg2MemHLSL.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/SCCP.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/SROA.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/SampleProfile.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/Scalar.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/ScalarReplAggregates.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/ScalarReplAggregatesHLSL.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/Scalarizer.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/SimplifyCFGPass.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/Sink.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/SpeculativeExecution.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/StructurizeCFG.cpp",
    "$dawn_dxc_dir/lib/Transforms/Scalar/TailRecursionElimination.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/ASanStackFrameLayout.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/AddDiscriminators.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/BasicBlockUtils.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/BreakCriticalEdges.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/BuildLibCalls.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/BypassSlowDivision.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/CloneFunction.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/CloneModule.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/CmpInstAnalysis.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/CodeExtractor.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/CtorUtils.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/DemoteRegToStack.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/FlattenCFG.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/GlobalStatus.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/InlineFunction.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/InstructionNamer.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/IntegerDivision.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/LCSSA.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/Local.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/LoopSimplify.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/LoopSimplifyId.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/LoopUnroll.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/LoopUnrollRuntime.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/LoopUtils.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/LoopVersioning.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/LowerInvoke.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/LowerSwitch.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/Mem2Reg.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/MetaRenamer.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/ModuleUtils.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/PromoteMemoryToRegister.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/SSAUpdater.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/SimplifyCFG.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/SimplifyIndVar.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/SimplifyInstructions.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/SimplifyLibCalls.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/SymbolRewriter.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/Utils.cpp",
    "$dawn_dxc_dir/lib/Transforms/Utils/ValueMapper.cpp",
  ]
}
dxcompiler_sourceset("lib_astmatchers") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp",
    "$dawn_dxc_dir/tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp",
  ]
}
dxcompiler_sourceset("clang_lib_ast") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/lib/AST/APValue.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/ASTConsumer.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/ASTContext.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/ASTContextHLSL.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/ASTDiagnostic.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/ASTDumper.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/ASTImporter.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/ASTTypeTraits.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/AttrImpl.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/CXXInheritance.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/Comment.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/CommentBriefParser.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/CommentCommandTraits.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/CommentLexer.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/CommentParser.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/CommentSema.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/Decl.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/DeclBase.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/DeclCXX.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/DeclFriend.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/DeclGroup.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/DeclObjC.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/DeclOpenMP.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/DeclPrinter.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/DeclTemplate.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/DeclarationName.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/Expr.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/ExprCXX.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/ExprClassification.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/ExprConstant.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/ExternalASTSource.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/HlslBuiltinTypeDeclBuilder.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/HlslTypes.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/InheritViz.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/ItaniumCXXABI.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/ItaniumMangle.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/Mangle.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/MicrosoftCXXABI.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/MicrosoftMangle.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/NestedNameSpecifier.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/ParentMap.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/RawCommentList.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/RecordLayout.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/RecordLayoutBuilder.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/SelectorLocationsKind.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/Stmt.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/StmtIterator.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/StmtPrinter.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/StmtProfile.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/StmtViz.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/TemplateBase.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/TemplateName.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/Type.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/TypeLoc.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/TypePrinter.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/VTTBuilder.cpp",
    "$dawn_dxc_dir/tools/clang/lib/AST/VTableBuilder.cpp",
  ]
}
dxcompiler_sourceset("clang_lib_analysis") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/lib/Analysis/AnalysisDeclContext.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/BodyFarm.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/CFG.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/CFGReachabilityAnalysis.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/CFGStmtMap.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/CallGraph.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/CodeInjector.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/Consumed.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/Dominators.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/LiveVariables.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/ObjCNoReturn.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/PostOrderCFGView.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/ProgramPoint.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/PseudoConstantAnalysis.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/ReachableCode.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/ThreadSafety.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/ThreadSafetyCommon.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/ThreadSafetyLogical.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/ThreadSafetyTIL.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Analysis/UninitializedValues.cpp",
  ]
}
dxcompiler_sourceset("clang_lib_basic") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/lib/Basic/Attributes.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/Builtins.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/CharInfo.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/Diagnostic.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/DiagnosticIDs.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/DiagnosticOptions.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/FileManager.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/FileSystemStatCache.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/IdentifierTable.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/LangOptions.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/Module.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/ObjCRuntime.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/OpenMPKinds.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/OperatorPrecedence.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/SanitizerBlacklist.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/Sanitizers.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/SourceLocation.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/SourceManager.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/TargetInfo.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/Targets.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/TokenKinds.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/Version.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/VersionTuple.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/VirtualFileSystem.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Basic/Warnings.cpp",
  ]
}
dxcompiler_sourceset("clang_lib_codegen") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/BackendUtil.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGAtomic.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGBlocks.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGBuiltin.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGCUDANV.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGCUDARuntime.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGCXX.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGCXXABI.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGCall.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGClass.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGCleanup.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGDebugInfo.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGDecl.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGDeclCXX.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGException.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGExpr.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGExprAgg.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGExprCXX.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGExprComplex.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGExprConstant.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGExprScalar.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGHLSLMS.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGHLSLMSFinishCodeGen.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGHLSLRootSignature.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGHLSLRuntime.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGLoopInfo.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGObjC.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGStmt.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGVTT.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CGVTables.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CodeGenABITypes.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CodeGenAction.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CodeGenFunction.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CodeGenModule.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CodeGenPGO.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CodeGenTBAA.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CodeGenTypes.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/CoverageMappingGen.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/ModuleBuilder.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/SanitizerMetadata.cpp",
    "$dawn_dxc_dir/tools/clang/lib/CodeGen/TargetInfo.cpp",
  ]
}
dxcompiler_sourceset("clang_lib_driver") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/lib/Driver/Action.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Driver/Compilation.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Driver/CrossWindowsToolChain.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Driver/Driver.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Driver/DriverOptions.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Driver/Job.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Driver/MSVCToolChain.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Driver/MinGWToolChain.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Driver/Multilib.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Driver/Phases.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Driver/SanitizerArgs.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Driver/Tool.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Driver/ToolChain.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Driver/ToolChains.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Driver/Tools.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Driver/Types.cpp",
  ]
}
dxcompiler_sourceset("clang_lib_edit") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/lib/Edit/Commit.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Edit/EditedSource.cpp",
  ]
}
dxcompiler_sourceset("clang_lib_format") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/lib/Format/BreakableToken.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Format/ContinuationIndenter.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Format/Format.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Format/FormatToken.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Format/TokenAnnotator.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Format/UnwrappedLineFormatter.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Format/UnwrappedLineParser.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Format/WhitespaceManager.cpp",
  ]
}
dxcompiler_sourceset("clang_lib_frontend") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/lib/Frontend/ASTConsumers.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/ASTMerge.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/ASTUnit.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/CacheTokens.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/ChainedDiagnosticConsumer.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/CodeGenOptions.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/CompilerInstance.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/CompilerInvocation.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/DependencyFile.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/DependencyGraph.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/DiagnosticRenderer.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/FrontendAction.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/FrontendActions.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/FrontendOptions.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/HeaderIncludeGen.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/InitHeaderSearch.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/InitPreprocessor.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/LangStandards.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/LayoutOverrideSource.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/LogDiagnosticPrinter.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/ModuleDependencyCollector.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/MultiplexConsumer.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/PCHContainerOperations.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/SerializedDiagnosticPrinter.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/SerializedDiagnosticReader.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/TextDiagnostic.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/TextDiagnosticBuffer.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/TextDiagnosticPrinter.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp",
  ]
}
dxcompiler_sourceset("clang_lib_index") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/lib/Index/CommentToXML.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Index/USRGeneration.cpp",
  ]
}
dxcompiler_sourceset("clang_lib_lex") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/lib/Lex/HLSLMacroExpander.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/HeaderMap.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/HeaderSearch.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/Lexer.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/LiteralSupport.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/MacroArgs.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/MacroInfo.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/ModuleMap.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/PPCaching.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/PPCallbacks.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/PPConditionalDirectiveRecord.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/PPDirectives.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/PPExpressions.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/PPLexerChange.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/PPMacroExpansion.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/PTHLexer.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/Pragma.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/PreprocessingRecord.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/Preprocessor.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/PreprocessorLexer.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/ScratchBuffer.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/TokenConcatenation.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Lex/TokenLexer.cpp",
  ]
}
dxcompiler_sourceset("clang_lib_parse") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/lib/Parse/HLSLRootSignature.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Parse/ParseAST.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Parse/ParseDecl.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Parse/ParseDeclCXX.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Parse/ParseExpr.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Parse/ParseExprCXX.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Parse/ParseHLSL.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Parse/ParseInit.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Parse/ParseObjc.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Parse/ParseOpenMP.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Parse/ParsePragma.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Parse/ParseStmt.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Parse/ParseStmtAsm.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Parse/ParseTemplate.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Parse/ParseTentative.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Parse/Parser.cpp",
  ]
}
dxcompiler_sourceset("clang_lib_rewrite") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/lib/Rewrite/DeltaTree.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Rewrite/HTMLRewrite.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Rewrite/RewriteRope.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Rewrite/Rewriter.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Rewrite/TokenRewriter.cpp",
  ]
}
dxcompiler_sourceset("clang_lib_sema") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/AttributeList.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/CodeCompleteConsumer.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/DeclSpec.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/DelayedDiagnostic.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/IdentifierResolver.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/JumpDiagnostics.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/Scope.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/ScopeInfo.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/Sema.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaAccess.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaAttr.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaCUDA.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaCast.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaChecking.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaCodeComplete.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaConsumer.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaDXR.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaDecl.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaDeclAttr.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaDeclCXX.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaDeclObjC.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaExceptionSpec.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaExpr.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaExprCXX.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaExprMember.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaExprObjC.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaFixItUtils.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaHLSL.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaInit.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaLambda.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaLookup.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaObjCProperty.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaOpenMP.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaOverload.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaPseudoObject.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaStmt.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaStmtAsm.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaStmtAttr.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaTemplate.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaTemplateDeduction.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaTemplateVariadic.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/SemaType.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Sema/TypeLocBuilder.cpp",
  ]
}
dxcompiler_sourceset("clang_lib_serialization") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/lib/Serialization/ASTCommon.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Serialization/ASTReader.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Serialization/ASTReaderDecl.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Serialization/ASTReaderStmt.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Serialization/ASTWriter.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Serialization/ASTWriterDecl.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Serialization/ASTWriterStmt.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Serialization/GeneratePCH.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Serialization/GlobalModuleIndex.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Serialization/Module.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Serialization/ModuleManager.cpp",
  ]
}
dxcompiler_sourceset("clang_lib_tooling") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/lib/Tooling/ArgumentsAdjusters.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Tooling/CommonOptionsParser.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Tooling/CompilationDatabase.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Tooling/Core/Replacement.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Tooling/FileMatchTrie.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Tooling/JSONCompilationDatabase.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Tooling/Refactoring.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Tooling/RefactoringCallbacks.cpp",
    "$dawn_dxc_dir/tools/clang/lib/Tooling/Tooling.cpp",
  ]
}
dxcompiler_sourceset("clang_tools_libclang") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/tools/clang/tools/libclang/CIndex.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/CIndexCXX.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/CIndexCodeCompletion.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/CIndexDiagnostic.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/CIndexHigh.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/CIndexInclusionStack.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/CIndexUSRs.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/CIndexer.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/CXComment.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/CXCompilationDatabase.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/CXCursor.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/CXLoadedDiagnostic.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/CXSourceLocation.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/CXStoredDiagnostic.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/CXString.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/CXType.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/IndexBody.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/IndexDecl.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/IndexTypeSourceInfo.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/Indexing.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/IndexingContext.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/dxcisenseimpl.cpp",
    "$dawn_dxc_dir/tools/clang/tools/libclang/dxcrewriteunused.cpp",
  ]
}
dxcompiler_sourceset("lib_ir") {
  target_type = "static_library"  # Ensure unused globals are stripped
  sources = [
    "$dawn_dxc_dir/lib/IR/AsmWriter.cpp",
    "$dawn_dxc_dir/lib/IR/Attributes.cpp",
    "$dawn_dxc_dir/lib/IR/AutoUpgrade.cpp",
    "$dawn_dxc_dir/lib/IR/BasicBlock.cpp",
    "$dawn_dxc_dir/lib/IR/Comdat.cpp",
    "$dawn_dxc_dir/lib/IR/ConstantFold.cpp",
    "$dawn_dxc_dir/lib/IR/ConstantRange.cpp",
    "$dawn_dxc_dir/lib/IR/Constants.cpp",
    "$dawn_dxc_dir/lib/IR/Core.cpp",
    "$dawn_dxc_dir/lib/IR/DIBuilder.cpp",
    "$dawn_dxc_dir/lib/IR/DataLayout.cpp",
    "$dawn_dxc_dir/lib/IR/DebugInfo.cpp",
    "$dawn_dxc_dir/lib/IR/DebugInfoMetadata.cpp",
    "$dawn_dxc_dir/lib/IR/DebugLoc.cpp",
    "$dawn_dxc_dir/lib/IR/DiagnosticInfo.cpp",
    "$dawn_dxc_dir/lib/IR/DiagnosticPrinter.cpp",
    "$dawn_dxc_dir/lib/IR/Dominators.cpp",
    "$dawn_dxc_dir/lib/IR/Function.cpp",
    "$dawn_dxc_dir/lib/IR/GCOV.cpp",
    "$dawn_dxc_dir/lib/IR/GVMaterializer.cpp",
    "$dawn_dxc_dir/lib/IR/Globals.cpp",
    "$dawn_dxc_dir/lib/IR/IRBuilder.cpp",
    "$dawn_dxc_dir/lib/IR/IRPrintingPasses.cpp",
    "$dawn_dxc_dir/lib/IR/InlineAsm.cpp",
    "$dawn_dxc_dir/lib/IR/Instruction.cpp",
    "$dawn_dxc_dir/lib/IR/Instructions.cpp",
    "$dawn_dxc_dir/lib/IR/IntrinsicInst.cpp",
    "$dawn_dxc_dir/lib/IR/LLVMContext.cpp",
    "$dawn_dxc_dir/lib/IR/LLVMContextImpl.cpp",
    "$dawn_dxc_dir/lib/IR/LegacyPassManager.cpp",
    "$dawn_dxc_dir/lib/IR/MDBuilder.cpp",
    "$dawn_dxc_dir/lib/IR/Mangler.cpp",
    "$dawn_dxc_dir/lib/IR/Metadata.cpp",
    "$dawn_dxc_dir/lib/IR/MetadataTracking.cpp",
    "$dawn_dxc_dir/lib/IR/Module.cpp",
    "$dawn_dxc_dir/lib/IR/Operator.cpp",
    "$dawn_dxc_dir/lib/IR/Pass.cpp",
    "$dawn_dxc_dir/lib/IR/PassManager.cpp",
    "$dawn_dxc_dir/lib/IR/PassRegistry.cpp",
    "$dawn_dxc_dir/lib/IR/Statepoint.cpp",
    "$dawn_dxc_dir/lib/IR/Type.cpp",
    "$dawn_dxc_dir/lib/IR/TypeFinder.cpp",
    "$dawn_dxc_dir/lib/IR/Use.cpp",
    "$dawn_dxc_dir/lib/IR/User.cpp",
    "$dawn_dxc_dir/lib/IR/Value.cpp",
    "$dawn_dxc_dir/lib/IR/ValueSymbolTable.cpp",
    "$dawn_dxc_dir/lib/IR/ValueTypes.cpp",
    "$dawn_dxc_dir/lib/IR/Verifier.cpp",
  ]
}

dxcompiler_sourceset("dxcompiler_sources") {
  # Use source_set as these are the sources for the dxcompiler target
  target_type = "source_set"

  sources = [
    "$dawn_dxc_dir/tools/clang/tools/dxcompiler/DXCompiler.cpp",
    "$dawn_dxc_dir/tools/clang/tools/dxcompiler/dxcapi.cpp",
    "$dawn_dxc_dir/tools/clang/tools/dxcompiler/dxcassembler.cpp",
    "$dawn_dxc_dir/tools/clang/tools/dxcompiler/dxcdisassembler.cpp",
    "$dawn_dxc_dir/tools/clang/tools/dxcompiler/dxcfilesystem.cpp",
    "$dawn_dxc_dir/tools/clang/tools/dxcompiler/dxclibrary.cpp",
    "$dawn_dxc_dir/tools/clang/tools/dxcompiler/dxclinker.cpp",
    "$dawn_dxc_dir/tools/clang/tools/dxcompiler/dxcompilerobj.cpp",
    "$dawn_dxc_dir/tools/clang/tools/dxcompiler/dxcpdbutils.cpp",
    "$dawn_dxc_dir/tools/clang/tools/dxcompiler/dxcshadersourceinfo.cpp",
    "$dawn_dxc_dir/tools/clang/tools/dxcompiler/dxcutil.cpp",
    "$dawn_dxc_dir/tools/clang/tools/dxcompiler/dxcvalidator.cpp",
    "$dawn_dxc_dir/tools/clang/tools/dxcompiler/dxillib.cpp",
  ]
}

loadable_module("dxcompiler") {
  if (dawn_has_build) {
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
  }

  deps = [
    ":DxcDisassembler-inc",
    ":clang_lib_analysis",
    ":clang_lib_ast",
    ":clang_lib_basic",
    ":clang_lib_codegen",
    ":clang_lib_driver",
    ":clang_lib_edit",
    ":clang_lib_format",
    ":clang_lib_frontend",
    ":clang_lib_index",
    ":clang_lib_lex",
    ":clang_lib_parse",
    ":clang_lib_rewrite",
    ":clang_lib_sema",
    ":clang_lib_serialization",
    ":clang_lib_tooling",
    ":clang_tools_libclang",
    ":dxcompiler_sources",
    ":lib_analysis",
    ":lib_asmparser",
    ":lib_astmatchers",
    ":lib_bitcode",
    ":lib_dxcbindingtable",
    ":lib_dxilcompression",
    ":lib_dxildia",
    ":lib_dxilpixpasses",
    ":lib_dxilrootsignature",
    ":lib_hlsl",
    ":lib_ir",
    ":lib_irreader",
    ":lib_linker",
    ":lib_mc",
    ":lib_object",
    ":lib_passprinters",
    ":lib_profiledata",
    ":lib_target",
    ":lib_transforms",
  ]

  if (is_win) {
    sources = [ "$dawn_dxc_dir/tools/clang/tools/dxcompiler/DXCompiler.def" ]
  }
}

executable("dxc") {
  if (dawn_has_build) {
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
  }

  if (is_win) {
    # DXC is built with multibyte character set, so it expects Win32 functions to map the ANSI ones, not the UNICODE ones.
    configs -= [ "//build/config/win:unicode" ]
  }

  deps = [ ":dxclib" ]

  data_deps = [ ":dxcompiler" ]

  include_dirs = [
    "$visual_studio_path/DIA SDK/include",  # Required for msvc builds
  ]

  sources = [
    "$dawn_dxc_dir/tools/clang/tools/dxc/dxcmain.cpp",
    "$dawn_dxc_dir/tools/clang/tools/dxclib/dxc.cpp",
  ]
}

# Define a target to copy the DXIL signing library, dxil.dll, to the output directory
if (is_win) {
  import("//build/config/win/visual_studio_version.gni")
  copy("copy_dxil_dll") {
    sources =
        [ "$windows_sdk_path/bin/$windows_sdk_version/$target_cpu/dxil.dll" ]
    outputs = [ "$root_out_dir/{{source_file_part}}" ]
  }
}
