Add YAML parser to Support.
[oota-llvm.git] / unittests / CMakeLists.txt
1 function(add_llvm_unittest test_dirname)
2   string(REGEX MATCH "([^/]+)$" test_name ${test_dirname})
3   if (CMAKE_BUILD_TYPE)
4     set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
5       ${LLVM_BINARY_DIR}/unittests/${test_dirname}/${CMAKE_BUILD_TYPE})
6   else()
7     set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
8       ${LLVM_BINARY_DIR}/unittests/${test_dirname})
9   endif()
10   if( NOT LLVM_BUILD_TESTS )
11     set(EXCLUDE_FROM_ALL ON)
12   endif()
13   add_llvm_executable(${test_name}Tests ${ARGN})
14   add_dependencies(UnitTests ${test_name}Tests)
15   set_target_properties(${test_name}Tests PROPERTIES FOLDER "Tests")
16 endfunction()
17
18 add_custom_target(UnitTests)
19 set_target_properties(UnitTests PROPERTIES FOLDER "Tests")
20
21 include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include)
22 add_definitions(-DGTEST_HAS_RTTI=0)
23 if( LLVM_COMPILER_IS_GCC_COMPATIBLE )
24   llvm_replace_compiler_option(CMAKE_CXX_FLAGS "-frtti" "-fno-rtti")
25 elseif( MSVC )
26   llvm_replace_compiler_option(CMAKE_CXX_FLAGS "/GR" "/GR-")
27 endif()
28
29 if (NOT LLVM_ENABLE_THREADS)
30   add_definitions(-DGTEST_HAS_PTHREAD=0)
31 endif()
32
33 if(SUPPORTS_NO_VARIADIC_MACROS_FLAG)
34   add_definitions("-Wno-variadic-macros")
35 endif()
36
37 set(LLVM_LINK_COMPONENTS
38   jit
39   interpreter
40   nativecodegen
41   BitWriter
42   BitReader
43   AsmParser
44   Core
45   Support
46   )
47
48 set(LLVM_USED_LIBS
49   gtest
50   gtest_main
51   LLVMSupport # gtest needs it for raw_ostream.
52   )
53
54 add_llvm_unittest(ADT
55   ADT/APFloatTest.cpp
56   ADT/APIntTest.cpp
57   ADT/BitVectorTest.cpp
58   ADT/DAGDeltaAlgorithmTest.cpp
59   ADT/DeltaAlgorithmTest.cpp
60   ADT/DenseMapTest.cpp
61   ADT/DenseSetTest.cpp
62   ADT/FoldingSet.cpp
63   ADT/HashingTest.cpp
64   ADT/ilistTest.cpp
65   ADT/ImmutableSetTest.cpp
66   ADT/IntEqClassesTest.cpp
67   ADT/IntervalMapTest.cpp
68   ADT/IntrusiveRefCntPtrTest.cpp
69   ADT/PackedVectorTest.cpp
70   ADT/SmallBitVectorTest.cpp
71   ADT/SmallStringTest.cpp
72   ADT/SmallVectorTest.cpp
73   ADT/SparseBitVectorTest.cpp
74   ADT/SparseSetTest.cpp
75   ADT/StringMapTest.cpp
76   ADT/StringRefTest.cpp
77   ADT/TripleTest.cpp
78   ADT/TwineTest.cpp
79   ADT/VariadicFunctionTest.cpp
80  )
81
82 add_llvm_unittest(Analysis
83   Analysis/ScalarEvolutionTest.cpp
84   )
85
86 add_llvm_unittest(ExecutionEngine
87   ExecutionEngine/ExecutionEngineTest.cpp
88   )
89
90 if( LLVM_USE_INTEL_JITEVENTS )
91   include_directories( ${LLVM_INTEL_JITEVENTS_INCDIR} )
92   link_directories( ${LLVM_INTEL_JITEVENTS_LIBDIR} )
93   set(ProfileTestSources
94     ExecutionEngine/JIT/IntelJITEventListenerTest.cpp
95     )
96   set(LLVM_LINK_COMPONENTS
97     ${LLVM_LINK_COMPONENTS}
98     IntelJITEvents
99     ) 
100 endif( LLVM_USE_INTEL_JITEVENTS )
101
102 if( LLVM_USE_OPROFILE )
103   set(ProfileTestSources
104     ${ProfileTestSources}
105     ExecutionEngine/JIT/OProfileJITEventListenerTest.cpp
106     )
107   set(LLVM_LINK_COMPONENTS
108     ${LLVM_LINK_COMPONENTS}
109     OProfileJIT
110     )
111 endif( LLVM_USE_OPROFILE )
112
113 set(JITTestsSources
114   ExecutionEngine/JIT/JITEventListenerTest.cpp
115   ExecutionEngine/JIT/JITMemoryManagerTest.cpp
116   ExecutionEngine/JIT/JITTest.cpp
117   ExecutionEngine/JIT/MultiJITTest.cpp
118   ${ProfileTestSources}
119   )
120
121 if(MSVC)
122   list(APPEND JITTestsSources ExecutionEngine/JIT/JITTests.def)
123 endif()
124
125 add_llvm_unittest(ExecutionEngine/JIT ${JITTestsSources})
126
127 if(MINGW OR CYGWIN)
128   set_property(TARGET JITTests PROPERTY LINK_FLAGS -Wl,--export-all-symbols)
129 endif()
130
131 add_llvm_unittest(Transforms/Utils
132   Transforms/Utils/Cloning.cpp
133   )
134
135 set(VMCoreSources
136   VMCore/ConstantsTest.cpp
137   VMCore/InstructionsTest.cpp
138   VMCore/MetadataTest.cpp
139   VMCore/PassManagerTest.cpp
140   VMCore/ValueMapTest.cpp
141   VMCore/VerifierTest.cpp
142   VMCore/DominatorTreeTest.cpp
143   )
144
145 # MSVC9 and 8 cannot compile ValueMapTest.cpp due to their bug.
146 # See issue#331418 in Visual Studio.
147 if(MSVC AND MSVC_VERSION LESS 1600)
148   list(REMOVE_ITEM VMCoreSources VMCore/ValueMapTest.cpp)
149 endif()
150
151 add_llvm_unittest(VMCore ${VMCoreSources})
152
153 add_llvm_unittest(Bitcode
154   Bitcode/BitReaderTest.cpp
155   )
156
157 set(LLVM_LINK_COMPONENTS
158   Support
159   Core
160   )
161
162 add_llvm_unittest(Support
163   Support/AllocatorTest.cpp
164   Support/Casting.cpp
165   Support/CommandLineTest.cpp
166   Support/ConstantRangeTest.cpp
167   Support/EndianTest.cpp
168   Support/JSONParserTest.cpp
169   Support/LeakDetectorTest.cpp
170   Support/MathExtrasTest.cpp
171   Support/Path.cpp
172   Support/raw_ostream_test.cpp
173   Support/RegexTest.cpp
174   Support/SwapByteOrderTest.cpp
175   Support/TimeValue.cpp
176   Support/TypeBuilderTest.cpp
177   Support/ValueHandleTest.cpp
178   Support/YAMLParserTest.cpp
179   )