xref: /llvm-project/llvm/lib/DebugInfo/PDB/CMakeLists.txt (revision 75112133b83e5d27128dc1d6d2a282b297952f59)
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