1 set(POLLY_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..")
2 set(POLLY_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/..")
3 set(LLVM_SHLIBEXT "${CMAKE_SHARED_MODULE_SUFFIX}")
5 add_custom_target(check-polly)
6 set_target_properties(check-polly PROPERTIES FOLDER "Polly")
8 if (NOT DEFINED LLVM_MAIN_SRC_DIR)
10 # We are building polly out of tree, adjust the settings.
11 # FIXME: FileCheck is not available in llvm install directory at the moment.
12 set(LLVM_LIT ${LLVM_INSTALL_ROOT}/bin/llvm-lit)
13 if (POLLY_BUNDLED_ISL)
14 set(POLLY_TEST_DEPS LLVMPolly polly-isl-test)
15 endif (POLLY_BUNDLED_ISL)
16 if (POLLY_GTEST_AVAIL)
17 list(APPEND POLLY_TEST_DEPS PollyUnitTests)
20 set(LLVM_BINARY_DIR "${LLVM_INSTALL_ROOT}")
21 set(LLVM_TOOLS_DIR "${LLVM_INSTALL_ROOT}/bin")
22 set(LLVM_LIBS_DIR "${LLVM_INSTALL_ROOT}/lib")
23 set(POLLY_LIB_DIR "${POLLY_BINARY_DIR}/lib")
25 include(FindPythonInterp)
26 if(PYTHONINTERP_FOUND)
27 option(POLLY_TEST_DISABLE_BAR "Run Polly tests with --no-progress-bar" OFF)
28 set(POLLY_TEST_EXTRA_ARGS)
29 if (MSVC OR XCODE OR POLLY_TEST_DISABLE_BAR)
30 set(POLLY_TEST_EXTRA_ARGS "--no-progress-bar")
33 option(POLLY_TEST_USE_VG "Run Polly tests under Valgrind" OFF)
35 set(POLLY_TEST_EXTRA_ARGS ${POLLY_TEST_EXTRA_ARGS} "--vg")
38 # Parameters required for lit.site.cfg.in
39 set(LLVM_SOURCE_DIR ${LLVM_SOURCE_ROOT})
40 if (CMAKE_CFG_INTDIR STREQUAL ".")
41 set(LLVM_BUILD_MODE ".")
43 set(LLVM_BUILD_MODE "%(build_mode)s")
45 set(ENABLE_SHARED "1")
46 set(SHLIBDIR "${LLVM_BINARY_DIR}/bin")
47 set(LINK_POLLY_INTO_TOOLS "OFF")
50 ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
51 ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
53 add_custom_target(check-polly-tests
55 --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
56 --param polly_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
57 --param build_config=${CMAKE_CFG_INTDIR}
58 -sv ${POLLY_TEST_EXTRA_ARGS}
59 ${CMAKE_CURRENT_BINARY_DIR}
60 DEPENDS ${POLLY_TEST_DEPS}
61 COMMENT "Running Polly regression/unit tests")
62 set_target_properties(check-polly-tests PROPERTIES FOLDER "Polly")
63 add_dependencies(check-polly check-polly-tests)
65 if (POLLY_GTEST_AVAIL)
67 ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
68 ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg)
70 add_custom_target(check-polly-unittests
72 --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
73 --param build_config=${CMAKE_CFG_INTDIR}
74 -sv ${POLLY_TEST_EXTRA_ARGS}
75 ${CMAKE_CURRENT_BINARY_DIR}/Unit
76 DEPENDS PollyUnitTests
77 COMMENT "Running Polly unit tests")
78 set_target_properties(check-polly-unittests PROPERTIES FOLDER "Polly")
81 ${CMAKE_CURRENT_SOURCE_DIR}/UnitIsl/lit.site.cfg.in
82 ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg)
85 if (POLLY_BUNDLED_ISL)
86 add_custom_target(check-polly-isl
88 --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg
89 --param build_config=${CMAKE_CFG_INTDIR}
90 -sv ${POLLY_TEST_EXTRA_ARGS}
91 ${CMAKE_CURRENT_BINARY_DIR}
92 DEPENDS polly-isl-test
93 COMMENT "Running isl unit tests")
94 set_target_properties(check-polly-isl PROPERTIES FOLDER "Polly")
95 endif (POLLY_BUNDLED_ISL)
98 else (NOT DEFINED LLVM_MAIN_SRC_DIR)
100 set(LLVM_LIT ${LLVM_TOOLS_BINARY_DIR}/llvm-lit)
101 set(POLLY_TEST_DEPS llvm-config opt LLVMPolly FileCheck not)
102 if (POLLY_BUNDLED_ISL)
103 list(APPEND POLLY_TEST_DEPS polly-isl-test)
105 if (POLLY_GTEST_AVAIL)
106 list(APPEND POLLY_TEST_DEPS PollyUnitTests)
109 set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}")
110 set(LLVM_TOOLS_DIR "${LLVM_TOOLS_BINARY_DIR}")
111 set(LLVM_LIBS_DIR "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}")
112 set(POLLY_LIB_DIR "${LLVM_LIBS_DIR}")
114 configure_lit_site_cfg(
115 ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
116 ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
118 # Run regression and unit tests
119 add_lit_testsuite(check-polly-tests "Running polly regression tests"
120 ${CMAKE_CURRENT_BINARY_DIR}
121 PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
122 polly_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
123 DEPENDS ${POLLY_TEST_DEPS}
125 set_target_properties(check-polly-tests PROPERTIES FOLDER "Polly")
126 add_dependencies(check-polly check-polly-tests)
128 if (POLLY_GTEST_AVAIL)
129 configure_lit_site_cfg(
130 ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
131 ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
134 # Run only unit tests
135 add_lit_testsuite(check-polly-unittests "Running polly unit tests only"
136 ${CMAKE_CURRENT_BINARY_DIR}/Unit
137 PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
138 DEPENDS PollyUnitTests
140 set_target_properties(check-polly-unittests PROPERTIES FOLDER "Polly")
144 ${CMAKE_CURRENT_SOURCE_DIR}/UnitIsl/lit.site.cfg.in
145 ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg)
147 if (POLLY_BUNDLED_ISL)
148 add_lit_testsuite(check-polly-isl "Running isl unit tests only"
149 ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl
150 PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg
151 DEPENDS polly-isl-test
153 set_target_properties(check-polly-isl PROPERTIES FOLDER "Polly")
154 endif (POLLY_BUNDLED_ISL)
156 # Run polly-check-format as part of polly-check only if we are compiling with
157 # clang, so clang-format is available.
158 # if (TARGET clang-format) would be preferable, but this target is only added
159 # after Polly, i.e. there is no such target yet at this point. The CMake cache
160 # entry LLVM_TOOL_CLANG_BUILD will only be defined after clang has been
161 # configured at least once, i.e. format will be checked only after a rerun of
163 if (LLVM_TOOL_CLANG_BUILD)
164 add_dependencies(check-polly polly-check-format)
167 endif (NOT DEFINED LLVM_MAIN_SRC_DIR)
170 ${CMAKE_CURRENT_SOURCE_DIR}/update_check.py
171 ${CMAKE_CURRENT_BINARY_DIR}/update_check.py)
172 file(COPY ${CMAKE_CURRENT_BINARY_DIR}/update_check.py
173 DESTINATION ${LLVM_TOOLS_DIR}
174 FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
175 GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
177 # Add a legacy target spelling: polly-test
178 add_custom_target(polly-test)
179 set_target_properties(polly-test PROPERTIES FOLDER "Polly")
180 add_dependencies(polly-test check-polly)