CMake: Build unittests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114725 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Michael J. Spencer 2010-09-24 09:01:13 +00:00
parent c8417d7165
commit ee6944f4ab
5 changed files with 146 additions and 3 deletions

View File

@ -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/

View File

@ -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})

95
unittests/CMakeLists.txt Normal file
View File

@ -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
)

View File

@ -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
)

View File

@ -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