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