Index: lib/External/CMakeLists.txt =================================================================== --- lib/External/CMakeLists.txt +++ lib/External/CMakeLists.txt @@ -260,27 +260,50 @@ ${ISL_FILES} ) +add_executable(polly-isl-test + isl/isl_test.c +) + +target_link_libraries(polly-isl-test + PollyISL +) + if (MSVC) # Disable common warnings; ideally, they should be fixed upstream - target_compile_options(PollyISL PRIVATE + set(DISABLE_WARNING_FLAGS -wd4018 # 'expression' : signed/unsigned mismatch -wd4090 # 'operation' : different 'modifier' qualifiers -wd4200 # nonstandard extension used: zero-sized array in struct/union -wd4201 # nonstandard extension used: nameless struct/union -wd4334 # 'operator': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) ) + target_compile_options(PollyISL PRIVATE ${DISABLE_WARNING_FLAGS}) + target_compile_options(polly-isl-test PRIVATE ${DISABLE_WARNING_FLAGS}) endif () # ISL requires at least C99 to compile. gcc < 5.0 use -std=gnu89 as default. target_enable_c99(PollyISL) +target_enable_c99(polly-isl-test) # Disable warnings which should be coped with upstream for isl and imath. if (NOT MSVC) set_target_properties(PollyISL PROPERTIES COMPILE_FLAGS "-w" ) + set_target_properties(polly-isl-test PROPERTIES + COMPILE_FLAGS "-w" + ) endif () +add_custom_command(OUTPUT polly-run-isl-test + COMMAND polly-isl-test > /dev/null + WORKING_DIRECTORY ${ISL_SOURCE_DIR} + VERBATIM + DEPENDS polly-isl-test + COMMENT "Testing isl with isl_test" +) +add_custom_target(check-polly-isl DEPENDS polly-run-isl-test) + set(PET_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/pet") set(PPCG_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ppcg") set(PPCG_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ppcg") Index: lib/External/isl/isl_test.c =================================================================== --- lib/External/isl/isl_test.c +++ lib/External/isl/isl_test.c @@ -6695,7 +6695,11 @@ struct isl_options *options; srcdir = getenv("srcdir"); - assert(srcdir); + + if (!srcdir) { + printf("No isl source directory specified, assuming 'srcdir=.'."); + srcdir = "."; + } options = isl_options_new_with_defaults(); assert(options); @@ -6708,6 +6712,8 @@ goto error; } isl_ctx_free(ctx); + + printf("isl_test: All tests passed."); return 0; error: isl_ctx_free(ctx); Index: test/CMakeLists.txt =================================================================== --- test/CMakeLists.txt +++ test/CMakeLists.txt @@ -162,6 +162,8 @@ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) +add_dependencies(check-polly check-polly-isl) + # Add a legacy target spelling: polly-test add_custom_target(polly-test) set_target_properties(polly-test PROPERTIES FOLDER "Polly")