import("//llvm/lib/DebugInfo/PDB/enable_dia.gni")
import("//llvm/utils/gn/build/sysroot.gni")
static_library("PDB") {
output_name = "LLVMDebugInfoPDB"
deps = [
"//llvm/include/llvm/Config:config",
"//llvm/lib/DebugInfo/CodeView",
"//llvm/lib/DebugInfo/MSF",
"//llvm/lib/Object",
"//llvm/lib/Support",
]
sources = [
"GenericError.cpp",
"IPDBSourceFile.cpp",
"Native/DbiModuleDescriptor.cpp",
"Native/DbiModuleDescriptorBuilder.cpp",
"Native/DbiModuleList.cpp",
"Native/DbiStream.cpp",
"Native/DbiStreamBuilder.cpp",
"Native/EnumTables.cpp",
"Native/FormatUtil.cpp",
"Native/GSIStreamBuilder.cpp",
"Native/GlobalsStream.cpp",
"Native/Hash.cpp",
"Native/HashTable.cpp",
"Native/InfoStream.cpp",
"Native/InfoStreamBuilder.cpp",
"Native/InjectedSourceStream.cpp",
"Native/InputFile.cpp",
"Native/LinePrinter.cpp",
"Native/ModuleDebugStream.cpp",
"Native/NamedStreamMap.cpp",
"Native/NativeCompilandSymbol.cpp",
"Native/NativeEnumGlobals.cpp",
"Native/NativeEnumInjectedSources.cpp",
"Native/NativeEnumLineNumbers.cpp",
"Native/NativeEnumModules.cpp",
"Native/NativeEnumSymbols.cpp",
"Native/NativeEnumTypes.cpp",
"Native/NativeExeSymbol.cpp",
"Native/NativeFunctionSymbol.cpp",
"Native/NativeInlineSiteSymbol.cpp",
"Native/NativeLineNumber.cpp",
"Native/NativePublicSymbol.cpp",
"Native/NativeRawSymbol.cpp",
"Native/NativeSession.cpp",
"Native/NativeSourceFile.cpp",
"Native/NativeSymbolEnumerator.cpp",
"Native/NativeTypeArray.cpp",
"Native/NativeTypeBuiltin.cpp",
"Native/NativeTypeEnum.cpp",
"Native/NativeTypeFunctionSig.cpp",
"Native/NativeTypePointer.cpp",
"Native/NativeTypeTypedef.cpp",
"Native/NativeTypeUDT.cpp",
"Native/NativeTypeVTShape.cpp",
"Native/PDBFile.cpp",
"Native/PDBFileBuilder.cpp",
"Native/PDBStringTable.cpp",
"Native/PDBStringTableBuilder.cpp",
"Native/PublicsStream.cpp",
"Native/RawError.cpp",
"Native/SymbolCache.cpp",
"Native/SymbolStream.cpp",
"Native/TpiHashing.cpp",
"Native/TpiStream.cpp",
"Native/TpiStreamBuilder.cpp",
"PDB.cpp",
"PDBContext.cpp",
"PDBExtras.cpp",
"PDBInterfaceAnchors.cpp",
"PDBSymDumper.cpp",
"PDBSymbol.cpp",
"PDBSymbolAnnotation.cpp",
"PDBSymbolBlock.cpp",
"PDBSymbolCompiland.cpp",
"PDBSymbolCompilandDetails.cpp",
"PDBSymbolCompilandEnv.cpp",
"PDBSymbolCustom.cpp",
"PDBSymbolData.cpp",
"PDBSymbolExe.cpp",
"PDBSymbolFunc.cpp",
"PDBSymbolFuncDebugEnd.cpp",
"PDBSymbolFuncDebugStart.cpp",
"PDBSymbolLabel.cpp",
"PDBSymbolPublicSymbol.cpp",
"PDBSymbolThunk.cpp",
"PDBSymbolTypeArray.cpp",
"PDBSymbolTypeBaseClass.cpp",
"PDBSymbolTypeBuiltin.cpp",
"PDBSymbolTypeCustom.cpp",
"PDBSymbolTypeDimension.cpp",
"PDBSymbolTypeEnum.cpp",
"PDBSymbolTypeFriend.cpp",
"PDBSymbolTypeFunctionArg.cpp",
"PDBSymbolTypeFunctionSig.cpp",
"PDBSymbolTypeManaged.cpp",
"PDBSymbolTypePointer.cpp",
"PDBSymbolTypeTypedef.cpp",
"PDBSymbolTypeUDT.cpp",
"PDBSymbolTypeVTable.cpp",
"PDBSymbolTypeVTableShape.cpp",
"PDBSymbolUnknown.cpp",
"PDBSymbolUsingNamespace.cpp",
"UDTLayout.cpp",
]
if (llvm_enable_dia_sdk) {
sources += [
"DIA/DIADataStream.cpp",
"DIA/DIAEnumDebugStreams.cpp",
"DIA/DIAEnumFrameData.cpp",
"DIA/DIAEnumInjectedSources.cpp",
"DIA/DIAEnumLineNumbers.cpp",
"DIA/DIAEnumSectionContribs.cpp",
"DIA/DIAEnumSourceFiles.cpp",
"DIA/DIAEnumSymbols.cpp",
"DIA/DIAEnumTables.cpp",
"DIA/DIAError.cpp",
"DIA/DIAFrameData.cpp",
"DIA/DIAInjectedSource.cpp",
"DIA/DIALineNumber.cpp",
"DIA/DIARawSymbol.cpp",
"DIA/DIASectionContrib.cpp",
"DIA/DIASession.cpp",
"DIA/DIASourceFile.cpp",
"DIA/DIATable.cpp",
]
dia_lib_path = ""
if (sysroot != "") {
include_dirs = [ "$sysroot/DIA SDK/include" ]
dia_lib_path = "$sysroot/DIA SDK/lib" # x86 .lib file is here.
if (current_cpu == "/arm") {
dia_lib_path += "arm"
} else if (current_cpu == "arm64") {
dia_lib_path += "/arm64"
} else if (current_cpu == "x64") {
dia_lib_path += "/amd64"
}
lib_dirs = [ dia_lib_path ]
}
libs = [ "diaguids.lib" ]
}
}