diff options
Diffstat (limited to 'unittests/CMakeLists.txt')
-rw-r--r-- | unittests/CMakeLists.txt | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt new file mode 100644 index 0000000..5f09fa2 --- /dev/null +++ b/unittests/CMakeLists.txt @@ -0,0 +1,142 @@ +function(add_llvm_unittest test_dirname) + string(REGEX MATCH "([^/]+)$" test_name ${test_dirname}) + if (CMAKE_BUILD_TYPE) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY + ${LLVM_BINARY_DIR}/unittests/${test_dirname}/${CMAKE_BUILD_TYPE}) + else() + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY + ${LLVM_BINARY_DIR}/unittests/${test_dirname}) + endif() + if( NOT LLVM_BUILD_TESTS ) + set(EXCLUDE_FROM_ALL ON) + endif() + add_llvm_executable(${test_name}Tests ${ARGN}) + add_dependencies(UnitTests ${test_name}Tests) +endfunction() + +add_custom_target(UnitTests) + +include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include) +add_definitions(-DGTEST_HAS_RTTI=0) +if( CMAKE_COMPILER_IS_GNUCXX ) + llvm_replace_compiler_option(CMAKE_CXX_FLAGS "-frtti" "-fno-rtti") +elseif( MSVC ) + llvm_replace_compiler_option(CMAKE_CXX_FLAGS "/GR" "/GR-") +endif() + +if (NOT LLVM_ENABLE_THREADS) + add_definitions(-DGTEST_HAS_PTHREAD=0) +endif() + +if(SUPPORTS_NO_VARIADIC_MACROS_FLAG) + add_definitions("-Wno-variadic-macros") +endif() + +set(LLVM_LINK_COMPONENTS + jit + interpreter + nativecodegen + BitWriter + BitReader + AsmParser + Core + Support + ) + +set(LLVM_USED_LIBS + gtest + gtest_main + LLVMSupport # gtest needs it for raw_ostream. + ) + +add_llvm_unittest(ADT + ADT/APFloatTest.cpp + ADT/APIntTest.cpp + ADT/BitVectorTest.cpp + ADT/DAGDeltaAlgorithmTest.cpp + ADT/DeltaAlgorithmTest.cpp + ADT/DenseMapTest.cpp + ADT/DenseSetTest.cpp + ADT/FoldingSet.cpp + ADT/ilistTest.cpp + ADT/ImmutableSetTest.cpp + ADT/IntEqClassesTest.cpp + ADT/IntervalMapTest.cpp + ADT/SmallBitVectorTest.cpp + ADT/SmallStringTest.cpp + ADT/SmallVectorTest.cpp + ADT/SparseBitVectorTest.cpp + ADT/StringMapTest.cpp + ADT/StringRefTest.cpp + ADT/TripleTest.cpp + ADT/TwineTest.cpp + ) + +add_llvm_unittest(Analysis + Analysis/ScalarEvolutionTest.cpp + ) + +add_llvm_unittest(ExecutionEngine + ExecutionEngine/ExecutionEngineTest.cpp + ) + +set(JITTestsSources + ExecutionEngine/JIT/JITEventListenerTest.cpp + ExecutionEngine/JIT/JITMemoryManagerTest.cpp + ExecutionEngine/JIT/JITTest.cpp + ExecutionEngine/JIT/MultiJITTest.cpp + ) + +if(MSVC) + list(APPEND JITTestsSources ExecutionEngine/JIT/JITTests.def) +endif() + +add_llvm_unittest(ExecutionEngine/JIT ${JITTestsSources}) + +if(MINGW) + set_property(TARGET JITTests PROPERTY LINK_FLAGS -Wl,--export-all-symbols) +endif() + +add_llvm_unittest(Transforms/Utils + Transforms/Utils/Cloning.cpp + ) + +set(VMCoreSources + VMCore/ConstantsTest.cpp + VMCore/DerivedTypesTest.cpp + VMCore/InstructionsTest.cpp + VMCore/MetadataTest.cpp + VMCore/PassManagerTest.cpp + VMCore/ValueMapTest.cpp + VMCore/VerifierTest.cpp + ) + +# MSVC9 and 8 cannot compile ValueMapTest.cpp due to their bug. +# See issue#331418 in Visual Studio. +if(MSVC AND MSVC_VERSION LESS 1600) + list(REMOVE_ITEM VMCoreSources VMCore/ValueMapTest.cpp) +endif() + +add_llvm_unittest(VMCore ${VMCoreSources}) + +set(LLVM_LINK_COMPONENTS + Support + Core + ) + +add_llvm_unittest(Support + Support/AllocatorTest.cpp + Support/Casting.cpp + Support/CommandLineTest.cpp + Support/ConstantRangeTest.cpp + Support/EndianTest.cpp + Support/LeakDetectorTest.cpp + Support/MathExtrasTest.cpp + Support/Path.cpp + Support/raw_ostream_test.cpp + Support/RegexTest.cpp + Support/SwapByteOrderTest.cpp + Support/TimeValue.cpp + Support/TypeBuilderTest.cpp + Support/ValueHandleTest.cpp + ) |