blob: d8b3c234a1efd1d31e280f8083adcb09334410a2 [file] [log] [blame]
Jeffrey Yasskinc4988782011-02-11 23:46:38 +00001set(LLVM_LINK_COMPONENTS
NAKAMURA Takumi98501ea2015-01-15 07:28:53 +00002 Analysis
NAKAMURA Takumi65d42bc2013-12-09 19:04:43 +00003 BitReader
4 BitWriter
5 Core
Gor Nishanov97e3b6d2016-10-03 22:44:48 +00006 Coroutines
Easwaran Ramanb014ee42016-04-29 18:53:16 +00007 Coverage
Johannes Doerfertb3c06db2019-11-04 23:00:36 -06008 FrontendOpenMP
NAKAMURA Takumi65d42bc2013-12-09 19:04:43 +00009 IPO
10 IRReader
Roman Lebedeve931b022018-04-24 08:40:44 +000011 AggressiveInstCombine
NAKAMURA Takumi65d42bc2013-12-09 19:04:43 +000012 InstCombine
13 Instrumentation
Teresa Johnson9e3f4742016-08-12 18:12:08 +000014 LTO
NAKAMURA Takumi65d42bc2013-12-09 19:04:43 +000015 Linker
16 MC
17 ObjCARCOpts
NAKAMURA Takumif3fda082015-07-08 02:06:21 +000018 Object
NAKAMURA Takumiafc8e542016-12-24 01:55:12 +000019 Passes
Justin Bogner837a6f62014-04-18 21:52:00 +000020 ProfileData
Sam Clegg9d21f512019-05-31 01:04:00 +000021 Remarks
NAKAMURA Takumi65d42bc2013-12-09 19:04:43 +000022 ScalarOpts
23 Support
Sanjay Patel21141d72015-06-02 18:02:13 +000024 Target
NAKAMURA Takumi23b702c2014-07-14 05:01:53 +000025 TransformUtils
Jeffrey Yasskinc4988782011-02-11 23:46:38 +000026 )
27
Reid Klecknerdd43a5c2014-11-05 20:30:55 +000028# In a standard Clang+LLVM build, we need to generate intrinsics before
29# building codegen. In a standalone build, LLVM is already built and we don't
30# need this dependency. Furthermore, LLVM doesn't export it so we can't have
31# this dependency.
32set(codegen_deps intrinsics_gen)
33if (CLANG_BUILT_STANDALONE)
34 set(codegen_deps)
35endif()
36
Peter Collingbourne7a17a8b2018-06-26 17:45:26 +000037if (MSVC)
38 set_source_files_properties(CodeGenModule.cpp PROPERTIES COMPILE_FLAGS /bigobj)
39endif()
40
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000041add_clang_library(clangCodeGen
Daniel Dunbarc1b17292010-06-15 17:48:49 +000042 BackendUtil.cpp
John McCallfc207f22013-03-07 21:37:12 +000043 CGAtomic.cpp
Mike Stump57d73542009-02-13 15:42:50 +000044 CGBlocks.cpp
Ted Kremenek3e808ed2009-07-15 21:08:41 +000045 CGBuiltin.cpp
Peter Collingbournefe883422011-10-06 18:29:37 +000046 CGCUDANV.cpp
47 CGCUDARuntime.cpp
Anders Carlsson59486a22009-11-24 05:51:11 +000048 CGCXX.cpp
Anders Carlsson81f6f362010-11-28 17:46:52 +000049 CGCXXABI.cpp
Ted Kremenekb2166d82014-01-06 23:20:52 +000050 CGCall.cpp
51 CGClass.cpp
John McCallb91ab892011-01-28 20:10:46 +000052 CGCleanup.cpp
Gor Nishanov97e3b6d2016-10-03 22:44:48 +000053 CGCoroutine.cpp
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000054 CGDebugInfo.cpp
55 CGDecl.cpp
Anders Carlssonbc49cfe2009-12-10 00:16:00 +000056 CGDeclCXX.cpp
Anders Carlsson4b08db72009-10-30 01:42:31 +000057 CGException.cpp
Ted Kremenek3e808ed2009-07-15 21:08:41 +000058 CGExpr.cpp
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000059 CGExprAgg.cpp
Ted Kremenekb2166d82014-01-06 23:20:52 +000060 CGExprCXX.cpp
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000061 CGExprComplex.cpp
62 CGExprConstant.cpp
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000063 CGExprScalar.cpp
Arpith Chacko Jacobcdda3daa2017-01-29 20:49:31 +000064 CGGPUBuiltin.cpp
Alexander Musman515ad8c2014-05-22 08:54:05 +000065 CGLoopInfo.cpp
Akira Hatanaka7275da02018-02-28 07:15:55 +000066 CGNonTrivialStruct.cpp
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000067 CGObjC.cpp
68 CGObjCGNU.cpp
69 CGObjCMac.cpp
Anders Carlsson843c6912011-03-25 14:16:48 +000070 CGObjCRuntime.cpp
Peter Collingbourne2dbb7082011-09-19 21:14:35 +000071 CGOpenCLRuntime.cpp
Alexey Bataev9959db52014-05-06 10:08:46 +000072 CGOpenMPRuntime.cpp
Samuel Antao45bfe4c2016-02-08 15:59:20 +000073 CGOpenMPRuntimeNVPTX.cpp
Ted Kremenekb2166d82014-01-06 23:20:52 +000074 CGRecordLayoutBuilder.cpp
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000075 CGStmt.cpp
Alexey Bataev9959db52014-05-06 10:08:46 +000076 CGStmtOpenMP.cpp
Anders Carlssonf768db72010-01-21 16:50:45 +000077 CGVTT.cpp
Ted Kremenekb2166d82014-01-06 23:20:52 +000078 CGVTables.cpp
Mark Laceya8e7df32013-10-30 21:53:58 +000079 CodeGenABITypes.cpp
Daniel Dunbarc1b17292010-06-15 17:48:49 +000080 CodeGenAction.cpp
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000081 CodeGenFunction.cpp
82 CodeGenModule.cpp
Ted Kremenekb2166d82014-01-06 23:20:52 +000083 CodeGenPGO.cpp
Daniel Dunbar59ae1372010-10-15 00:39:31 +000084 CodeGenTBAA.cpp
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000085 CodeGenTypes.cpp
John McCall5ad74072017-03-02 20:04:19 +000086 ConstantInitBuilder.cpp
David Blaikie8fd97322014-08-04 18:59:39 +000087 CoverageMappingGen.cpp
Charles Davis4e786dd2010-05-25 19:52:27 +000088 ItaniumCXXABI.cpp
Amjad Aboud546bc112017-02-09 22:07:24 +000089 MacroPPCallbacks.cpp
Charles Davis74ce8592010-06-09 23:25:41 +000090 MicrosoftCXXABI.cpp
Oscar Fuentes07d9f9a2008-10-26 00:56:18 +000091 ModuleBuilder.cpp
Adrian Prantlbc068582015-07-08 01:00:30 +000092 ObjectFilePCHContainerOperations.cpp
JF Bastienef202c32019-04-12 00:11:27 +000093 PatternInit.cpp
Alexey Samsonov4b8de112014-08-01 21:35:28 +000094 SanitizerMetadata.cpp
John McCall12f23522016-04-04 18:33:08 +000095 SwiftCallingConv.cpp
Anton Korobeynikovb322c3a2010-01-10 13:06:34 +000096 TargetInfo.cpp
Vitaly Buka64c80b42016-10-26 05:42:30 +000097 VarBypassDetector.cpp
NAKAMURA Takumi55a02ea2014-02-26 06:33:27 +000098
serge_sans_paille24ab9b52019-06-08 17:37:47 +020099 ENABLE_PLUGINS
100
NAKAMURA Takumi55a02ea2014-02-26 06:33:27 +0000101 DEPENDS
Reid Klecknerdd43a5c2014-11-05 20:30:55 +0000102 ${codegen_deps}
Douglas Gregorecc60b92010-05-05 05:41:05 +0000103
NAKAMURA Takumi96986862014-02-26 06:41:29 +0000104 LINK_LIBS
Mehdi Amini566a51d2016-10-24 23:38:32 +0000105 clangAnalysis
Chandler Carruth28969b42012-06-21 01:30:21 +0000106 clangAST
Michael Liao5c94dd72019-06-26 14:13:43 +0000107 clangASTMatchers
NAKAMURA Takumi4a070dc2014-07-14 04:59:27 +0000108 clangBasic
Chandler Carruth28969b42012-06-21 01:30:21 +0000109 clangFrontend
NAKAMURA Takumi51d35102014-08-05 15:01:12 +0000110 clangLex
Fangrui Song20001702018-12-12 06:07:33 +0000111 clangSerialization
Chandler Carruth28969b42012-06-21 01:30:21 +0000112 )