# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# LLVM Machine Code library.
static_library("MC") {
  sources = [
    "ConstantPools.cpp",
    "ELFObjectWriter.cpp",
    "LLVMBuild.txt",
    "MCAsmBackend.cpp",
    "MCAsmInfo.cpp",
    "MCAsmInfoCOFF.cpp",
    "MCAsmInfoDarwin.cpp",
    "MCAsmInfoELF.cpp",
    "MCAsmInfoWasm.cpp",
    "MCAsmMacro.cpp",
    "MCAsmStreamer.cpp",
    "MCAssembler.cpp",
    "MCCodeEmitter.cpp",
    "MCCodePadder.cpp",
    "MCCodeView.cpp",
    "MCContext.cpp",
    "MCDwarf.cpp",
    "MCELFObjectTargetWriter.cpp",
    "MCELFStreamer.cpp",
    "MCExpr.cpp",
    "MCFragment.cpp",
    "MCInst.cpp",
    "MCInstPrinter.cpp",
    "MCInstrAnalysis.cpp",
    "MCInstrDesc.cpp",
    "MCLabel.cpp",
    "MCLinkerOptimizationHint.cpp",
    "MCMachOStreamer.cpp",
    "MCMachObjectTargetWriter.cpp",
    "MCNullStreamer.cpp",
    "MCObjectFileInfo.cpp",
    "MCObjectStreamer.cpp",
    "MCObjectWriter.cpp",
    "MCRegisterInfo.cpp",
    "MCSchedule.cpp",
    "MCSection.cpp",
    "MCSectionCOFF.cpp",
    "MCSectionELF.cpp",
    "MCSectionMachO.cpp",
    "MCSectionWasm.cpp",
    "MCStreamer.cpp",
    "MCSubtargetInfo.cpp",
    "MCSymbol.cpp",
    "MCSymbolELF.cpp",
    "MCTargetOptions.cpp",
    "MCValue.cpp",
    "MCWasmObjectTargetWriter.cpp",
    "MCWasmStreamer.cpp",
    "MCWin64EH.cpp",
    "MCWinCOFFStreamer.cpp",
    "MCWinEH.cpp",
    "MachObjectWriter.cpp",
    "StringTableBuilder.cpp",
    "SubtargetFeature.cpp",
    "WasmObjectWriter.cpp",
    "WinCOFFObjectWriter.cpp",
  ]

  public_deps = [
    "../BinaryFormat",
    "../DebugInfo",
    "../Support",
  ]
}
