116 lines · plain
1set(LLVM_SHLIBEXT "${CMAKE_SHARED_MODULE_SUFFIX}")2 3add_custom_target(check-polly)4set_target_properties(check-polly PROPERTIES FOLDER "Polly/Meta")5 6if(NOT LLVM_MAIN_SRC_DIR)7 find_program(LLVM_OPT NAMES opt HINTS ${LLVM_TOOLS_BINARY_DIR})8 find_program(LLVM_FILECHECK NAMES FileCheck HINTS ${LLVM_TOOLS_BINARY_DIR})9 find_program(LLVM_NOT NAMES not HINTS ${LLVM_TOOLS_BINARY_DIR})10 if (NOT LLVM_OPT)11 message(WARNING "LLVM's opt program could not be found. Please set LLVM_OPT.")12 endif()13 if (NOT LLVM_FILECHECK)14 message(WARNING "LLVM's FileCheck program could not be found. "15 "Please set LLVM_FILECHECK. Please set LLVM_FILECHECK.")16 endif()17 if (NOT LLVM_NOT)18 message(WARNING "LLVM's not program could not be found. Please set LLVM_NOT.")19 endif()20 get_filename_component(EXTRA_PATHS ${LLVM_OPT} DIRECTORY)21 list(APPEND POLLY_TEST_EXTRA_PATHS "${EXTRA_PATHS}")22 get_filename_component(EXTRA_PATHS ${LLVM_FILECHECK} DIRECTORY)23 list(APPEND POLLY_TEST_EXTRA_PATHS "${EXTRA_PATHS}")24 get_filename_component(EXTRA_PATHS ${LLVM_NOT} DIRECTORY)25 list(APPEND POLLY_TEST_EXTRA_PATHS "${EXTRA_PATHS}")26 list(REMOVE_DUPLICATES POLLY_TEST_EXTRA_PATHS)27 message(STATUS "Extra paths: ${POLLY_TEST_EXTRA_PATHS}")28 if ("${POLLY_TEST_EXTRA_PATHS}" STREQUAL "${LLVM_TOOLS_BINARY_DIR}")29 set(POLLY_TEST_EXTRA_PATHS "")30 endif()31 set(POLLY_TEST_DEPS LLVMPolly)32else ()33 set(LLVM_OPT "${LLVM_TOOLS_BINARY_DIR}/opt")34 set(LLVM_FILECHECK "${LLVM_TOOLS_BINARY_DIR}/FileCheck")35 set(LLVM_NOT "${LLVM_TOOLS_BINARY_DIR}/not")36 set(POLLY_TEST_EXTRA_PATHS "")37 set(POLLY_TEST_DEPS llvm-config opt LLVMPolly FileCheck not count)38endif()39 40if (POLLY_BUNDLED_ISL)41 list(APPEND POLLY_TEST_DEPS polly-isl-test)42endif()43if (POLLY_GTEST_AVAIL)44 list(APPEND POLLY_TEST_DEPS PollyUnitTests)45endif ()46 47set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}")48set(LLVM_TOOLS_DIR "${LLVM_TOOLS_BINARY_DIR}")49set(LLVM_LIBS_DIR "${LLVM_LIBRARY_DIR}")50if (CMAKE_LIBRARY_OUTPUT_DIRECTORY)51 set(POLLY_LIB_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})52else()53 set(POLLY_LIB_DIR "${POLLY_BINARY_DIR}/lib")54endif()55 56configure_lit_site_cfg(57 ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in58 ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)59 60# Run regression and unit tests61add_lit_testsuite(check-polly-tests "Running polly regression tests"62 ${CMAKE_CURRENT_BINARY_DIR}63 PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg64 polly_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg65 DEPENDS ${POLLY_TEST_DEPS}66 )67add_dependencies(check-polly check-polly-tests)68 69configure_lit_site_cfg(70 ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in71 ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg72 )73 74if (POLLY_GTEST_AVAIL)75 # Run only unit tests76 add_lit_testsuite(check-polly-unittests "Running polly unit tests only"77 ${CMAKE_CURRENT_BINARY_DIR}/Unit78 PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg79 EXCLUDE_FROM_CHECK_ALL80 DEPENDS PollyUnitTests81 )82endif ()83 84configure_file(85 ${CMAKE_CURRENT_SOURCE_DIR}/UnitIsl/lit.site.cfg.in86 ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg)87 88if (POLLY_BUNDLED_ISL)89 add_lit_testsuite(check-polly-isl "Running isl unit tests only"90 ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl91 PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg92 EXCLUDE_FROM_CHECK_ALL93 DEPENDS polly-isl-test94 )95endif (POLLY_BUNDLED_ISL)96 97# Run polly-check-format as part of polly-check only if we are compiling with98# clang, so clang-format is available.99# if (TARGET clang-format) would be preferable, but this target is only added100# after Polly, i.e. there is no such target yet at this point. The CMake cache101# entry LLVM_TOOL_CLANG_BUILD will only be defined after clang has been102# configured at least once, i.e. format will be checked only after a rerun of103# CMake's configure.104if (LLVM_TOOL_CLANG_BUILD)105 add_dependencies(check-polly polly-check-format)106endif ()107 108configure_file(109 ${CMAKE_CURRENT_SOURCE_DIR}/update_check.py110 ${CMAKE_CURRENT_BINARY_DIR}/update_check.py)111 112# Add a legacy target spelling: polly-test113add_custom_target(polly-test)114set_target_properties(polly-test PROPERTIES FOLDER "Polly/Metatargets")115add_dependencies(polly-test check-polly)116