Index: llvm/trunk/CMakeLists.txt =================================================================== --- llvm/trunk/CMakeLists.txt +++ llvm/trunk/CMakeLists.txt @@ -641,6 +641,11 @@ 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) Index: llvm/trunk/cmake/modules/AddLLVM.cmake =================================================================== --- llvm/trunk/cmake/modules/AddLLVM.cmake +++ llvm/trunk/cmake/modules/AddLLVM.cmake @@ -786,3 +786,26 @@ 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()