[ThinLTO] Add code comment. NFC
[llvm-complete.git] / lib / Support / CMakeLists.txt
blobcc80175185b9747fe62fb1a746baa1bd4b10941e
1 set(system_libs)
2 if ( LLVM_ENABLE_ZLIB AND HAVE_LIBZ )
3   set(system_libs ${system_libs} ${ZLIB_LIBRARIES})
4 endif()
5 if( MSVC OR MINGW )
6   # libuuid required for FOLDERID_Profile usage in lib/Support/Windows/Path.inc.
7   # advapi32 required for CryptAcquireContextW in lib/Support/Windows/Path.inc.
8   set(system_libs ${system_libs} psapi shell32 ole32 uuid advapi32)
9 elseif( CMAKE_HOST_UNIX )
10   if( HAVE_LIBRT )
11     set(system_libs ${system_libs} rt)
12   endif()
13   if( HAVE_LIBDL )
14     set(system_libs ${system_libs} ${CMAKE_DL_LIBS})
15   endif()
16   if( HAVE_BACKTRACE AND NOT "${Backtrace_LIBRARIES}" STREQUAL "" )
17     # On BSDs, CMake returns a fully qualified path to the backtrace library.
18     # We need to remove the path and the 'lib' prefix, to make it look like a
19     # regular short library name, suitable for appending to a -l link flag.
20     get_filename_component(Backtrace_LIBFILE ${Backtrace_LIBRARIES} NAME_WE)
21     STRING(REGEX REPLACE "^lib" "" Backtrace_LIBFILE ${Backtrace_LIBFILE})
22     set(system_libs ${system_libs} ${Backtrace_LIBFILE})
23   endif()
24   if(LLVM_ENABLE_TERMINFO)
25     if(HAVE_TERMINFO)
26       set(system_libs ${system_libs} ${TERMINFO_LIBS})
27     endif()
28   endif()
29   if( LLVM_ENABLE_THREADS AND HAVE_LIBATOMIC )
30     set(system_libs ${system_libs} atomic)
31   endif()
32   set(system_libs ${system_libs} ${LLVM_PTHREAD_LIB})
33   if( UNIX AND NOT (BEOS OR HAIKU) )
34     set(system_libs ${system_libs} m)
35   endif()
36   if( FUCHSIA )
37     set(system_libs ${system_libs} zircon)
38   endif()
39 endif( MSVC OR MINGW )
41 # Delay load shell32.dll if possible to speed up process startup.
42 set (delayload_flags)
43 if (MSVC)
44   set (delayload_flags delayimp -delayload:shell32.dll -delayload:ole32.dll)
45 endif()
47 # Link Z3 if the user wants to build it.
48 if(LLVM_WITH_Z3)
49   set(Z3_LINK_FILES ${Z3_LIBRARIES})
50 else()
51   set(Z3_LINK_FILES "")
52 endif()
54 add_llvm_library(LLVMSupport
55   AArch64TargetParser.cpp
56   ABIBreak.cpp
57   ARMTargetParser.cpp
58   AMDGPUMetadata.cpp
59   APFloat.cpp
60   APInt.cpp
61   APSInt.cpp
62   ARMBuildAttrs.cpp
63   ARMAttributeParser.cpp
64   ARMWinEH.cpp
65   Allocator.cpp
66   BinaryStreamError.cpp
67   BinaryStreamReader.cpp
68   BinaryStreamRef.cpp
69   BinaryStreamWriter.cpp
70   BlockFrequency.cpp
71   BranchProbability.cpp
72   BuryPointer.cpp
73   CachePruning.cpp
74   circular_raw_ostream.cpp
75   Chrono.cpp
76   COM.cpp
77   CodeGenCoverage.cpp
78   CommandLine.cpp
79   Compression.cpp
80   CRC.cpp
81   ConvertUTF.cpp
82   ConvertUTFWrapper.cpp
83   CrashRecoveryContext.cpp
84   DataExtractor.cpp
85   Debug.cpp
86   DebugCounter.cpp
87   DeltaAlgorithm.cpp
88   DAGDeltaAlgorithm.cpp
89   DJB.cpp
90   Error.cpp
91   ErrorHandling.cpp
92   FileCheck.cpp
93   FileCollector.cpp
94   FileUtilities.cpp
95   FileOutputBuffer.cpp
96   FoldingSet.cpp
97   FormattedStream.cpp
98   FormatVariadic.cpp
99   GlobPattern.cpp
100   GraphWriter.cpp
101   Hashing.cpp
102   InitLLVM.cpp
103   IntEqClasses.cpp
104   IntervalMap.cpp
105   ItaniumManglingCanonicalizer.cpp
106   JSON.cpp
107   KnownBits.cpp
108   LEB128.cpp
109   LineIterator.cpp
110   Locale.cpp
111   LockFileManager.cpp
112   LowLevelType.cpp
113   ManagedStatic.cpp
114   MathExtras.cpp
115   MemoryBuffer.cpp
116   MD5.cpp
117   NativeFormatting.cpp
118   Optional.cpp
119   Options.cpp
120   Parallel.cpp
121   PluginLoader.cpp
122   PrettyStackTrace.cpp
123   RandomNumberGenerator.cpp
124   Regex.cpp
125   ScaledNumber.cpp
126   ScopedPrinter.cpp
127   SHA1.cpp
128   Signposts.cpp
129   SmallPtrSet.cpp
130   SmallVector.cpp
131   SourceMgr.cpp
132   SpecialCaseList.cpp
133   Statistic.cpp
134   StringExtras.cpp
135   StringMap.cpp
136   StringPool.cpp
137   StringSaver.cpp
138   StringRef.cpp
139   SymbolRemappingReader.cpp
140   SystemUtils.cpp
141   TarWriter.cpp
142   TargetParser.cpp
143   ThreadPool.cpp
144   TimeProfiler.cpp
145   Timer.cpp
146   ToolOutputFile.cpp
147   TrigramIndex.cpp
148   Triple.cpp
149   Twine.cpp
150   Unicode.cpp
151   UnicodeCaseFold.cpp
152   VersionTuple.cpp
153   VirtualFileSystem.cpp
154   WithColor.cpp
155   YAMLParser.cpp
156   YAMLTraits.cpp
157   raw_os_ostream.cpp
158   raw_ostream.cpp
159   regcomp.c
160   regerror.c
161   regexec.c
162   regfree.c
163   regstrlcpy.c
164   xxhash.cpp
165   Z3Solver.cpp
167 # System
168   Atomic.cpp
169   DynamicLibrary.cpp
170   Errno.cpp
171   Host.cpp
172   Memory.cpp
173   Path.cpp
174   Process.cpp
175   Program.cpp
176   RWMutex.cpp
177   Signals.cpp
178   TargetRegistry.cpp
179   ThreadLocal.cpp
180   Threading.cpp
181   Valgrind.cpp
182   Watchdog.cpp
184   ADDITIONAL_HEADER_DIRS
185   Unix
186   Windows
187   ${LLVM_MAIN_INCLUDE_DIR}/llvm/ADT
188   ${LLVM_MAIN_INCLUDE_DIR}/llvm/Support
189   ${Backtrace_INCLUDE_DIRS}
190   LINK_LIBS ${system_libs} ${delayload_flags} ${Z3_LINK_FILES}
191   )
193 set_property(TARGET LLVMSupport PROPERTY LLVM_SYSTEM_LIBS "${system_libs}")
195 if(LLVM_WITH_Z3)
196   target_include_directories(LLVMSupport SYSTEM
197     PRIVATE
198     ${Z3_INCLUDE_DIR}
199     )
200 endif()