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(SYSTEM ${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/FormatUtil.cpp 51 Native/GlobalsStream.cpp 52 Native/Hash.cpp 53 Native/HashTable.cpp 54 Native/InfoStream.cpp 55 Native/InfoStreamBuilder.cpp 56 Native/InjectedSourceStream.cpp 57 Native/InputFile.cpp 58 Native/LinePrinter.cpp 59 Native/ModuleDebugStream.cpp 60 Native/NativeCompilandSymbol.cpp 61 Native/NativeEnumGlobals.cpp 62 Native/NativeEnumInjectedSources.cpp 63 Native/NativeEnumLineNumbers.cpp 64 Native/NativeEnumModules.cpp 65 Native/NativeEnumTypes.cpp 66 Native/NativeEnumSymbols.cpp 67 Native/NativeExeSymbol.cpp 68 Native/NativeFunctionSymbol.cpp 69 Native/NativeInlineSiteSymbol.cpp 70 Native/NativeLineNumber.cpp 71 Native/NativePublicSymbol.cpp 72 Native/NativeRawSymbol.cpp 73 Native/NativeSourceFile.cpp 74 Native/NativeSymbolEnumerator.cpp 75 Native/NativeTypeArray.cpp 76 Native/NativeTypeBuiltin.cpp 77 Native/NativeTypeEnum.cpp 78 Native/NativeTypeFunctionSig.cpp 79 Native/NativeTypePointer.cpp 80 Native/NativeTypeTypedef.cpp 81 Native/NativeTypeUDT.cpp 82 Native/NativeTypeVTShape.cpp 83 Native/NamedStreamMap.cpp 84 Native/NativeSession.cpp 85 Native/PDBFile.cpp 86 Native/PDBFileBuilder.cpp 87 Native/PDBStringTable.cpp 88 Native/PDBStringTableBuilder.cpp 89 Native/PublicsStream.cpp 90 Native/GSIStreamBuilder.cpp 91 Native/RawError.cpp 92 Native/SymbolCache.cpp 93 Native/SymbolStream.cpp 94 Native/TpiHashing.cpp 95 Native/TpiStream.cpp 96 Native/TpiStreamBuilder.cpp 97 ) 98 99list(APPEND LIBPDB_ADDITIONAL_HEADER_DIRS "${LLVM_MAIN_INCLUDE_DIR}/llvm/DebugInfo/PDB/Native") 100list(APPEND LIBPDB_ADDITIONAL_HEADER_DIRS "${LLVM_MAIN_INCLUDE_DIR}/llvm/DebugInfo/PDB") 101 102add_llvm_component_library(LLVMDebugInfoPDB 103 GenericError.cpp 104 IPDBSourceFile.cpp 105 PDB.cpp 106 PDBContext.cpp 107 PDBExtras.cpp 108 PDBInterfaceAnchors.cpp 109 PDBSymbol.cpp 110 PDBSymbolAnnotation.cpp 111 PDBSymbolBlock.cpp 112 PDBSymbolCompiland.cpp 113 PDBSymbolCompilandDetails.cpp 114 PDBSymbolCompilandEnv.cpp 115 PDBSymbolCustom.cpp 116 PDBSymbolData.cpp 117 PDBSymbolExe.cpp 118 PDBSymbolFunc.cpp 119 PDBSymbolFuncDebugEnd.cpp 120 PDBSymbolFuncDebugStart.cpp 121 PDBSymbolLabel.cpp 122 PDBSymbolPublicSymbol.cpp 123 PDBSymbolThunk.cpp 124 PDBSymbolTypeArray.cpp 125 PDBSymbolTypeBaseClass.cpp 126 PDBSymbolTypeBuiltin.cpp 127 PDBSymbolTypeCustom.cpp 128 PDBSymbolTypeDimension.cpp 129 PDBSymbolTypeEnum.cpp 130 PDBSymbolTypeFriend.cpp 131 PDBSymbolTypeFunctionArg.cpp 132 PDBSymbolTypeFunctionSig.cpp 133 PDBSymbolTypeManaged.cpp 134 PDBSymbolTypePointer.cpp 135 PDBSymbolTypeTypedef.cpp 136 PDBSymbolTypeUDT.cpp 137 PDBSymbolTypeVTable.cpp 138 PDBSymbolTypeVTableShape.cpp 139 PDBSymbolUnknown.cpp 140 PDBSymbolUsingNamespace.cpp 141 PDBSymDumper.cpp 142 UDTLayout.cpp 143 ${PDB_IMPL_SOURCES} 144 145 ADDITIONAL_HEADER_DIRS 146 ${LIBPDB_ADDITIONAL_HEADER_DIRS} 147 148 LINK_COMPONENTS 149 BinaryFormat 150 Object 151 Support 152 DebugInfoCodeView 153 DebugInfoMSF 154 ) 155 156target_link_libraries(LLVMDebugInfoPDB INTERFACE "${LIBPDB_ADDITIONAL_LIBRARIES}") 157