blob: 4ae9d637626d2739b29340a0f247df6e9e97245e [file] [log] [blame]
NAKAMURA Takumi7291ebc2010-12-07 07:41:23 +00001function(add_llvm_unittest test_dirname)
2 string(REGEX MATCH "([^/]+)$" test_name ${test_dirname})
Michael J. Spencer10d274d2010-09-24 09:01:13 +00003 if (CMAKE_BUILD_TYPE)
4 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
NAKAMURA Takumi7291ebc2010-12-07 07:41:23 +00005 ${LLVM_BINARY_DIR}/unittests/${test_dirname}/${CMAKE_BUILD_TYPE})
Michael J. Spencer10d274d2010-09-24 09:01:13 +00006 else()
7 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
NAKAMURA Takumi7291ebc2010-12-07 07:41:23 +00008 ${LLVM_BINARY_DIR}/unittests/${test_dirname})
Michael J. Spencer10d274d2010-09-24 09:01:13 +00009 endif()
10 if( NOT LLVM_BUILD_TESTS )
11 set(EXCLUDE_FROM_ALL ON)
12 endif()
Oscar Fuentes46d8a932010-09-25 20:25:25 +000013 add_llvm_executable(${test_name}Tests ${ARGN})
Oscar Fuentesb1f93802010-10-28 14:38:35 +000014 add_dependencies(UnitTests ${test_name}Tests)
Michael J. Spencer10d274d2010-09-24 09:01:13 +000015endfunction()
16
Oscar Fuentesb1f93802010-10-28 14:38:35 +000017add_custom_target(UnitTests)
18
Michael J. Spencer10d274d2010-09-24 09:01:13 +000019include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include)
Michael J. Spencer58efb6d2010-10-19 18:04:19 +000020add_definitions(-DGTEST_HAS_RTTI=0)
Michael J. Spencer98847782010-11-24 19:20:05 +000021if (NOT LLVM_ENABLE_THREADS)
22 add_definitions(-DGTEST_HAS_PTHREAD=0)
23endif()
Michael J. Spencer10d274d2010-09-24 09:01:13 +000024
25set(LLVM_LINK_COMPONENTS
26 jit
27 interpreter
28 nativecodegen
29 BitWriter
30 BitReader
31 AsmParser
32 Core
Michael J. Spencer10d274d2010-09-24 09:01:13 +000033 Support
34 )
35
36set(LLVM_USED_LIBS
37 gtest
38 gtest_main
Michael J. Spencer98847782010-11-24 19:20:05 +000039 LLVMSupport # gtest needs it for raw_ostream.
Michael J. Spencer10d274d2010-09-24 09:01:13 +000040 )
41
42add_llvm_unittest(ADT
43 ADT/APFloatTest.cpp
44 ADT/APIntTest.cpp
45 ADT/BitVectorTest.cpp
46 ADT/DAGDeltaAlgorithmTest.cpp
47 ADT/DeltaAlgorithmTest.cpp
48 ADT/DenseMapTest.cpp
49 ADT/DenseSetTest.cpp
Dale Johannesen87a98b52010-11-19 23:23:22 +000050 ADT/FoldingSet.cpp
Michael J. Spencer10d274d2010-09-24 09:01:13 +000051 ADT/ilistTest.cpp
52 ADT/ImmutableSetTest.cpp
Jakob Stoklund Olesen345945e2010-11-19 04:47:19 +000053 ADT/IntervalMapTest.cpp
Michael J. Spencer10d274d2010-09-24 09:01:13 +000054 ADT/SmallBitVectorTest.cpp
55 ADT/SmallStringTest.cpp
56 ADT/SmallVectorTest.cpp
57 ADT/SparseBitVectorTest.cpp
58 ADT/StringMapTest.cpp
59 ADT/StringRefTest.cpp
60 ADT/TripleTest.cpp
61 ADT/TwineTest.cpp
Douglas Gregorcc277152010-09-27 16:40:43 +000062 )
Michael J. Spencer10d274d2010-09-24 09:01:13 +000063
64add_llvm_unittest(Analysis
65 Analysis/ScalarEvolutionTest.cpp
66 )
67
68add_llvm_unittest(ExecutionEngine
69 ExecutionEngine/ExecutionEngineTest.cpp
70 )
71
NAKAMURA Takumi1818edb2010-11-19 03:19:42 +000072set(JITTestsSources
Michael J. Spencer10d274d2010-09-24 09:01:13 +000073 ExecutionEngine/JIT/JITEventListenerTest.cpp
74 ExecutionEngine/JIT/JITMemoryManagerTest.cpp
75 ExecutionEngine/JIT/JITTest.cpp
76 ExecutionEngine/JIT/MultiJITTest.cpp
77 )
78
NAKAMURA Takumi1818edb2010-11-19 03:19:42 +000079if(MSVC)
80 list(APPEND JITTestsSources ExecutionEngine/JIT/JITTests.def)
81endif()
82
NAKAMURA Takumi7291ebc2010-12-07 07:41:23 +000083add_llvm_unittest(ExecutionEngine/JIT ${JITTestsSources})
NAKAMURA Takumi1818edb2010-11-19 03:19:42 +000084
NAKAMURA Takumi98fa0152010-11-26 09:32:02 +000085if(MINGW)
86 set_property(TARGET JITTests PROPERTY LINK_FLAGS -Wl,--export-all-symbols)
87endif()
88
NAKAMURA Takumi7291ebc2010-12-07 07:41:23 +000089add_llvm_unittest(Transforms/Utils
Michael J. Spencer88278892010-10-11 21:22:34 +000090 Transforms/Utils/Cloning.cpp
91 )
92
NAKAMURA Takumi7a953ba2010-11-19 03:19:32 +000093set(VMCoreSources
Michael J. Spencer88278892010-10-11 21:22:34 +000094 VMCore/ConstantsTest.cpp
95 VMCore/DerivedTypesTest.cpp
96 VMCore/InstructionsTest.cpp
97 VMCore/MetadataTest.cpp
98 VMCore/PassManagerTest.cpp
NAKAMURA Takumidddfdc82010-11-14 12:37:51 +000099 VMCore/ValueMapTest.cpp
Michael J. Spencer88278892010-10-11 21:22:34 +0000100 VMCore/VerifierTest.cpp
101 )
102
NAKAMURA Takumi7a953ba2010-11-19 03:19:32 +0000103# MSVC9 and 8 cannot compile ValueMapTest.cpp due to their bug.
104# See issue#331418 in Visual Studio.
105if(MSVC AND MSVC_VERSION LESS 1600)
106 list(REMOVE_ITEM VMCoreSources VMCore/ValueMapTest.cpp)
107endif()
108
109add_llvm_unittest(VMCore ${VMCoreSources})
110
Michael J. Spencer88278892010-10-11 21:22:34 +0000111set(LLVM_LINK_COMPONENTS
Michael J. Spencer88278892010-10-11 21:22:34 +0000112 Support
113 Core
114 )
115
Michael J. Spencer10d274d2010-09-24 09:01:13 +0000116add_llvm_unittest(Support
117 Support/AllocatorTest.cpp
118 Support/Casting.cpp
119 Support/CommandLineTest.cpp
120 Support/ConstantRangeTest.cpp
Michael J. Spencerb550b662010-10-21 20:28:21 +0000121 Support/EndianTest.cpp
Michael J. Spencer10d274d2010-09-24 09:01:13 +0000122 Support/LeakDetectorTest.cpp
123 Support/MathExtrasTest.cpp
Michael J. Spencer3ef91c52010-11-29 22:29:04 +0000124 Support/Path.cpp
Michael J. Spencer10d274d2010-09-24 09:01:13 +0000125 Support/raw_ostream_test.cpp
126 Support/RegexTest.cpp
Michael J. Spencerded95b72010-10-11 21:56:16 +0000127 Support/SwapByteOrderTest.cpp
Michael J. Spencer3ef91c52010-11-29 22:29:04 +0000128 Support/TimeValue.cpp
Michael J. Spencer10d274d2010-09-24 09:01:13 +0000129 Support/TypeBuilderTest.cpp
130 Support/ValueHandleTest.cpp
131 )