aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt7
-rw-r--r--test/CMakeLists.txt10
-rw-r--r--unittests/CMakeLists.txt95
-rw-r--r--utils/unittest/CMakeLists.txt34
-rw-r--r--utils/unittest/googletest/include/gtest/internal/gtest-port.h3
5 files changed, 146 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index dba2929..7959f65 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -305,7 +305,6 @@ add_subdirectory(lib/Analysis/IPA)
add_subdirectory(lib/MC)
add_subdirectory(lib/MC/MCParser)
add_subdirectory(lib/MC/MCDisassembler)
-add_subdirectory(test)
add_subdirectory(utils/FileCheck)
add_subdirectory(utils/count)
@@ -370,6 +369,12 @@ add_subdirectory(tools)
option(LLVM_BUILD_EXAMPLES "Build LLVM example programs." OFF)
add_subdirectory(examples)
+option(LLVM_BUILD_TESTS "Build LLVM unit tests." OFF)
+add_subdirectory(test)
+add_subdirectory(utils/unittest)
+add_subdirectory(unittests)
+
+
add_subdirectory(cmake/modules)
install(DIRECTORY include/
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index eab2992..3828057 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -52,7 +52,15 @@ if(PYTHONINTERP_FOUND)
set(LLVM_TOOLS_DIR "${LLVM_TOOLS_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
set(LLVMGCCDIR "")
set(PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE})
- set(LLVM_BUILD_MODE ${CMAKE_CFG_INTDIR})
+ if (CMAKE_CONFIGURATION_TYPES)
+ # FIXME: We have no idea. It could be any of them... So just output all of
+ # them.
+ set(LLVM_BUILD_MODE "${CMAKE_CONFIGURATION_TYPES}")
+ elseif (CMAKE_BUILD_TYPE)
+ set(LLVM_BUILD_MODE "${CMAKE_BUILD_TYPE}")
+ else()
+ set(LLVM_BUILD_MODE "None")
+ endif()
set(ENABLE_SHARED ${LLVM_SHARED_LIBS_ENABLED})
set(SHLIBPATH_VAR ${SHLIBPATH_VAR})
diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt
new file mode 100644
index 0000000..595ec21
--- /dev/null
+++ b/unittests/CMakeLists.txt
@@ -0,0 +1,95 @@
+function(add_llvm_unittest test_name)
+ if (CMAKE_BUILD_TYPE)
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
+ ${LLVM_BINARY_DIR}/unittests/${test_name}/${CMAKE_BUILD_TYPE})
+ else()
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
+ ${LLVM_BINARY_DIR}/unittests/${test_name})
+ endif()
+ if( NOT LLVM_BUILD_TESTS )
+ set(EXCLUDE_FROM_ALL ON)
+ endif()
+ add_llvm_executable(${test_name}Tests ${ARGN})
+endfunction()
+
+include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include)
+
+set(LLVM_LINK_COMPONENTS
+ jit
+ interpreter
+ nativecodegen
+ BitWriter
+ BitReader
+ AsmParser
+ Core
+ System
+ Support
+ )
+
+set(LLVM_USED_LIBS
+ gtest
+ gtest_main
+ )
+
+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/ilistTest.cpp
+ ADT/ImmutableSetTest.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
+ ADT/ValueMapTest.cpp
+ )
+
+add_llvm_unittest(Analysis
+ Analysis/ScalarEvolutionTest.cpp
+ )
+
+add_llvm_unittest(ExecutionEngine
+ ExecutionEngine/ExecutionEngineTest.cpp
+ )
+
+add_llvm_unittest(JIT
+ ExecutionEngine/JIT/JITEventListenerTest.cpp
+ ExecutionEngine/JIT/JITMemoryManagerTest.cpp
+ ExecutionEngine/JIT/JITTest.cpp
+ ExecutionEngine/JIT/MultiJITTest.cpp
+ )
+
+add_llvm_unittest(Support
+ Support/AllocatorTest.cpp
+ Support/Casting.cpp
+ Support/CommandLineTest.cpp
+ Support/ConstantRangeTest.cpp
+ Support/LeakDetectorTest.cpp
+ Support/MathExtrasTest.cpp
+ Support/raw_ostream_test.cpp
+ Support/RegexTest.cpp
+ Support/System.cpp
+ Support/TypeBuilderTest.cpp
+ Support/ValueHandleTest.cpp
+ )
+
+add_llvm_unittest(Transforms
+ Transforms/Utils/Cloning.cpp
+ )
+
+add_llvm_unittest(VMCore
+ VMCore/ConstantsTest.cpp
+ VMCore/DerivedTypesTest.cpp
+ VMCore/InstructionsTest.cpp
+ VMCore/MetadataTest.cpp
+ VMCore/PassManagerTest.cpp
+ VMCore/VerifierTest.cpp
+ )
diff --git a/utils/unittest/CMakeLists.txt b/utils/unittest/CMakeLists.txt
new file mode 100644
index 0000000..7068546
--- /dev/null
+++ b/utils/unittest/CMakeLists.txt
@@ -0,0 +1,34 @@
+########################################################################
+# Experimental CMake build script for Google Test.
+#
+# Consider this a prototype. It will change drastically. For now,
+# this is only for people on the cutting edge.
+#
+# To run the tests for Google Test itself on Linux, use 'make test' or
+# ctest. You can select which tests to run using 'ctest -R regex'.
+# For more options, run 'ctest --help'.
+########################################################################
+#
+# Project-wide settings
+
+# Where gtest's .h files can be found.
+include_directories(
+ googletest/include
+ )
+
+if(WIN32)
+ add_definitions(-DGTEST_OS_WINDOWS=1)
+endif()
+
+add_llvm_library(gtest
+ googletest/gtest.cc
+ googletest/gtest-death-test.cc
+ googletest/gtest-filepath.cc
+ googletest/gtest-port.cc
+ googletest/gtest-test-part.cc
+ googletest/gtest-typed-test.cc
+ )
+
+add_llvm_library(gtest_main
+ UnitTestMain/TestMain.cpp
+ )
diff --git a/utils/unittest/googletest/include/gtest/internal/gtest-port.h b/utils/unittest/googletest/include/gtest/internal/gtest-port.h
index 9683271..3d076eb 100644
--- a/utils/unittest/googletest/include/gtest/internal/gtest-port.h
+++ b/utils/unittest/googletest/include/gtest/internal/gtest-port.h
@@ -403,7 +403,8 @@
// defining __GNUC__ and friends, but cannot compile GCC's tuple
// implementation. MSVC 2008 (9.0) provides TR1 tuple in a 323 MB
// Feature Pack download, which we cannot assume the user has.
-#if (defined(__GNUC__) && !defined(__CUDACC__) && (GTEST_GCC_VER_ >= 40000)) \
+#if (defined(__GNUC__) && !(defined(__CUDACC__) || defined(__clang__)) \
+ && (GTEST_GCC_VER_ >= 40000)) \
|| _MSC_VER >= 1600
#define GTEST_USE_OWN_TR1_TUPLE 0
#else