| set(LLVM_SHLIBEXT "${CMAKE_SHARED_MODULE_SUFFIX}") | |
| add_custom_target(check-polly) | |
| set_target_properties(check-polly PROPERTIES FOLDER "Polly/Meta") | |
| set(POLLY_TEST_C_COMPILER "") | |
| if(NOT LLVM_MAIN_SRC_DIR) | |
| find_program(LLVM_OPT NAMES opt HINTS ${LLVM_TOOLS_BINARY_DIR}) | |
| find_program(LLVM_FILECHECK NAMES FileCheck HINTS ${LLVM_TOOLS_BINARY_DIR}) | |
| find_program(LLVM_NOT NAMES not HINTS ${LLVM_TOOLS_BINARY_DIR}) | |
| if (NOT LLVM_OPT) | |
| message(WARNING "LLVM's opt program could not be found. Please set LLVM_OPT.") | |
| endif() | |
| if (NOT LLVM_FILECHECK) | |
| message(WARNING "LLVM's FileCheck program could not be found. " | |
| "Please set LLVM_FILECHECK. Please set LLVM_FILECHECK.") | |
| endif() | |
| if (NOT LLVM_NOT) | |
| message(WARNING "LLVM's not program could not be found. Please set LLVM_NOT.") | |
| endif() | |
| get_filename_component(EXTRA_PATHS ${LLVM_OPT} DIRECTORY) | |
| list(APPEND POLLY_TEST_EXTRA_PATHS "${EXTRA_PATHS}") | |
| get_filename_component(EXTRA_PATHS ${LLVM_FILECHECK} DIRECTORY) | |
| list(APPEND POLLY_TEST_EXTRA_PATHS "${EXTRA_PATHS}") | |
| get_filename_component(EXTRA_PATHS ${LLVM_NOT} DIRECTORY) | |
| list(APPEND POLLY_TEST_EXTRA_PATHS "${EXTRA_PATHS}") | |
| list(REMOVE_DUPLICATES POLLY_TEST_EXTRA_PATHS) | |
| message(STATUS "Extra paths: ${POLLY_TEST_EXTRA_PATHS}") | |
| if ("${POLLY_TEST_EXTRA_PATHS}" STREQUAL "${LLVM_TOOLS_BINARY_DIR}") | |
| set(POLLY_TEST_EXTRA_PATHS "") | |
| endif() | |
| set(POLLY_TEST_DEPS LLVMPolly) | |
| else () | |
| set(LLVM_OPT "${LLVM_TOOLS_BINARY_DIR}/opt") | |
| set(LLVM_FILECHECK "${LLVM_TOOLS_BINARY_DIR}/FileCheck") | |
| set(LLVM_NOT "${LLVM_TOOLS_BINARY_DIR}/not") | |
| set(POLLY_TEST_EXTRA_PATHS "") | |
| set(POLLY_TEST_DEPS llvm-config opt LLVMPolly FileCheck not count) | |
| if (TARGET clang) | |
| set(POLLY_TEST_C_COMPILER "${LLVM_TOOLS_BINARY_DIR}/clang${CMAKE_EXECUTABLE_SUFFIX}") | |
| list(APPEND POLLY_TEST_DEPS clang) | |
| endif () | |
| endif() | |
| if (POLLY_BUNDLED_ISL) | |
| list(APPEND POLLY_TEST_DEPS polly-isl-test) | |
| endif() | |
| if (POLLY_GTEST_AVAIL) | |
| list(APPEND POLLY_TEST_DEPS PollyUnitTests) | |
| endif () | |
| set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}") | |
| set(LLVM_TOOLS_DIR "${LLVM_TOOLS_BINARY_DIR}") | |
| set(LLVM_LIBS_DIR "${LLVM_LIBRARY_DIR}") | |
| if (CMAKE_LIBRARY_OUTPUT_DIRECTORY) | |
| set(POLLY_LIB_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) | |
| else() | |
| set(POLLY_LIB_DIR "${POLLY_BINARY_DIR}/lib") | |
| endif() | |
| configure_lit_site_cfg( | |
| ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in | |
| ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg) | |
| # Run regression and unit tests | |
| add_lit_testsuite(check-polly-tests "Running polly regression tests" | |
| ${CMAKE_CURRENT_BINARY_DIR} | |
| PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg | |
| polly_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg | |
| DEPENDS ${POLLY_TEST_DEPS} | |
| ) | |
| add_dependencies(check-polly check-polly-tests) | |
| configure_lit_site_cfg( | |
| ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in | |
| ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg | |
| ) | |
| if (POLLY_GTEST_AVAIL) | |
| # Run only unit tests | |
| add_lit_testsuite(check-polly-unittests "Running polly unit tests only" | |
| ${CMAKE_CURRENT_BINARY_DIR}/Unit | |
| PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg | |
| EXCLUDE_FROM_CHECK_ALL | |
| DEPENDS PollyUnitTests | |
| ) | |
| endif () | |
| configure_file( | |
| ${CMAKE_CURRENT_SOURCE_DIR}/UnitIsl/lit.site.cfg.in | |
| ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg) | |
| if (POLLY_BUNDLED_ISL) | |
| add_lit_testsuite(check-polly-isl "Running isl unit tests only" | |
| ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl | |
| PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg | |
| EXCLUDE_FROM_CHECK_ALL | |
| DEPENDS polly-isl-test | |
| ) | |
| endif (POLLY_BUNDLED_ISL) | |
| # Run polly-check-format as part of polly-check only if we are compiling with | |
| # clang, so clang-format is available. | |
| # if (TARGET clang-format) would be preferable, but this target is only added | |
| # after Polly, i.e. there is no such target yet at this point. The CMake cache | |
| # entry LLVM_TOOL_CLANG_BUILD will only be defined after clang has been | |
| # configured at least once, i.e. format will be checked only after a rerun of | |
| # CMake's configure. | |
| if (LLVM_TOOL_CLANG_BUILD) | |
| add_dependencies(check-polly polly-check-format) | |
| endif () | |
| configure_file( | |
| ${CMAKE_CURRENT_SOURCE_DIR}/update_check.py | |
| ${CMAKE_CURRENT_BINARY_DIR}/update_check.py) | |
| # Add a legacy target spelling: polly-test | |
| add_custom_target(polly-test) | |
| set_target_properties(polly-test PROPERTIES FOLDER "Polly/Metatargets") | |
| add_dependencies(polly-test check-polly) |