# Copyright 2023 The Dawn & Tint Authors
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this
#    list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice,
#    this list of conditions and the following disclaimer in the documentation
#    and/or other materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its
#    contributors may be used to endorse or promote products derived from
#    this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

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

if (is_win) {
  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/message_compiler.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
}

# Native ARCH values can be found in LLVM's llvm/cmake/config-ix.cmake
# Components of the triple can be found in LLVM's llvm/TargetParser/Triple.h and it's .cpp
if (target_cpu == "x86") {
  native_target = "X86"
  llvm_triple_arch = "x86"
} else if (target_cpu == "x64") {
  native_target = "X86"
  llvm_triple_arch = "x86_64"
} else if (target_cpu == "arm") {
  native_target = "ARM"
  llvm_triple_arch = "arm"
} else if (target_cpu == "arm64") {
  native_target = "AArch64"
  llvm_triple_arch = "aarch64"
} else {
  assert(
      false,
      "define 'native_target' and 'llvm_triple_arch' for target_cpu: $target_cpu")
}

if (target_os == "win") {
  llvm_triple_env = "pc"
  llvm_triple_os = "win32"
} else if (target_os == "linux") {
  llvm_triple_env = "unknown"
  llvm_triple_os = "linux"
} else if (target_os == "mac") {
  llvm_triple_env = "unknown"
  llvm_triple_os = "macosx"
} else {
  assert(
      false,
      "define 'llvm_triple_env' and 'llvm_triple_os' for target_os: $target_os")
}

llvm_triple = "${llvm_triple_arch}-${llvm_triple_env}-${llvm_triple_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_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_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_MALLCTL=",
    "HAVE_MALLINFO2=",
    "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_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=",
      "HAVE_MACH_MACH_H=",
      "HAVE_MACH_O_DYLD_H=",
      "HAVE_MALLOC_H=1",
      "HAVE_MALLINFO=",
      "HAVE_MALLOC_MALLOC_H=",
      "HAVE_MALLOC_ZONE_STATISTICS=",
    ]
  } else if (is_linux || is_mac) {
    values += [
      "HAVE_DECL_STRERROR_S=",
      "HAVE_DIRENT_H=1",
      "HAVE_FUTIMES=1",
      "HAVE_GETPAGESIZE=1",
      "HAVE_GETRUSAGE=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_linux) {
      values += [
        "HAVE_MALLOC_H=1",
        "HAVE_MALLINFO=1",
        "HAVE_MACH_MACH_H=",
        "HAVE_MACH_O_DYLD_H=",
        "HAVE_MALLOC_MALLOC_H=",
        "HAVE_MALLOC_ZONE_STATISTICS=",
      ]
    } else {
      values += [
        "HAVE_MALLOC_H=",
        "HAVE_MALLINFO=",
        "HAVE_MACH_MACH_H=1",
        "HAVE_MACH_O_DYLD_H=1",
        "HAVE_MALLOC_MALLOC_H=1",
        "HAVE_MALLOC_ZONE_STATISTICS=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_ETCDIR=",
    "LLVM_HAS_ATOMICS=1",
    "LLVM_HOST_TRIPLE=$llvm_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("abi-breaking-header") {
  input = "$dawn_dxc_dir/include/llvm/Config/abi-breaking.h.cmake"
  output = "$target_gen_dir/include/llvm/Config/abi-breaking.h"
  values = [ "LLVM_ENABLE_ABI_BREAKING_CHECKS=" ]
}

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"
  shared_library_prefix = ""
  if (is_linux) {
    shared_library_prefix = "lib"
  }
  shared_library_suffix = ""
  if (is_win) {
    shared_library_suffix = ".dll"
  } else {
    shared_library_suffix = ".so"
  }
  values = [
    "CMAKE_SHARED_LIBRARY_PREFIX=${shared_library_prefix}",
    "CMAKE_SHARED_LIBRARY_SUFFIX=${shared_library_suffix}",
  ]
}

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=",
  ]
}

cmake_configure_file("dxc-config-h") {
  input = "$dawn_dxc_dir/include/dxc/config.h.cmake"
  output = "$target_gen_dir/include/dxc/config.h"
  values = [ "DXC_DISABLE_ALLOCATOR_OVERRIDES=1" ]
}

#######################################################################
## 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
    ]
  }

  cflags_c = []
  cflags_cc = []

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

    cflags_c += [
      "/EHsc",  # DXC uses exceptions
    ]
  } else if (is_linux || is_mac) {
    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",
    ":abi-breaking-header",
    ":config-header",
    ":dxc-config-h",
    ":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 = [
    ":DataTypes-header",
    ":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("llvm_tablegen") {
  tblgen(target_name) {
    forward_variables_from(invoker,
                           [
                             "args",
                             "output_name",
                             "td_file",
                             "visibility",
                           ])
    tblgen_target = ":llvm-tblgen($host_toolchain)"
  }
}

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

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
#######################################################################

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

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

llvm_tablegen("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"
}

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
message_compiler("dxcetw-h") {
  sources = [ "$dawn_dxc_dir/include/dxc/Tracing/dxcetw.man" ]
  extra_args = [
    "-p",
    "DxcEtw_",
    "-um",
    "-z",
    "dxcetw",
  ]
  output_dir = "$target_gen_dir/include/dxc/Tracing/dxcetw"
}

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/DxilNodeProps.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/DXIL/DxilWaveMatrix.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/WinIncludes.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 || is_mac) {
      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/DxilPIXDXRInvocationsLog.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/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",
  ]
}

source_set("windows_version_resource") {
  defines = [
    # Include version.inc
    "INCLUDE_HLSL_VERSION_FILE",

    # TODO(crbug.com/1473311): For now, GN's rc.exe doesn't handle empty string macros
    # the same way as MS's rc.exe, so we make these single space strings.
    "RC_INTERNAL_NAME=\" \"",
    "RC_ORIGINAL_FILENAME=\" \"",
  ]
  include_dirs = [
    # Use our custom "version.inc" that includes DXC's version.inc and overrides fields
    "build/",
  ]
  sources = [ "$dawn_dxc_dir/resources/windows_version_resource.rc" ]
}

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" ]

    deps += [ ":windows_version_resource" ]
  }
}

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" ]

  # Set rpath to executable_path to be able to find dxcompiler.so on MacOS
  if (is_mac) {
    ldflags = [ "-Wl,-rpath,@executable_path" ]
  }

  if (is_win) {
    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}}" ]
  }
}
