blob: b11fb306ad41dba8d7772ce8b545c65bba07a425 [file] [log] [blame]
Zachary Turnercffff262015-02-10 21:17:52 +00001macro(add_pdb_impl_folder group)
2 list(APPEND PDB_IMPL_SOURCES ${ARGN})
3 source_group(${group} FILES ${ARGN})
4endmacro()
5
6if(HAVE_DIA_SDK)
7 include_directories(${MSVC_DIA_SDK_DIR}/include)
8 set(LIBPDB_LINK_FOLDERS "${MSVC_DIA_SDK_DIR}\\lib")
9 if (CMAKE_SIZEOF_VOID_P EQUAL 8)
10 set(LIBPDB_LINK_FOLDERS "${LIBPDB_LINK_FOLDERS}\\amd64")
11 endif()
Dan Liew7b62aec2015-06-19 21:50:27 +000012 file(TO_CMAKE_PATH "${LIBPDB_LINK_FOLDERS}\\diaguids.lib" LIBPDB_ADDITIONAL_LIBRARIES)
Zachary Turnercffff262015-02-10 21:17:52 +000013
14 add_pdb_impl_folder(DIA
15 DIA/DIADataStream.cpp
16 DIA/DIAEnumDebugStreams.cpp
17 DIA/DIAEnumLineNumbers.cpp
18 DIA/DIAEnumSourceFiles.cpp
19 DIA/DIAEnumSymbols.cpp
20 DIA/DIALineNumber.cpp
21 DIA/DIARawSymbol.cpp
22 DIA/DIASession.cpp
23 DIA/DIASourceFile.cpp
24 )
25
Zachary Turner3bd47ce2015-02-11 03:28:02 +000026 set(LIBPDB_ADDITIONAL_HEADER_DIRS "${LLVM_MAIN_INCLUDE_DIR}/llvm/DebugInfo/PDB/DIA")
Daniel Sandersd41718e2016-04-22 12:04:42 +000027endif()
Zachary Turnera12b3d42016-04-21 20:58:35 +000028
Zachary Turner0a43efe2016-04-25 17:38:08 +000029add_pdb_impl_folder(Raw
Zachary Turner6ba65de2016-04-29 17:22:58 +000030 Raw/ByteStream.cpp
31 Raw/MappedBlockStream.cpp
Zachary Turner1822af542016-04-27 23:41:42 +000032 Raw/ModInfo.cpp
Zachary Turner0a43efe2016-04-25 17:38:08 +000033 Raw/PDBFile.cpp
Zachary Turner2f09b502016-04-29 17:28:47 +000034 Raw/DbiStream.cpp
35 Raw/InfoStream.cpp
Zachary Turner0eace0b2016-05-02 18:09:14 +000036 Raw/NameHashTable.cpp
Zachary Turner2f09b502016-04-29 17:28:47 +000037 Raw/NameMap.cpp
Zachary Turner6ba65de2016-04-29 17:22:58 +000038 Raw/RawSession.cpp
Zachary Turnerf5c59652016-05-03 00:28:21 +000039 Raw/StreamReader.cpp
40 Raw/TpiStream.cpp)
Zachary Turner0a43efe2016-04-25 17:38:08 +000041
Zachary Turner3bd47ce2015-02-11 03:28:02 +000042list(APPEND LIBPDB_ADDITIONAL_HEADER_DIRS "${LLVM_MAIN_INCLUDE_DIR}/llvm/DebugInfo/PDB")
Zachary Turnercffff262015-02-10 21:17:52 +000043
Zachary Turner0e9e6632015-02-06 20:30:52 +000044add_llvm_library(LLVMDebugInfoPDB
Zachary Turnera5549172015-02-10 22:43:25 +000045 IPDBSourceFile.cpp
Zachary Turner0e9e6632015-02-06 20:30:52 +000046 PDB.cpp
Zachary Turner20dbd0d2015-04-27 17:19:51 +000047 PDBContext.cpp
Zachary Turnera5549172015-02-10 22:43:25 +000048 PDBExtras.cpp
Zachary Turner0e9e6632015-02-06 20:30:52 +000049 PDBInterfaceAnchors.cpp
50 PDBSymbol.cpp
Zachary Turner21473f72015-02-08 00:29:29 +000051 PDBSymbolAnnotation.cpp
52 PDBSymbolBlock.cpp
53 PDBSymbolCompiland.cpp
54 PDBSymbolCompilandDetails.cpp
Zachary Turner0e9e6632015-02-06 20:30:52 +000055 PDBSymbolCompilandEnv.cpp
56 PDBSymbolCustom.cpp
Zachary Turner21473f72015-02-08 00:29:29 +000057 PDBSymbolData.cpp
58 PDBSymbolExe.cpp
59 PDBSymbolFunc.cpp
60 PDBSymbolFuncDebugEnd.cpp
61 PDBSymbolFuncDebugStart.cpp
62 PDBSymbolLabel.cpp
63 PDBSymbolPublicSymbol.cpp
64 PDBSymbolThunk.cpp
65 PDBSymbolTypeArray.cpp
66 PDBSymbolTypeBaseClass.cpp
67 PDBSymbolTypeBuiltin.cpp
68 PDBSymbolTypeCustom.cpp
69 PDBSymbolTypeDimension.cpp
70 PDBSymbolTypeEnum.cpp
71 PDBSymbolTypeFriend.cpp
72 PDBSymbolTypeFunctionArg.cpp
73 PDBSymbolTypeFunctionSig.cpp
74 PDBSymbolTypeManaged.cpp
75 PDBSymbolTypePointer.cpp
76 PDBSymbolTypeTypedef.cpp
77 PDBSymbolTypeUDT.cpp
78 PDBSymbolTypeVTable.cpp
79 PDBSymbolTypeVTableShape.cpp
80 PDBSymbolUnknown.cpp
81 PDBSymbolUsingNamespace.cpp
Zachary Turner9a818ad2015-02-22 22:03:38 +000082 PDBSymDumper.cpp
Zachary Turnercffff262015-02-10 21:17:52 +000083 ${PDB_IMPL_SOURCES}
84
85 ADDITIONAL_HEADER_DIRS
86 ${LIBPDB_ADDITIONAL_HEADER_DIRS}
Zachary Turner0e9e6632015-02-06 20:30:52 +000087 )
Zachary Turnercffff262015-02-10 21:17:52 +000088
Chris Bieneman6a1b54a2015-03-23 20:03:57 +000089target_link_libraries(LLVMDebugInfoPDB INTERFACE "${LIBPDB_ADDITIONAL_LIBRARIES}")