From 3bf045a9c685a0b0fa295bc15509516ba03f2bb0 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 18 Mar 2015 21:19:06 +0000 Subject: [PATCH] Generate targets for each lit suite. Summary: This change makes CMake scan for lit suites and generate a target for each lit test suite. The targets follow the format check--. For example: check-llvm-unit - Runs the LLVM unit tests check-llvm-codegen-arm - Runs the ARM codeine tests Note: These targets are not generated during multi-configuration generators (i.e. Xcode and Visual Studio) because target clutter impacts UI usability. Reviewers: chandlerc Subscribers: aemerson, llvm-commits Differential Revision: http://reviews.llvm.org/D8380 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232671 91177308-0d34-0410-b5e6-96231b3b80d8 --- CMakeLists.txt | 5 +++++ cmake/modules/AddLLVM.cmake | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index b91ba15f553..63c285b3420 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -641,6 +641,11 @@ if( LLVM_INCLUDE_TESTS ) DEPENDS ${LLVM_LIT_DEPENDS} ARGS ${LLVM_LIT_EXTRA_ARGS} ) + + add_lit_testsuites(LLVM ${CMAKE_SOURCE_DIR}/test + PARAMS ${LLVM_LIT_PARAMS} + DEPENDS ${LLVM_LIT_DEPENDS} + ARGS ${LLVM_LIT_EXTRA_ARGS}) endif() if (LLVM_INCLUDE_DOCS) diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake index 83897935e27..165b8c7cbe3 100644 --- a/cmake/modules/AddLLVM.cmake +++ b/cmake/modules/AddLLVM.cmake @@ -786,3 +786,26 @@ function(add_lit_testsuite target comment) ARGS ${ARG_ARGS} ) endfunction() + +function(add_lit_testsuites project directory) + if (NOT CMAKE_CONFIGURATION_TYPES) + parse_arguments(ARG "PARAMS;DEPENDS;ARGS" "" ${ARGN}) + file(GLOB_RECURSE litCfg ${directory}/lit*.cfg) + foreach(f ${litCfg}) + get_filename_component(dir ${f} DIRECTORY) + string(REPLACE ${directory} "" name_slash ${dir}) + if (name_slash) + string(REPLACE "/" "-" name_slash ${name_slash}) + string(REPLACE "\\" "-" name_dashes ${name_slash}) + string(TOLOWER "${project}${name_dashes}" name_var) + set(lit_args ${ARG_ARGS} ${dir}) + add_lit_target("check-${name_var}" "Running lit suite ${dir}" + ${dir} + PARAMS ${ARG_PARAMS} + DEPENDS ${ARG_DEPENDS} + ARGS ${lit_args} + ) + endif() + endforeach() + endif() +endfunction()