summaryrefslogtreecommitdiffstats
path: root/unittests
diff options
context:
space:
mode:
authorJeffrey Yasskin <jyasskin@google.com>2011-02-19 18:06:01 +0000
committerJeffrey Yasskin <jyasskin@google.com>2011-02-19 18:06:01 +0000
commitf91ae524c01488ef2e525e5d73fa61424948e6c6 (patch)
tree683931bcfb2532cf4f1d01cb894f6aef72819863 /unittests
parent8899ab01d43ca7359cd852e58c5c3182cd0979c5 (diff)
Use PARSE_ARGUMENTS to clean up add_clang_unittest's calling convention.
It would be nice to propagate this into the other functions to replace LLVM_LINK_COMPONENTS and friends, but I don't plan to do that. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126032 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests')
-rw-r--r--unittests/CMakeLists.txt30
1 files changed, 20 insertions, 10 deletions
diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt
index 05076013ef..d762aaf7f4 100644
--- a/unittests/CMakeLists.txt
+++ b/unittests/CMakeLists.txt
@@ -1,8 +1,20 @@
-function(add_clang_unittest test_dirname link_components used_libs)
- separate_arguments(link_components)
- set(LLVM_LINK_COMPONENTS ${link_components})
- separate_arguments(used_libs)
- set(LLVM_USED_LIBS ${used_libs})
+include(LLVMParseArguments)
+
+# add_clang_unittest(test_dirname file1.cpp file2.cpp ...
+# [USED_LIBS lib1 lib2]
+# [LINK_COMPONENTS component1 component2])
+#
+# Will compile the list of files together and link against the clang
+# libraries in the USED_LIBS list and the llvm-config components in
+# the LINK_COMPONENTS list. Produces a binary named
+# 'basename(test_dirname)Tests'.
+function(add_clang_unittest)
+ PARSE_ARGUMENTS(CLANG_UNITTEST "USED_LIBS;LINK_COMPONENTS" "" ${ARGN})
+ set(LLVM_LINK_COMPONENTS ${CLANG_UNITTEST_LINK_COMPONENTS})
+ set(LLVM_USED_LIBS ${CLANG_UNITTEST_USED_LIBS})
+ list(GET CLANG_UNITTEST_DEFAULT_ARGS 0 test_dirname)
+ list(REMOVE_AT CLANG_UNITTEST_DEFAULT_ARGS 0)
+
string(REGEX MATCH "([^/]+)$" test_name ${test_dirname})
if (CMAKE_BUILD_TYPE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
@@ -14,7 +26,7 @@ function(add_clang_unittest test_dirname link_components used_libs)
if( NOT LLVM_BUILD_TESTS )
set(EXCLUDE_FROM_ALL ON)
endif()
- add_clang_executable(${test_name}Tests ${ARGN})
+ add_clang_executable(${test_name}Tests ${CLANG_UNITTEST_DEFAULT_ARGS})
add_dependencies(ClangUnitTests ${test_name}Tests)
endfunction()
@@ -37,13 +49,11 @@ if(SUPPORTS_NO_VARIADIC_MACROS_FLAG)
endif()
add_clang_unittest(Basic
- ""
- "gtest gtest_main clangBasic"
Basic/FileManagerTest.cpp
+ USED_LIBS gtest gtest_main clangBasic
)
add_clang_unittest(Frontend
- ""
- "gtest gtest_main clangFrontend"
Frontend/FrontendActionTest.cpp
+ USED_LIBS gtest gtest_main clangFrontend
)