1set(LLVM_LINK_COMPONENTS
2  Support
3  )
4
5find_first_existing_vc_file("${LLVM_MAIN_SRC_DIR}" llvm_vc)
6find_first_existing_vc_file("${CLANG_SOURCE_DIR}" clang_vc)
7
8# The VC revision include that we want to generate.
9set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/VCSVersion.inc")
10
11set(generate_vcs_version_script "${LLVM_CMAKE_DIR}/GenerateVersionFromVCS.cmake")
12
13if(llvm_vc AND LLVM_APPEND_VC_REV)
14  set(llvm_source_dir ${LLVM_MAIN_SRC_DIR})
15endif()
16if(clang_vc AND LLVM_APPEND_VC_REV)
17  set(clang_source_dir ${CLANG_SOURCE_DIR})
18endif()
19
20# Create custom target to generate the VC revision include.
21add_custom_command(OUTPUT "${version_inc}"
22  DEPENDS "${llvm_vc}" "${clang_vc}" "${generate_vcs_version_script}"
23  COMMAND ${CMAKE_COMMAND} "-DNAMES=\"LLVM;CLANG\""
24                           "-DLLVM_SOURCE_DIR=${llvm_source_dir}"
25                           "-DCLANG_SOURCE_DIR=${clang_source_dir}"
26                           "-DHEADER_FILE=${version_inc}"
27                           -P "${generate_vcs_version_script}")
28
29# Mark the generated header as being generated.
30set_source_files_properties("${version_inc}"
31  PROPERTIES GENERATED TRUE
32             HEADER_FILE_ONLY TRUE)
33
34if(CLANG_VENDOR)
35  set_source_files_properties(Version.cpp
36    PROPERTIES COMPILE_DEFINITIONS "CLANG_VENDOR=\"${CLANG_VENDOR} \"")
37endif()
38
39add_clang_library(clangBasic
40  Attributes.cpp
41  Builtins.cpp
42  CLWarnings.cpp
43  CharInfo.cpp
44  CodeGenOptions.cpp
45  Cuda.cpp
46  DarwinSDKInfo.cpp
47  Diagnostic.cpp
48  DiagnosticIDs.cpp
49  DiagnosticOptions.cpp
50  ExpressionTraits.cpp
51  FileEntry.cpp
52  FileManager.cpp
53  FileSystemStatCache.cpp
54  IdentifierTable.cpp
55  LangOptions.cpp
56  LangStandards.cpp
57  MakeSupport.cpp
58  Module.cpp
59  ObjCRuntime.cpp
60  OpenCLOptions.cpp
61  OpenMPKinds.cpp
62  OperatorPrecedence.cpp
63  ProfileList.cpp
64  NoSanitizeList.cpp
65  SanitizerSpecialCaseList.cpp
66  Sanitizers.cpp
67  Sarif.cpp
68  SourceLocation.cpp
69  SourceManager.cpp
70  Stack.cpp
71  TargetID.cpp
72  TargetInfo.cpp
73  Targets.cpp
74  Targets/AArch64.cpp
75  Targets/AMDGPU.cpp
76  Targets/ARC.cpp
77  Targets/ARM.cpp
78  Targets/AVR.cpp
79  Targets/BPF.cpp
80  Targets/CSKY.cpp
81  Targets/DirectX.cpp
82  Targets/Hexagon.cpp
83  Targets/Lanai.cpp
84  Targets/Le64.cpp
85  Targets/M68k.cpp
86  Targets/MSP430.cpp
87  Targets/Mips.cpp
88  Targets/NVPTX.cpp
89  Targets/OSTargets.cpp
90  Targets/PNaCl.cpp
91  Targets/PPC.cpp
92  Targets/RISCV.cpp
93  Targets/SPIR.cpp
94  Targets/Sparc.cpp
95  Targets/SystemZ.cpp
96  Targets/TCE.cpp
97  Targets/VE.cpp
98  Targets/WebAssembly.cpp
99  Targets/X86.cpp
100  Targets/XCore.cpp
101  TokenKinds.cpp
102  TypeTraits.cpp
103  Version.cpp
104  Warnings.cpp
105  XRayInstr.cpp
106  XRayLists.cpp
107  ${version_inc}
108
109  DEPENDS
110  omp_gen
111  )
112
113