1 set(POLLY_TEST_DIRECTORIES
11 set(POLLY_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..")
12 set(POLLY_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/..")
13 set(LLVM_SHLIBEXT "${CMAKE_SHARED_MODULE_SUFFIX}")
15 add_custom_target(check-polly)
16 set_target_properties(check-polly PROPERTIES FOLDER "Polly")
18 if (NOT DEFINED LLVM_MAIN_SRC_DIR)
20 # We are building polly out of tree, adjust the settings.
21 # FIXME: FileCheck is not available in llvm install directory at the moment.
22 set(LLVM_LIT ${LLVM_INSTALL_ROOT}/bin/llvm-lit)
23 if (POLLY_BUNDLED_ISL)
24 set(POLLY_TEST_DEPS LLVMPolly polly-isl-test)
25 endif (POLLY_BUNDLED_ISL)
26 if (POLLY_GTEST_AVAIL)
27 list(APPEND POLLY_TEST_DEPS PollyUnitTests)
30 set(LLVM_BINARY_DIR "${LLVM_INSTALL_ROOT}")
31 set(LLVM_TOOLS_DIR "${LLVM_INSTALL_ROOT}/bin")
32 set(LLVM_LIBS_DIR "${LLVM_INSTALL_ROOT}/lib")
33 set(POLLY_LIB_DIR "${POLLY_BINARY_DIR}/lib")
35 include(FindPythonInterp)
36 if(PYTHONINTERP_FOUND)
37 option(POLLY_TEST_DISABLE_BAR "Run Polly tests with --no-progress-bar" OFF)
38 set(POLLY_TEST_EXTRA_ARGS)
39 if (MSVC OR XCODE OR POLLY_TEST_DISABLE_BAR)
40 set(POLLY_TEST_EXTRA_ARGS "--no-progress-bar")
43 option(POLLY_TEST_USE_VG "Run Polly tests under Valgrind" OFF)
45 set(POLLY_TEST_EXTRA_ARGS ${POLLY_TEST_EXTRA_ARGS} "--vg")
48 # Parameters required for lit.site.cfg.in
49 set(LLVM_SOURCE_DIR ${LLVM_SOURCE_ROOT})
50 if (CMAKE_CFG_INTDIR STREQUAL ".")
51 set(LLVM_BUILD_MODE ".")
53 set(LLVM_BUILD_MODE "%(build_mode)s")
55 set(ENABLE_SHARED "1")
56 set(SHLIBDIR "${LLVM_BINARY_DIR}/bin")
57 set(LINK_POLLY_INTO_TOOLS "OFF")
60 ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
61 ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
63 foreach(testdir ${POLLY_TEST_DIRECTORIES})
64 add_custom_target(polly-test-${testdir}
66 --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
67 --param build_config=${CMAKE_CFG_INTDIR}
68 -sv ${POLLY_TEST_EXTRA_ARGS}
69 ${CMAKE_CURRENT_BINARY_DIR}/${testdir}
70 DEPENDS ${POLLY_TEST_DEPS}
71 COMMENT "Running Polly regression tests in ${testdir}")
72 set_target_properties(polly-test-${testdir} PROPERTIES FOLDER "Polly")
75 add_custom_target(check-polly-tests
77 --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
78 --param polly_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
79 --param build_config=${CMAKE_CFG_INTDIR}
80 -sv ${POLLY_TEST_EXTRA_ARGS}
81 ${CMAKE_CURRENT_BINARY_DIR}
82 DEPENDS ${POLLY_TEST_DEPS}
83 COMMENT "Running Polly regression/unit tests")
84 set_target_properties(check-polly-tests PROPERTIES FOLDER "Polly")
85 add_dependencies(check-polly check-polly-tests)
87 if (POLLY_GTEST_AVAIL)
89 ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
90 ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg)
92 add_custom_target(check-polly-unittests
94 --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
95 --param build_config=${CMAKE_CFG_INTDIR}
96 -sv ${POLLY_TEST_EXTRA_ARGS}
97 ${CMAKE_CURRENT_BINARY_DIR}/Unit
98 DEPENDS PollyUnitTests
99 COMMENT "Running Polly unit tests")
100 set_target_properties(check-polly-unittests PROPERTIES FOLDER "Polly")
103 ${CMAKE_CURRENT_SOURCE_DIR}/UnitIsl/lit.site.cfg.in
104 ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg)
107 if (POLLY_BUNDLED_ISL)
108 add_custom_target(check-polly-isl
110 --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg
111 --param build_config=${CMAKE_CFG_INTDIR}
112 -sv ${POLLY_TEST_EXTRA_ARGS}
113 ${CMAKE_CURRENT_BINARY_DIR}
114 DEPENDS polly-isl-test
115 COMMENT "Running isl unit tests")
116 set_target_properties(check-polly-isl PROPERTIES FOLDER "Polly")
117 endif (POLLY_BUNDLED_ISL)
120 else (NOT DEFINED LLVM_MAIN_SRC_DIR)
122 set(LLVM_LIT ${LLVM_TOOLS_BINARY_DIR}/llvm-lit)
123 set(POLLY_TEST_DEPS llvm-config opt LLVMPolly FileCheck not)
124 if (POLLY_BUNDLED_ISL)
125 list(APPEND POLLY_TEST_DEPS polly-isl-test)
127 if (POLLY_GTEST_AVAIL)
128 list(APPEND POLLY_TEST_DEPS PollyUnitTests)
131 set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}")
132 set(LLVM_TOOLS_DIR "${LLVM_TOOLS_BINARY_DIR}")
133 set(LLVM_LIBS_DIR "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}")
134 set(POLLY_LIB_DIR "${LLVM_LIBS_DIR}")
136 configure_lit_site_cfg(
137 ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
138 ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
140 # Run regression and unit tests
141 add_lit_testsuite(check-polly-tests "Running polly regression tests"
142 ${CMAKE_CURRENT_BINARY_DIR}
143 PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
144 polly_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
145 DEPENDS ${POLLY_TEST_DEPS}
147 set_target_properties(check-polly-tests PROPERTIES FOLDER "Polly")
148 add_dependencies(check-polly check-polly-tests)
150 if (POLLY_GTEST_AVAIL)
151 configure_lit_site_cfg(
152 ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
153 ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
156 # Run only unit tests
157 add_lit_testsuite(check-polly-unittests "Running polly unit tests only"
158 ${CMAKE_CURRENT_BINARY_DIR}/Unit
159 PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
160 DEPENDS PollyUnitTests
162 set_target_properties(check-polly-unittests PROPERTIES FOLDER "Polly")
166 ${CMAKE_CURRENT_SOURCE_DIR}/UnitIsl/lit.site.cfg.in
167 ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg)
169 if (POLLY_BUNDLED_ISL)
170 add_lit_testsuite(check-polly-isl "Running isl unit tests only"
171 ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl
172 PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg
173 DEPENDS polly-isl-test
175 set_target_properties(check-polly-isl PROPERTIES FOLDER "Polly")
176 endif (POLLY_BUNDLED_ISL)
178 # Run polly-check-format as part of polly-check only if we are compiling with
179 # clang, so clang-format is available.
180 # if (TARGET clang-format) would be preferable, but this target is only added
181 # after Polly, i.e. there is no such target yet at this point. The CMake cache
182 # entry LLVM_TOOL_CLANG_BUILD will only be defined after clang has been
183 # configured at least once, i.e. format will be checked only after a rerun of
185 if (LLVM_TOOL_CLANG_BUILD)
186 add_dependencies(check-polly polly-check-format)
189 endif (NOT DEFINED LLVM_MAIN_SRC_DIR)
192 ${CMAKE_CURRENT_SOURCE_DIR}/update_check.py
193 ${CMAKE_CURRENT_BINARY_DIR}/update_check.py)
194 file(COPY ${CMAKE_CURRENT_BINARY_DIR}/update_check.py
195 DESTINATION ${LLVM_TOOLS_DIR}
196 FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
197 GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
199 # Add a legacy target spelling: polly-test
200 add_custom_target(polly-test)
201 set_target_properties(polly-test PROPERTIES FOLDER "Polly")
202 add_dependencies(polly-test check-polly)