Skip to content
Snippets Groups Projects
Commit f91ae524 authored by Jeffrey Yasskin's avatar Jeffrey Yasskin
Browse files

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
parent 8899ab01
No related branches found
No related tags found
No related merge requests found
function(add_clang_unittest test_dirname link_components used_libs) include(LLVMParseArguments)
separate_arguments(link_components)
set(LLVM_LINK_COMPONENTS ${link_components}) # add_clang_unittest(test_dirname file1.cpp file2.cpp ...
separate_arguments(used_libs) # [USED_LIBS lib1 lib2]
set(LLVM_USED_LIBS ${used_libs}) # [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}) string(REGEX MATCH "([^/]+)$" test_name ${test_dirname})
if (CMAKE_BUILD_TYPE) if (CMAKE_BUILD_TYPE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
...@@ -14,7 +26,7 @@ function(add_clang_unittest test_dirname link_components used_libs) ...@@ -14,7 +26,7 @@ function(add_clang_unittest test_dirname link_components used_libs)
if( NOT LLVM_BUILD_TESTS ) if( NOT LLVM_BUILD_TESTS )
set(EXCLUDE_FROM_ALL ON) set(EXCLUDE_FROM_ALL ON)
endif() endif()
add_clang_executable(${test_name}Tests ${ARGN}) add_clang_executable(${test_name}Tests ${CLANG_UNITTEST_DEFAULT_ARGS})
add_dependencies(ClangUnitTests ${test_name}Tests) add_dependencies(ClangUnitTests ${test_name}Tests)
endfunction() endfunction()
...@@ -37,13 +49,11 @@ if(SUPPORTS_NO_VARIADIC_MACROS_FLAG) ...@@ -37,13 +49,11 @@ if(SUPPORTS_NO_VARIADIC_MACROS_FLAG)
endif() endif()
add_clang_unittest(Basic add_clang_unittest(Basic
""
"gtest gtest_main clangBasic"
Basic/FileManagerTest.cpp Basic/FileManagerTest.cpp
USED_LIBS gtest gtest_main clangBasic
) )
add_clang_unittest(Frontend add_clang_unittest(Frontend
""
"gtest gtest_main clangFrontend"
Frontend/FrontendActionTest.cpp Frontend/FrontendActionTest.cpp
USED_LIBS gtest gtest_main clangFrontend
) )
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment