macro(add_pdb_impl_folder group) list(APPEND PDB_IMPL_SOURCES ${ARGN}) source_group(${group} FILES ${ARGN}) endmacro() if(LLVM_ENABLE_DIA_SDK) include_directories(${MSVC_DIA_SDK_DIR}/include) set(LIBPDB_LINK_FOLDERS "${MSVC_DIA_SDK_DIR}\\lib") if ("$ENV{VSCMD_ARG_TGT_ARCH}" STREQUAL "arm64") set(LIBPDB_LINK_FOLDERS "${LIBPDB_LINK_FOLDERS}\\arm64") elseif ("$ENV{VSCMD_ARG_TGT_ARCH}" STREQUAL "arm") set(LIBPDB_LINK_FOLDERS "${LIBPDB_LINK_FOLDERS}\\arm") elseif (CMAKE_SIZEOF_VOID_P EQUAL 8) set(LIBPDB_LINK_FOLDERS "${LIBPDB_LINK_FOLDERS}\\amd64") endif() file(TO_CMAKE_PATH "${LIBPDB_LINK_FOLDERS}\\diaguids.lib" LIBPDB_ADDITIONAL_LIBRARIES) add_pdb_impl_folder(DIA 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 ) set(LIBPDB_ADDITIONAL_HEADER_DIRS "${LLVM_MAIN_INCLUDE_DIR}/llvm/DebugInfo/PDB/DIA") endif() add_pdb_impl_folder(Native Native/DbiModuleDescriptor.cpp Native/DbiModuleDescriptorBuilder.cpp Native/DbiModuleList.cpp Native/DbiStream.cpp Native/DbiStreamBuilder.cpp Native/EnumTables.cpp Native/GlobalsStream.cpp Native/Hash.cpp Native/HashTable.cpp Native/InfoStream.cpp Native/InfoStreamBuilder.cpp Native/InjectedSourceStream.cpp Native/ModuleDebugStream.cpp Native/NativeCompilandSymbol.cpp Native/NativeEnumGlobals.cpp Native/NativeEnumInjectedSources.cpp Native/NativeEnumLineNumbers.cpp Native/NativeEnumModules.cpp Native/NativeEnumTypes.cpp Native/NativeEnumSymbols.cpp Native/NativeExeSymbol.cpp Native/NativeFunctionSymbol.cpp Native/NativeInlineSiteSymbol.cpp Native/NativeLineNumber.cpp Native/NativePublicSymbol.cpp Native/NativeRawSymbol.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/NamedStreamMap.cpp Native/NativeSession.cpp Native/PDBFile.cpp Native/PDBFileBuilder.cpp Native/PDBStringTable.cpp Native/PDBStringTableBuilder.cpp Native/PublicsStream.cpp Native/GSIStreamBuilder.cpp Native/RawError.cpp Native/SymbolCache.cpp Native/SymbolStream.cpp Native/TpiHashing.cpp Native/TpiStream.cpp Native/TpiStreamBuilder.cpp ) list(APPEND LIBPDB_ADDITIONAL_HEADER_DIRS "${LLVM_MAIN_INCLUDE_DIR}/llvm/DebugInfo/PDB/Native") list(APPEND LIBPDB_ADDITIONAL_HEADER_DIRS "${LLVM_MAIN_INCLUDE_DIR}/llvm/DebugInfo/PDB") add_llvm_component_library(LLVMDebugInfoPDB GenericError.cpp IPDBSourceFile.cpp PDB.cpp PDBContext.cpp PDBExtras.cpp PDBInterfaceAnchors.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 PDBSymDumper.cpp UDTLayout.cpp ${PDB_IMPL_SOURCES} ADDITIONAL_HEADER_DIRS ${LIBPDB_ADDITIONAL_HEADER_DIRS} LINK_COMPONENTS BinaryFormat Object Support DebugInfoCodeView DebugInfoMSF ) target_link_libraries(LLVMDebugInfoPDB INTERFACE "${LIBPDB_ADDITIONAL_LIBRARIES}")