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