-function(add_llvm_unittest test_name)
+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_name}/${CMAKE_BUILD_TYPE})
+ ${LLVM_BINARY_DIR}/unittests/${test_dirname}/${CMAKE_BUILD_TYPE})
else()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
- ${LLVM_BINARY_DIR}/unittests/${test_name})
+ ${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)
+ set_target_properties(${test_name}Tests PROPERTIES FOLDER "Tests")
endfunction()
add_custom_target(UnitTests)
+set_target_properties(UnitTests PROPERTIES FOLDER "Tests")
include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include)
add_definitions(-DGTEST_HAS_RTTI=0)
+if( LLVM_COMPILER_IS_GCC_COMPATIBLE )
+ 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
ADT/DenseMapTest.cpp
ADT/DenseSetTest.cpp
ADT/FoldingSet.cpp
+ ADT/HashingTest.cpp
ADT/ilistTest.cpp
ADT/ImmutableSetTest.cpp
+ ADT/IntEqClassesTest.cpp
ADT/IntervalMapTest.cpp
+ ADT/IntrusiveRefCntPtrTest.cpp
+ ADT/PackedVectorTest.cpp
ADT/SmallBitVectorTest.cpp
ADT/SmallStringTest.cpp
ADT/SmallVectorTest.cpp
ADT/SparseBitVectorTest.cpp
+ ADT/SparseSetTest.cpp
ADT/StringMapTest.cpp
ADT/StringRefTest.cpp
ADT/TripleTest.cpp
ADT/TwineTest.cpp
+ ADT/VariadicFunctionTest.cpp
)
add_llvm_unittest(Analysis
ExecutionEngine/ExecutionEngineTest.cpp
)
+if( LLVM_USE_INTEL_JITEVENTS )
+ include_directories( ${LLVM_INTEL_JITEVENTS_INCDIR} )
+ link_directories( ${LLVM_INTEL_JITEVENTS_LIBDIR} )
+ set(ProfileTestSources
+ ExecutionEngine/JIT/IntelJITEventListenerTest.cpp
+ )
+ set(LLVM_LINK_COMPONENTS
+ ${LLVM_LINK_COMPONENTS}
+ IntelJITEvents
+ )
+endif( LLVM_USE_INTEL_JITEVENTS )
+
+if( LLVM_USE_OPROFILE )
+ set(ProfileTestSources
+ ${ProfileTestSources}
+ ExecutionEngine/JIT/OProfileJITEventListenerTest.cpp
+ )
+ set(LLVM_LINK_COMPONENTS
+ ${LLVM_LINK_COMPONENTS}
+ OProfileJIT
+ )
+endif( LLVM_USE_OPROFILE )
+
set(JITTestsSources
ExecutionEngine/JIT/JITEventListenerTest.cpp
ExecutionEngine/JIT/JITMemoryManagerTest.cpp
ExecutionEngine/JIT/JITTest.cpp
ExecutionEngine/JIT/MultiJITTest.cpp
+ ${ProfileTestSources}
)
if(MSVC)
list(APPEND JITTestsSources ExecutionEngine/JIT/JITTests.def)
endif()
-add_llvm_unittest(JIT ${JITTestsSources})
+add_llvm_unittest(ExecutionEngine/JIT ${JITTestsSources})
-if(MINGW)
+if(MINGW OR CYGWIN)
set_property(TARGET JITTests PROPERTY LINK_FLAGS -Wl,--export-all-symbols)
endif()
-add_llvm_unittest(Transforms
+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
+ VMCore/DominatorTreeTest.cpp
)
# MSVC9 and 8 cannot compile ValueMapTest.cpp due to their bug.
add_llvm_unittest(VMCore ${VMCoreSources})
+add_llvm_unittest(Bitcode
+ Bitcode/BitReaderTest.cpp
+ )
+
set(LLVM_LINK_COMPONENTS
Support
Core
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
- )
-
-set(LLVM_LINK_COMPONENTS
- Support
- )
-
-add_llvm_unittest(System
- System/Path.cpp
- System/TimeValue.cpp
+ Support/YAMLParserTest.cpp
)