blob: 18dd7d61fbb4283af1f17413af8c67347ad7ef2e [file] [log] [blame]
NAKAMURA Takumi65d42bc2013-12-09 19:04:43 +00001set(LLVM_LINK_COMPONENTS
NAKAMURA Takumi86204b22014-10-16 00:12:02 +00002 Core
NAKAMURA Takumi65d42bc2013-12-09 19:04:43 +00003 MC
4 Support
5 )
Jeffrey Yasskinc4988782011-02-11 23:46:38 +00006
Petr Hosek23fdd5a2019-02-06 03:51:00 +00007find_first_existing_vc_file("${LLVM_MAIN_SRC_DIR}" llvm_vc)
8find_first_existing_vc_file("${CLANG_SOURCE_DIR}" clang_vc)
Jordan Rose85216ef2014-11-19 22:03:48 +00009
Paul Robinson91f0edc2014-12-05 22:32:49 +000010# The VC revision include that we want to generate.
Petr Hosek23fdd5a2019-02-06 03:51:00 +000011set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/VCSVersion.inc")
Paul Robinson91f0edc2014-12-05 22:32:49 +000012
Petr Hosek23fdd5a2019-02-06 03:51:00 +000013set(generate_vcs_version_script "${LLVM_CMAKE_PATH}/GenerateVersionFromVCS.cmake")
Nico Weberd95699e2014-12-10 00:03:37 +000014
Petr Hosek23fdd5a2019-02-06 03:51:00 +000015if(llvm_vc)
16 set(llvm_source_dir ${LLVM_MAIN_SRC_DIR})
Jordan Rose85216ef2014-11-19 22:03:48 +000017endif()
Petr Hosek23fdd5a2019-02-06 03:51:00 +000018if(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")
Jordan Rose85216ef2014-11-19 22:03:48 +000038
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000039add_clang_library(clangBasic
Aaron Ballman2fbf9942014-03-31 13:14:44 +000040 Attributes.cpp
Chris Lattner5abdec72009-06-14 01:05:48 +000041 Builtins.cpp
Jordan Rosea2100d72013-02-08 22:30:22 +000042 CharInfo.cpp
Richard Trieu63688182018-12-11 03:18:39 +000043 CodeGenOptions.cpp
Justin Lebar62907612016-07-06 21:21:39 +000044 Cuda.cpp
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000045 Diagnostic.cpp
Benjamin Kramerfc305982010-11-18 21:19:52 +000046 DiagnosticIDs.cpp
Eric Fiselier098e6de2015-06-13 07:11:40 +000047 DiagnosticOptions.cpp
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000048 FileManager.cpp
Chris Lattner226efd32010-11-23 19:19:34 +000049 FileSystemStatCache.cpp
Leonard Chana6779422018-08-06 16:42:37 +000050 FixedPoint.cpp
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000051 IdentifierTable.cpp
Douglas Gregor79a91412011-09-13 17:21:33 +000052 LangOptions.cpp
Douglas Gregorde3ef502011-11-30 23:21:26 +000053 Module.cpp
John McCall5fb5df92012-06-20 06:18:46 +000054 ObjCRuntime.cpp
Alexey Bataeva769e072013-03-22 06:34:35 +000055 OpenMPKinds.cpp
Daniel Jasperd1122cb2012-12-20 20:25:19 +000056 OperatorPrecedence.cpp
Alexey Samsonov8d043e82014-10-15 19:57:45 +000057 SanitizerBlacklist.cpp
Vlad Tsyrklevich2eccdab2017-09-25 22:11:12 +000058 SanitizerSpecialCaseList.cpp
Alexey Samsonova0416102014-11-11 01:26:14 +000059 Sanitizers.cpp
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000060 SourceLocation.cpp
61 SourceManager.cpp
62 TargetInfo.cpp
63 Targets.cpp
Erich Keaneebba5922017-07-21 22:37:03 +000064 Targets/AArch64.cpp
65 Targets/AMDGPU.cpp
Tatyana Krasnukhaf8c264e2018-11-27 19:52:10 +000066 Targets/ARC.cpp
Erich Keaneebba5922017-07-21 22:37:03 +000067 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
Erich Keaneebba5922017-07-21 22:37:03 +000076 Targets/OSTargets.cpp
77 Targets/PNaCl.cpp
78 Targets/PPC.cpp
Alex Bradbury71f45452018-01-11 13:36:56 +000079 Targets/RISCV.cpp
Erich Keaneebba5922017-07-21 22:37:03 +000080 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
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000087 TokenKinds.cpp
Douglas Gregor1b7035d2009-10-05 20:33:49 +000088 Version.cpp
Ben Langmuirb92de022014-04-29 16:25:26 +000089 Warnings.cpp
Dean Michael Berris488f7c22018-04-13 02:31:58 +000090 XRayInstr.cpp
Dean Michael Berris835832d2017-03-30 00:29:36 +000091 XRayLists.cpp
Jordan Rose85216ef2014-11-19 22:03:48 +000092 ${version_inc}
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000093 )
Douglas Gregor23d75bb2009-03-16 23:06:59 +000094