]> granicus.if.org Git - clang/commitdiff
Use PARSE_ARGUMENTS to clean up add_clang_unittest's calling convention.
authorJeffrey Yasskin <jyasskin@google.com>
Sat, 19 Feb 2011 18:06:01 +0000 (18:06 +0000)
committerJeffrey Yasskin <jyasskin@google.com>
Sat, 19 Feb 2011 18:06:01 +0000 (18:06 +0000)
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

unittests/CMakeLists.txt

index 05076013ef1b8398f7907b860f6375c1deae85e7..d762aaf7f49bdc4ce864dff087b05a5262ce8adf 100644 (file)
@@ -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
  )