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