Removing the static initializer in ManagedStatic.cpp by using llvm_call_once to initi...
[oota-llvm.git] / lib / Support / CMakeLists.txt
1 add_llvm_library(LLVMSupport
2   APFloat.cpp
3   APInt.cpp
4   APSInt.cpp
5   ARMBuildAttrs.cpp
6   ARMWinEH.cpp
7   Allocator.cpp
8   BlockFrequency.cpp
9   BranchProbability.cpp
10   circular_raw_ostream.cpp
11   CommandLine.cpp
12   Compression.cpp
13   ConvertUTF.c
14   ConvertUTFWrapper.cpp
15   CrashRecoveryContext.cpp
16   DataExtractor.cpp
17   DataStream.cpp
18   Debug.cpp
19   DeltaAlgorithm.cpp
20   DAGDeltaAlgorithm.cpp
21   Dwarf.cpp
22   ErrorHandling.cpp
23   FileUtilities.cpp
24   FileOutputBuffer.cpp
25   FoldingSet.cpp
26   FormattedStream.cpp
27   GraphWriter.cpp
28   Hashing.cpp
29   IntEqClasses.cpp
30   IntervalMap.cpp
31   IntrusiveRefCntPtr.cpp
32   IsInf.cpp
33   IsNAN.cpp
34   LEB128.cpp
35   LineIterator.cpp
36   Locale.cpp
37   LockFileManager.cpp
38   ManagedStatic.cpp
39   MathExtras.cpp
40   MemoryBuffer.cpp
41   MemoryObject.cpp
42   MD5.cpp
43   Options.cpp
44   PluginLoader.cpp
45   PrettyStackTrace.cpp
46   RandomNumberGenerator.cpp
47   Regex.cpp
48   ScaledNumber.cpp
49   SmallPtrSet.cpp
50   SmallVector.cpp
51   SourceMgr.cpp
52   SpecialCaseList.cpp
53   Statistic.cpp
54   StreamableMemoryObject.cpp
55   StringExtras.cpp
56   StringMap.cpp
57   StringPool.cpp
58   StringRef.cpp
59   StringRefMemoryObject.cpp
60   SystemUtils.cpp
61   Timer.cpp
62   ToolOutputFile.cpp
63   Triple.cpp
64   Twine.cpp
65   Unicode.cpp
66   YAMLParser.cpp
67   YAMLTraits.cpp
68   raw_os_ostream.cpp
69   raw_ostream.cpp
70   regcomp.c
71   regerror.c
72   regexec.c
73   regfree.c
74   regstrlcpy.c
75
76 # System
77   Atomic.cpp
78   DynamicLibrary.cpp
79   Errno.cpp
80   Host.cpp
81   Memory.cpp
82   Mutex.cpp
83   Path.cpp
84   Process.cpp
85   Program.cpp
86   RWMutex.cpp
87   SearchForAddressOfSpecialSymbol.cpp
88   Signals.cpp
89   TargetRegistry.cpp
90   ThreadLocal.cpp
91   Threading.cpp
92   TimeValue.cpp
93   Valgrind.cpp
94   Watchdog.cpp
95
96   ADDITIONAL_HEADERS
97   Unix/Host.inc
98   Unix/Memory.inc
99   Unix/Mutex.inc
100   Unix/Path.inc
101   Unix/Process.inc
102   Unix/Program.inc
103   Unix/RWMutex.inc
104   Unix/Signals.inc
105   Unix/Threading.inc
106   Unix/ThreadLocal.inc
107   Unix/TimeValue.inc
108   Unix/Watchdog.inc
109   Windows/DynamicLibrary.inc
110   Windows/Host.inc
111   Windows/Memory.inc
112   Windows/Mutex.inc
113   Windows/Path.inc
114   Windows/Process.inc
115   Windows/Program.inc
116   Windows/RWMutex.inc
117   Windows/Signals.inc
118   Windows/Threading.inc
119   Windows/ThreadLocal.inc
120   Windows/TimeValue.inc
121   Windows/Watchdog.inc
122   )
123 set(system_libs)
124 if( NOT MSVC )
125   if( MINGW )
126     set(system_libs ${system_libs} imagehlp psapi shell32)
127   elseif( CMAKE_HOST_UNIX )
128     if( HAVE_LIBRT )
129       set(system_libs ${system_libs} rt)
130     endif()
131     if( HAVE_LIBDL )
132       set(system_libs ${system_libs} ${CMAKE_DL_LIBS})
133     endif()
134     if(LLVM_ENABLE_TERMINFO)
135       if(HAVE_TERMINFO)
136         set(system_libs ${system_libs} ${TERMINFO_LIBS})
137       endif()
138     endif()
139     if( LLVM_ENABLE_THREADS AND HAVE_LIBATOMIC )
140       set(system_libs ${system_libs} atomic)
141     endif()
142     if( LLVM_ENABLE_THREADS AND HAVE_LIBPTHREAD )
143       set(system_libs ${system_libs} pthread)
144     endif()
145     if ( LLVM_ENABLE_ZLIB AND HAVE_LIBZ )
146       set(system_libs ${system_libs} z)
147     endif()
148   endif( MINGW )
149 endif( NOT MSVC )
150
151
152 if(POLICY CMP0022 AND BUILD_SHARED_LIBS)
153   # FIXME: Should this be really PUBLIC?
154   target_link_libraries(LLVMSupport PUBLIC ${system_libs})
155 else()
156   target_link_libraries(LLVMSupport ${cmake_2_8_12_INTERFACE} ${system_libs})
157 endif()
158
159 set_property(TARGET LLVMSupport PROPERTY LLVM_SYSTEM_LIBS "${system_libs}")