Clang Project

clang_source_code/lib/Basic/CMakeLists.txt
1set(LLVM_LINK_COMPONENTS
2  Core
3  MC
4  Support
5  )
6
7find_first_existing_vc_file("${LLVM_MAIN_SRC_DIR}" llvm_vc)
8find_first_existing_vc_file("${CLANG_SOURCE_DIR}" clang_vc)
9
10# The VC revision include that we want to generate.
11set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/VCSVersion.inc")
12
13set(generate_vcs_version_script "${LLVM_CMAKE_PATH}/GenerateVersionFromVCS.cmake")
14
15if(llvm_vc)
16  set(llvm_source_dir ${LLVM_MAIN_SRC_DIR})
17endif()
18if(clang_vc)
19  set(clang_source_dir ${CLANG_SOURCE_DIR})
20endif()
21
22# Create custom target to generate the VC revision include.
23add_custom_command(OUTPUT "${version_inc}"
24  DEPENDS "${llvm_vc}" "${clang_vc}" "${generate_vcs_version_script}"
25  COMMAND ${CMAKE_COMMAND} "-DNAMES=\"LLVM;CLANG\""
26                           "-DLLVM_SOURCE_DIR=${llvm_source_dir}"
27                           "-DCLANG_SOURCE_DIR=${clang_source_dir}"
28                           "-DHEADER_FILE=${version_inc}"
29                           -P "${generate_vcs_version_script}")
30
31# Mark the generated header as being generated.
32set_source_files_properties("${version_inc}"
33  PROPERTIES GENERATED TRUE
34             HEADER_FILE_ONLY TRUE)
35
36set_property(SOURCE Version.cpp APPEND PROPERTY
37             COMPILE_DEFINITIONS "HAVE_VCS_VERSION_INC")
38
39add_clang_library(clangBasic
40  Attributes.cpp
41  Builtins.cpp
42  CharInfo.cpp
43  CodeGenOptions.cpp
44  Cuda.cpp
45  Diagnostic.cpp
46  DiagnosticIDs.cpp
47  DiagnosticOptions.cpp
48  FileManager.cpp
49  FileSystemStatCache.cpp
50  FixedPoint.cpp
51  IdentifierTable.cpp
52  LangOptions.cpp
53  Module.cpp
54  ObjCRuntime.cpp
55  OpenMPKinds.cpp
56  OperatorPrecedence.cpp
57  SanitizerBlacklist.cpp
58  SanitizerSpecialCaseList.cpp
59  Sanitizers.cpp
60  SourceLocation.cpp
61  SourceManager.cpp
62  TargetInfo.cpp
63  Targets.cpp
64  Targets/AArch64.cpp
65  Targets/AMDGPU.cpp
66  Targets/ARC.cpp
67  Targets/ARM.cpp
68  Targets/AVR.cpp
69  Targets/BPF.cpp
70  Targets/Hexagon.cpp
71  Targets/Lanai.cpp
72  Targets/Le64.cpp
73  Targets/MSP430.cpp
74  Targets/Mips.cpp
75  Targets/NVPTX.cpp
76  Targets/OSTargets.cpp
77  Targets/PNaCl.cpp
78  Targets/PPC.cpp
79  Targets/RISCV.cpp
80  Targets/SPIR.cpp
81  Targets/Sparc.cpp
82  Targets/SystemZ.cpp
83  Targets/TCE.cpp
84  Targets/WebAssembly.cpp
85  Targets/X86.cpp
86  Targets/XCore.cpp
87  TokenKinds.cpp
88  Version.cpp
89  Warnings.cpp
90  XRayInstr.cpp
91  XRayLists.cpp
92  ${version_inc}
93  )
94
95