blob: f3de8349b215e09e09fbd287a34a00ea14a87b07 [file] [log] [blame]
NAKAMURA Takumib3d37e32010-12-07 07:41:23 +00001function(add_llvm_unittest test_dirname)
2 string(REGEX MATCH "([^/]+)$" test_name ${test_dirname})
Michael J. Spenceree6944f2010-09-24 09:01:13 +00003 if (CMAKE_BUILD_TYPE)
4 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
NAKAMURA Takumib3d37e32010-12-07 07:41:23 +00005 ${LLVM_BINARY_DIR}/unittests/${test_dirname}/${CMAKE_BUILD_TYPE})
Michael J. Spenceree6944f2010-09-24 09:01:13 +00006 else()
7 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
NAKAMURA Takumib3d37e32010-12-07 07:41:23 +00008 ${LLVM_BINARY_DIR}/unittests/${test_dirname})
Michael J. Spenceree6944f2010-09-24 09:01:13 +00009 endif()
10 if( NOT LLVM_BUILD_TESTS )
11 set(EXCLUDE_FROM_ALL ON)
12 endif()
Oscar Fuentes066de852010-09-25 20:25:25 +000013 add_llvm_executable(${test_name}Tests ${ARGN})
Oscar Fuentesda975632010-10-28 14:38:35 +000014 add_dependencies(UnitTests ${test_name}Tests)
Michael J. Spenceree6944f2010-09-24 09:01:13 +000015endfunction()
16
Oscar Fuentesda975632010-10-28 14:38:35 +000017add_custom_target(UnitTests)
18
Michael J. Spenceree6944f2010-09-24 09:01:13 +000019include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include)
Michael J. Spencer8a806ae2010-10-19 18:04:19 +000020add_definitions(-DGTEST_HAS_RTTI=0)
Michael J. Spencerf2ca4cb2010-11-24 19:20:05 +000021if (NOT LLVM_ENABLE_THREADS)
22 add_definitions(-DGTEST_HAS_PTHREAD=0)
23endif()
Michael J. Spenceree6944f2010-09-24 09:01:13 +000024
Frits van Bommel729b2942010-12-07 10:22:07 +000025if(SUPPORTS_NO_VARIADIC_MACROS_FLAG)
26 add_definitions("-Wno-variadic-macros")
27endif()
28
Michael J. Spenceree6944f2010-09-24 09:01:13 +000029set(LLVM_LINK_COMPONENTS
30 jit
31 interpreter
32 nativecodegen
33 BitWriter
34 BitReader
35 AsmParser
36 Core
Michael J. Spenceree6944f2010-09-24 09:01:13 +000037 Support
38 )
39
40set(LLVM_USED_LIBS
41 gtest
42 gtest_main
Michael J. Spencerf2ca4cb2010-11-24 19:20:05 +000043 LLVMSupport # gtest needs it for raw_ostream.
Michael J. Spenceree6944f2010-09-24 09:01:13 +000044 )
45
46add_llvm_unittest(ADT
47 ADT/APFloatTest.cpp
48 ADT/APIntTest.cpp
49 ADT/BitVectorTest.cpp
50 ADT/DAGDeltaAlgorithmTest.cpp
51 ADT/DeltaAlgorithmTest.cpp
52 ADT/DenseMapTest.cpp
53 ADT/DenseSetTest.cpp
Dale Johannesena197cba2010-11-19 23:23:22 +000054 ADT/FoldingSet.cpp
Michael J. Spenceree6944f2010-09-24 09:01:13 +000055 ADT/ilistTest.cpp
56 ADT/ImmutableSetTest.cpp
Jakob Stoklund Olesen8dc92672010-11-19 04:47:19 +000057 ADT/IntervalMapTest.cpp
Michael J. Spenceree6944f2010-09-24 09:01:13 +000058 ADT/SmallBitVectorTest.cpp
59 ADT/SmallStringTest.cpp
60 ADT/SmallVectorTest.cpp
61 ADT/SparseBitVectorTest.cpp
62 ADT/StringMapTest.cpp
63 ADT/StringRefTest.cpp
64 ADT/TripleTest.cpp
65 ADT/TwineTest.cpp
Douglas Gregorc576d3d2010-09-27 16:40:43 +000066 )
Michael J. Spenceree6944f2010-09-24 09:01:13 +000067
68add_llvm_unittest(Analysis
69 Analysis/ScalarEvolutionTest.cpp
70 )
71
72add_llvm_unittest(ExecutionEngine
73 ExecutionEngine/ExecutionEngineTest.cpp
74 )
75
NAKAMURA Takumi0f60ddc2010-11-19 03:19:42 +000076set(JITTestsSources
Michael J. Spenceree6944f2010-09-24 09:01:13 +000077 ExecutionEngine/JIT/JITEventListenerTest.cpp
78 ExecutionEngine/JIT/JITMemoryManagerTest.cpp
79 ExecutionEngine/JIT/JITTest.cpp
80 ExecutionEngine/JIT/MultiJITTest.cpp
81 )
82
NAKAMURA Takumi0f60ddc2010-11-19 03:19:42 +000083if(MSVC)
84 list(APPEND JITTestsSources ExecutionEngine/JIT/JITTests.def)
85endif()
86
NAKAMURA Takumib3d37e32010-12-07 07:41:23 +000087add_llvm_unittest(ExecutionEngine/JIT ${JITTestsSources})
NAKAMURA Takumi0f60ddc2010-11-19 03:19:42 +000088
NAKAMURA Takumib9dec1f2010-11-26 09:32:02 +000089if(MINGW)
90 set_property(TARGET JITTests PROPERTY LINK_FLAGS -Wl,--export-all-symbols)
91endif()
92
NAKAMURA Takumib3d37e32010-12-07 07:41:23 +000093add_llvm_unittest(Transforms/Utils
Michael J. Spencer12647eb2010-10-11 21:22:34 +000094 Transforms/Utils/Cloning.cpp
95 )
96
NAKAMURA Takumi130a2dd2010-11-19 03:19:32 +000097set(VMCoreSources
Michael J. Spencer12647eb2010-10-11 21:22:34 +000098 VMCore/ConstantsTest.cpp
99 VMCore/DerivedTypesTest.cpp
100 VMCore/InstructionsTest.cpp
101 VMCore/MetadataTest.cpp
102 VMCore/PassManagerTest.cpp
NAKAMURA Takumib08ca272010-11-14 12:37:51 +0000103 VMCore/ValueMapTest.cpp
Michael J. Spencer12647eb2010-10-11 21:22:34 +0000104 VMCore/VerifierTest.cpp
105 )
106
NAKAMURA Takumi130a2dd2010-11-19 03:19:32 +0000107# MSVC9 and 8 cannot compile ValueMapTest.cpp due to their bug.
108# See issue#331418 in Visual Studio.
109if(MSVC AND MSVC_VERSION LESS 1600)
110 list(REMOVE_ITEM VMCoreSources VMCore/ValueMapTest.cpp)
111endif()
112
113add_llvm_unittest(VMCore ${VMCoreSources})
114
Michael J. Spencer12647eb2010-10-11 21:22:34 +0000115set(LLVM_LINK_COMPONENTS
Michael J. Spencer12647eb2010-10-11 21:22:34 +0000116 Support
117 Core
118 )
119
Michael J. Spenceree6944f2010-09-24 09:01:13 +0000120add_llvm_unittest(Support
121 Support/AllocatorTest.cpp
122 Support/Casting.cpp
123 Support/CommandLineTest.cpp
124 Support/ConstantRangeTest.cpp
Michael J. Spencer5e0b2bf2010-10-21 20:28:21 +0000125 Support/EndianTest.cpp
Michael J. Spenceree6944f2010-09-24 09:01:13 +0000126 Support/LeakDetectorTest.cpp
127 Support/MathExtrasTest.cpp
Michael J. Spencer013d15a2010-11-29 22:29:04 +0000128 Support/Path.cpp
Michael J. Spenceree6944f2010-09-24 09:01:13 +0000129 Support/raw_ostream_test.cpp
130 Support/RegexTest.cpp
Michael J. Spencer4c099b82010-10-11 21:56:16 +0000131 Support/SwapByteOrderTest.cpp
Michael J. Spencer013d15a2010-11-29 22:29:04 +0000132 Support/TimeValue.cpp
Michael J. Spenceree6944f2010-09-24 09:01:13 +0000133 Support/TypeBuilderTest.cpp
134 Support/ValueHandleTest.cpp
135 )