summaryrefslogtreecommitdiff
path: root/runtimes/CMakeLists.txt
diff options
context:
space:
mode:
authorChris Bieneman <beanz@apple.com>2016-08-25 17:18:41 +0000
committerChris Bieneman <beanz@apple.com>2016-08-25 17:18:41 +0000
commit774da3752bbc583bf1daa6fcb67480c1b4c7513f (patch)
tree66166025873e1f3f8ac4e0a08bc5a9a9ad7c7a8e /runtimes/CMakeLists.txt
parent59f7ccfe1010cf4bd92b63e6c08a1538bbc848b0 (diff)
Hooking up a check-all target for the runtimes projects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279756 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'runtimes/CMakeLists.txt')
-rw-r--r--runtimes/CMakeLists.txt44
1 files changed, 42 insertions, 2 deletions
diff --git a/runtimes/CMakeLists.txt b/runtimes/CMakeLists.txt
index bbdebff2e5e..2d84f47260e 100644
--- a/runtimes/CMakeLists.txt
+++ b/runtimes/CMakeLists.txt
@@ -37,7 +37,7 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
# Setting these variables will allow the sub-build to put their outputs into
# the library and bin directories of the top-level build.
set(LLVM_LIBRARY_OUTPUT_INTDIR ${LLVM_LIBRARY_DIR})
- set(LLVM_RUNTIME_OUTPUT_INTDIR ${LLVM_BINARY_DIR})
+ set(LLVM_RUNTIME_OUTPUT_INTDIR ${LLVM_TOOLS_BINARY_DIR})
foreach(entry ${runtimes})
get_filename_component(projName ${entry} NAME)
@@ -52,9 +52,37 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
# will be included under here.
set(HAVE_${canon_name} On)
+ # Between each sub-project we want to cache and clear the LIT properties
+ set_property(GLOBAL PROPERTY LLVM_LIT_TESTSUITES)
+ set_property(GLOBAL PROPERTY LLVM_LIT_PARAMS)
+ set_property(GLOBAL PROPERTY LLVM_LIT_DEPENDS)
+ set_property(GLOBAL PROPERTY LLVM_LIT_EXTRA_ARGS)
+
add_subdirectory(${projName})
+
+ get_property(LLVM_LIT_TESTSUITES GLOBAL PROPERTY LLVM_LIT_TESTSUITES)
+ get_property(LLVM_LIT_PARAMS GLOBAL PROPERTY LLVM_LIT_PARAMS)
+ get_property(LLVM_LIT_DEPENDS GLOBAL PROPERTY LLVM_LIT_DEPENDS)
+ get_property(LLVM_LIT_EXTRA_ARGS GLOBAL PROPERTY LLVM_LIT_EXTRA_ARGS)
+
+ list(APPEND RUNTIMES_LIT_TESTSUITES ${LLVM_LIT_TESTSUITES})
+ list(APPEND RUNTIMES_LIT_PARAMS ${LLVM_LIT_PARAMS})
+ list(APPEND RUNTIMES_LIT_DEPENDS ${LLVM_LIT_DEPENDS})
+ list(APPEND RUNTIMES_LIT_EXTRA_ARGS ${LLVM_LIT_EXTRA_ARGS})
endforeach()
+ # Add a global check rule now that all subdirectories have been traversed
+ # and we know the total set of lit testsuites.
+
+ add_lit_target(check-runtimes
+ "Running all regression tests"
+ ${RUNTIMES_LIT_TESTSUITES}
+ PARAMS ${RUNTIMES_LIT_PARAMS}
+ DEPENDS ${RUNTIMES_LIT_DEPENDS}
+ ARGS ${RUNTIMES_LIT_EXTRA_ARGS}
+ )
+ add_custom_target(test-depends-runtimes DEPENDS ${RUNTIMES_LIT_DEPENDS})
+
else() # if this is included from LLVM's CMake
include(LLVMExternalProjectUtils)
@@ -86,6 +114,14 @@ else() # if this is included from LLVM's CMake
endforeach()
if(runtimes)
+
+ foreach(runtime_name ${runtime_names})
+ list(APPEND extra_targets
+ ${runtime_name}
+ install-${runtime_name}
+ check-${runtime_name})
+ endforeach()
+
# Create a runtimes target that uses this file as its top-level CMake file.
# The runtimes target is a configuration of all the runtime libraries
# together in a single CMake invocaiton.
@@ -95,7 +131,11 @@ else() # if this is included from LLVM's CMake
# Builtins were built separately above
CMAKE_ARGS -DCOMPILER_RT_BUILD_BUILTINS=Off
PASSTHROUGH_PREFIXES ${prefixes}
- EXTRA_TARGETS ${runtime_names}
+ EXTRA_TARGETS ${extra_targets}
+ test-depends-runtimes
+ check-runtimes
USE_TOOLCHAIN)
+ set_property(GLOBAL APPEND PROPERTY LLVM_LIT_DEPENDS test-depends-runtimes)
+
endif()
endif()