summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2012-06-21 02:04:39 +0000
committerChandler Carruth <chandlerc@gmail.com>2012-06-21 02:04:39 +0000
commit88973313818229ac87616fd604c5309027ffefb1 (patch)
treeff647288c9ab4cb810f95b492223b6da678bec44
parent1313d9860d71280582a769cc6bd02790df5136d4 (diff)
downloadbcm5719-llvm-88973313818229ac87616fd604c5309027ffefb1.tar.gz
bcm5719-llvm-88973313818229ac87616fd604c5309027ffefb1.zip
Simplify the Clang unittest function in the CMake build, and make it
match the LLVM implemenation. This also simplifies the name management and splits the custom library management out from the unittest specific management. It finally drops the dependency on parsing cmake arguments. llvm-svn: 158894
-rw-r--r--clang/unittests/CMakeLists.txt62
1 files changed, 35 insertions, 27 deletions
diff --git a/clang/unittests/CMakeLists.txt b/clang/unittests/CMakeLists.txt
index ecd4ef69b4d..ecd36cdc916 100644
--- a/clang/unittests/CMakeLists.txt
+++ b/clang/unittests/CMakeLists.txt
@@ -1,16 +1,8 @@
-include(LLVMParseArguments)
-
-# add_clang_unittest(test_dirname file1.cpp file2.cpp ...
-# [USED_LIBS lib1 lib2])
+# add_clang_unittest(test_dirname file1.cpp file2.cpp)
#
# Will compile the list of files together and link against the clang
-# libraries in the USED_LIBS. Produces a binary named
-# 'basename(test_dirname)Tests'.
-function(add_clang_unittest)
- parse_arguments(CLANG_UNITTEST "USED_LIBS" "" ${ARGN})
- list(GET CLANG_UNITTEST_DEFAULT_ARGS 0 test_dirname)
- list(REMOVE_AT CLANG_UNITTEST_DEFAULT_ARGS 0)
-
+# Produces a binary named 'basename(test_dirname)'.
+function(add_clang_unittest test_dirname)
string(REGEX MATCH "([^/]+)$" test_name ${test_dirname})
if (CMAKE_BUILD_TYPE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
@@ -22,10 +14,16 @@ function(add_clang_unittest)
if( NOT LLVM_BUILD_TESTS )
set(EXCLUDE_FROM_ALL ON)
endif()
- add_clang_executable(${test_name}Tests ${CLANG_UNITTEST_DEFAULT_ARGS})
- target_link_libraries(${test_name}Tests ${CLANG_UNITTEST_USED_LIBS})
- add_dependencies(ClangUnitTests ${test_name}Tests)
- set_target_properties(${test_name}Tests PROPERTIES FOLDER "Clang tests")
+
+ add_clang_executable(${test_name} ${ARGN})
+ target_link_libraries(${test_name}
+ gtest
+ gtest_main
+ LLVMSupport # gtest needs it for raw_ostream.
+ )
+
+ add_dependencies(ClangUnitTests ${test_name})
+ set_target_properties(${test_name} PROPERTIES FOLDER "Clang tests")
endfunction()
add_custom_target(ClangUnitTests)
@@ -48,27 +46,37 @@ if(SUPPORTS_NO_VARIADIC_MACROS_FLAG)
add_definitions("-Wno-variadic-macros")
endif()
-add_clang_unittest(Basic
+add_clang_unittest(BasicTests
Basic/FileManagerTest.cpp
Basic/SourceManagerTest.cpp
- USED_LIBS gtest gtest_main clangLex
- )
+ )
+target_link_libraries(BasicTests
+ clangLex
+ )
-add_clang_unittest(Lex
+add_clang_unittest(LexTests
Lex/LexerTest.cpp
- USED_LIBS gtest gtest_main clangLex
- )
+ )
+target_link_libraries(LexTests
+ clangLex
+ )
-add_clang_unittest(Frontend
+add_clang_unittest(FrontendTests
Frontend/FrontendActionTest.cpp
- USED_LIBS gtest gtest_main clangFrontend
- )
+ )
+target_link_libraries(FrontendTests
+ clangFrontend
+ )
-add_clang_unittest(Tooling
+add_clang_unittest(ToolingTests
Tooling/CompilationDatabaseTest.cpp
Tooling/ToolingTest.cpp
Tooling/RecursiveASTVisitorTest.cpp
Tooling/RefactoringTest.cpp
Tooling/RewriterTest.cpp
- USED_LIBS gtest gtest_main clangAST clangTooling clangRewrite
- )
+ )
+target_link_libraries(ToolingTests
+ clangAST
+ clangTooling
+ clangRewrite
+ )
OpenPOWER on IntegriCloud