1macro(add_pdb_impl_folder group) 2 list(APPEND PDB_IMPL_SOURCES ${ARGN}) 3 source_group(${group} FILES ${ARGN}) 4endmacro() 5 6if(LLVM_ENABLE_DIA_SDK) 7 include_directories(${MSVC_DIA_SDK_DIR}/include) 8 set(LIBPDB_LINK_FOLDERS "${MSVC_DIA_SDK_DIR}\\lib") 9 10 if ("$ENV{VSCMD_ARG_TGT_ARCH}" STREQUAL "arm64") 11 set(LIBPDB_LINK_FOLDERS "${LIBPDB_LINK_FOLDERS}\\arm64") 12 elseif ("$ENV{VSCMD_ARG_TGT_ARCH}" STREQUAL "arm") 13 set(LIBPDB_LINK_FOLDERS "${LIBPDB_LINK_FOLDERS}\\arm") 14 elseif (CMAKE_SIZEOF_VOID_P EQUAL 8) 15 set(LIBPDB_LINK_FOLDERS "${LIBPDB_LINK_FOLDERS}\\amd64") 16 endif() 17 file(TO_CMAKE_PATH "${LIBPDB_LINK_FOLDERS}\\diaguids.lib" LIBPDB_ADDITIONAL_LIBRARIES) 18 19 add_pdb_impl_folder(DIA 20 DIA/DIADataStream.cpp 21 DIA/DIAEnumDebugStreams.cpp 22 DIA/DIAEnumFrameData.cpp 23 DIA/DIAEnumInjectedSources.cpp 24 DIA/DIAEnumLineNumbers.cpp 25 DIA/DIAEnumSectionContribs.cpp 26 DIA/DIAEnumSourceFiles.cpp 27 DIA/DIAEnumSymbols.cpp 28 DIA/DIAEnumTables.cpp 29 DIA/DIAError.cpp 30 DIA/DIAFrameData.cpp 31 DIA/DIAInjectedSource.cpp 32 DIA/DIALineNumber.cpp 33 DIA/DIARawSymbol.cpp 34 DIA/DIASectionContrib.cpp 35 DIA/DIASession.cpp 36 DIA/DIASourceFile.cpp 37 DIA/DIATable.cpp 38 ) 39 40 set(LIBPDB_ADDITIONAL_HEADER_DIRS "${LLVM_MAIN_INCLUDE_DIR}/llvm/DebugInfo/PDB/DIA") 41endif() 42 43add_pdb_impl_folder(Native 44 Native/DbiModuleDescriptor.cpp 45 Native/DbiModuleDescriptorBuilder.cpp 46 Native/DbiModuleList.cpp 47 Native/DbiStream.cpp 48 Native/DbiStreamBuilder.cpp 49 Native/EnumTables.cpp 50 Native/GlobalsStream.cpp 51 Native/Hash.cpp 52 Native/HashTable.cpp 53 Native/InfoStream.cpp 54 Native/InfoStreamBuilder.cpp 55 Native/InjectedSourceStream.cpp 56 Native/ModuleDebugStream.cpp 57 Native/NativeCompilandSymbol.cpp 58 Native/NativeEnumGlobals.cpp 59 Native/NativeEnumInjectedSources.cpp 60 Native/NativeEnumLineNumbers.cpp 61 Native/NativeEnumModules.cpp 62 Native/NativeEnumTypes.cpp 63 Native/NativeEnumSymbols.cpp 64 Native/NativeExeSymbol.cpp 65 Native/NativeFunctionSymbol.cpp 66 Native/NativeInlineSiteSymbol.cpp 67 Native/NativeLineNumber.cpp 68 Native/NativePublicSymbol.cpp 69 Native/NativeRawSymbol.cpp 70 Native/NativeSourceFile.cpp 71 Native/NativeSymbolEnumerator.cpp 72 Native/NativeTypeArray.cpp 73 Native/NativeTypeBuiltin.cpp 74 Native/NativeTypeEnum.cpp 75 Native/NativeTypeFunctionSig.cpp 76 Native/NativeTypePointer.cpp 77 Native/NativeTypeTypedef.cpp 78 Native/NativeTypeUDT.cpp 79 Native/NativeTypeVTShape.cpp 80 Native/NamedStreamMap.cpp 81 Native/NativeSession.cpp 82 Native/PDBFile.cpp 83 Native/PDBFileBuilder.cpp 84 Native/PDBStringTable.cpp 85 Native/PDBStringTableBuilder.cpp 86 Native/PublicsStream.cpp 87 Native/GSIStreamBuilder.cpp 88 Native/RawError.cpp 89 Native/SymbolCache.cpp 90 Native/SymbolStream.cpp 91 Native/TpiHashing.cpp 92 Native/TpiStream.cpp 93 Native/TpiStreamBuilder.cpp 94 ) 95 96list(APPEND LIBPDB_ADDITIONAL_HEADER_DIRS "${LLVM_MAIN_INCLUDE_DIR}/llvm/DebugInfo/PDB/Native") 97list(APPEND LIBPDB_ADDITIONAL_HEADER_DIRS "${LLVM_MAIN_INCLUDE_DIR}/llvm/DebugInfo/PDB") 98 99add_llvm_component_library(LLVMDebugInfoPDB 100 GenericError.cpp 101 IPDBSourceFile.cpp 102 PDB.cpp 103 PDBContext.cpp 104 PDBExtras.cpp 105 PDBInterfaceAnchors.cpp 106 PDBSymbol.cpp 107 PDBSymbolAnnotation.cpp 108 PDBSymbolBlock.cpp 109 PDBSymbolCompiland.cpp 110 PDBSymbolCompilandDetails.cpp 111 PDBSymbolCompilandEnv.cpp 112 PDBSymbolCustom.cpp 113 PDBSymbolData.cpp 114 PDBSymbolExe.cpp 115 PDBSymbolFunc.cpp 116 PDBSymbolFuncDebugEnd.cpp 117 PDBSymbolFuncDebugStart.cpp 118 PDBSymbolLabel.cpp 119 PDBSymbolPublicSymbol.cpp 120 PDBSymbolThunk.cpp 121 PDBSymbolTypeArray.cpp 122 PDBSymbolTypeBaseClass.cpp 123 PDBSymbolTypeBuiltin.cpp 124 PDBSymbolTypeCustom.cpp 125 PDBSymbolTypeDimension.cpp 126 PDBSymbolTypeEnum.cpp 127 PDBSymbolTypeFriend.cpp 128 PDBSymbolTypeFunctionArg.cpp 129 PDBSymbolTypeFunctionSig.cpp 130 PDBSymbolTypeManaged.cpp 131 PDBSymbolTypePointer.cpp 132 PDBSymbolTypeTypedef.cpp 133 PDBSymbolTypeUDT.cpp 134 PDBSymbolTypeVTable.cpp 135 PDBSymbolTypeVTableShape.cpp 136 PDBSymbolUnknown.cpp 137 PDBSymbolUsingNamespace.cpp 138 PDBSymDumper.cpp 139 UDTLayout.cpp 140 ${PDB_IMPL_SOURCES} 141 142 ADDITIONAL_HEADER_DIRS 143 ${LIBPDB_ADDITIONAL_HEADER_DIRS} 144 145 LINK_COMPONENTS 146 BinaryFormat 147 Object 148 Support 149 DebugInfoCodeView 150 DebugInfoMSF 151 ) 152 153target_link_libraries(LLVMDebugInfoPDB INTERFACE "${LIBPDB_ADDITIONAL_LIBRARIES}") 154