set(POLLY_TEST_DIRECTORIES "AffineIterator" "ScopInfo" "ScheduleOptimizer" "CodeGen" "OpenMP" "polybench" "vect") set(POLLY_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..") set(POLLY_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/..") set(LLVM_SHLIBEXT "${CMAKE_SHARED_MODULE_SUFFIX}") if (NOT DEFINED LLVM_MAIN_SRC_DIR) # We are building polly out of tree, adjust the settings. # FIXME: FileCheck is not available in llvm install directory at the moment. set(LLVM_LIT ${LLVM_INSTALL_ROOT}/bin/llvm-lit) set(POLLY_TEST_DEPS LLVMPolly) set(LLVM_BINARY_DIR "${LLVM_INSTALL_ROOT}") set(LLVM_TOOLS_DIR "${LLVM_INSTALL_ROOT}/bin") set(LLVM_LIBS_DIR "${LLVM_INSTALL_ROOT}/lib") set(POLLY_LIB_DIR "${POLLY_BINARY_DIR}/lib") include(FindPythonInterp) if(PYTHONINTERP_FOUND) option(POLLY_TEST_DISABLE_BAR "Run Polly tests with --no-progress-bar" OFF) set(POLLY_TEST_EXTRA_ARGS) if (MSVC OR XCODE OR POLLY_TEST_DISABLE_BAR) set(POLLY_TEST_EXTRA_ARGS "--no-progress-bar") endif() option(POLLY_TEST_USE_VG "Run Polly tests under Valgrind" OFF) if(POLLY_TEST_USE_VG) set(POLLY_TEST_EXTRA_ARGS ${POLLY_TEST_EXTRA_ARGS} "--vg") endif () foreach(testdir ${POLLY_TEST_DIRECTORIES}) add_custom_target(polly-test-${testdir} COMMAND ${LLVM_LIT} --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg --param build_config=${CMAKE_CFG_INTDIR} -sv ${POLLY_TEST_EXTRA_ARGS} ${CMAKE_CURRENT_BINARY_DIR}/${testdir} DEPENDS ${POLLY_TEST_DEPS} COMMENT "Running Polly regression tests in ${testdir}") endforeach() add_custom_target(check-polly COMMAND ${LLVM_LIT} --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg --param build_config=${CMAKE_CFG_INTDIR} -sv ${POLLY_TEST_EXTRA_ARGS} ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${POLLY_TEST_DEPS} COMMENT "Running Polly regression tests") endif() else (NOT DEFINED LLVM_MAIN_SRC_DIR) set(LLVM_LIT ${LLVM_TOOLS_BINARY_DIR}/llvm-lit) set(POLLY_TEST_DEPS llvm-config opt LLVMPolly FileCheck not) set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}") set(LLVM_TOOLS_DIR "${LLVM_TOOLS_BINARY_DIR}") set(LLVM_LIBS_DIR "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}") set(POLLY_LIB_DIR "${LLVM_LIBS_DIR}") add_lit_testsuite(check-polly "Running polly regression tests" ${CMAKE_CURRENT_BINARY_DIR} PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg DEPENDS ${POLLY_TEST_DEPS} ) set_target_properties(check-polly PROPERTIES FOLDER "polly tests") endif (NOT DEFINED LLVM_MAIN_SRC_DIR) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg) # Add a legacy target spelling: polly-test add_custom_target(polly-test) add_dependencies(polly-test check-polly)