[x86] fix assert with horizontal math + broadcast of vector (PR43402)
[llvm-core.git] / lib / Support / CMakeLists.txt
blob29d99ff9cf7982e8077b83b17e1e6b1aad3da7b4
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   JamCRC.cpp
107   JSON.cpp
108   KnownBits.cpp
109   LEB128.cpp
110   LineIterator.cpp
111   Locale.cpp
112   LockFileManager.cpp
113   LowLevelType.cpp
114   ManagedStatic.cpp
115   MathExtras.cpp
116   MemoryBuffer.cpp
117   MD5.cpp
118   NativeFormatting.cpp
119   Optional.cpp
120   Options.cpp
121   Parallel.cpp
122   PluginLoader.cpp
123   PrettyStackTrace.cpp
124   RandomNumberGenerator.cpp
125   Regex.cpp
126   ScaledNumber.cpp
127   ScopedPrinter.cpp
128   SHA1.cpp
129   Signposts.cpp
130   SmallPtrSet.cpp
131   SmallVector.cpp
132   SourceMgr.cpp
133   SpecialCaseList.cpp
134   Statistic.cpp
135   StringExtras.cpp
136   StringMap.cpp
137   StringPool.cpp
138   StringSaver.cpp
139   StringRef.cpp
140   SymbolRemappingReader.cpp
141   SystemUtils.cpp
142   TarWriter.cpp
143   TargetParser.cpp
144   ThreadPool.cpp
145   TimeProfiler.cpp
146   Timer.cpp
147   ToolOutputFile.cpp
148   TrigramIndex.cpp
149   Triple.cpp
150   Twine.cpp
151   Unicode.cpp
152   UnicodeCaseFold.cpp
153   VersionTuple.cpp
154   VirtualFileSystem.cpp
155   WithColor.cpp
156   YAMLParser.cpp
157   YAMLTraits.cpp
158   raw_os_ostream.cpp
159   raw_ostream.cpp
160   regcomp.c
161   regerror.c
162   regexec.c
163   regfree.c
164   regstrlcpy.c
165   xxhash.cpp
166   Z3Solver.cpp
168 # System
169   Atomic.cpp
170   DynamicLibrary.cpp
171   Errno.cpp
172   Host.cpp
173   Memory.cpp
174   Path.cpp
175   Process.cpp
176   Program.cpp
177   RWMutex.cpp
178   Signals.cpp
179   TargetRegistry.cpp
180   ThreadLocal.cpp
181   Threading.cpp
182   Valgrind.cpp
183   Watchdog.cpp
185   ADDITIONAL_HEADER_DIRS
186   Unix
187   Windows
188   ${LLVM_MAIN_INCLUDE_DIR}/llvm/ADT
189   ${LLVM_MAIN_INCLUDE_DIR}/llvm/Support
190   ${Backtrace_INCLUDE_DIRS}
191   LINK_LIBS ${system_libs} ${delayload_flags} ${Z3_LINK_FILES}
192   )
194 set_property(TARGET LLVMSupport PROPERTY LLVM_SYSTEM_LIBS "${system_libs}")
196 if(LLVM_WITH_Z3)
197   target_include_directories(LLVMSupport SYSTEM
198     PRIVATE
199     ${Z3_INCLUDE_DIR}
200     )
201 endif()