[Support] Compile fix for gcc. NFC.
[polly-mirror.git] / test / CMakeLists.txt
blob256fe0cbad684f7cf9116b5f83be8cf6c7aa4bd9
1 set(POLLY_TEST_DIRECTORIES
2   "AffineIterator"
3   "ScopInfo"
4   "ScheduleOptimizer"
5   "CodeGen"
6   "OpenMP"
7   "polybench"
8   "vect")
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   set(POLLY_TEST_DEPS LLVMPolly)
24   if (POLLY_GTEST_AVAIL)
25     list(APPEND POLLY_TEST_DEPS PollyUnitTests)
26   endif ()
28   set(LLVM_BINARY_DIR "${LLVM_INSTALL_ROOT}")
29   set(LLVM_TOOLS_DIR "${LLVM_INSTALL_ROOT}/bin")
30   set(LLVM_LIBS_DIR "${LLVM_INSTALL_ROOT}/lib")
31   set(POLLY_LIB_DIR "${POLLY_BINARY_DIR}/lib")
33   include(FindPythonInterp)
34   if(PYTHONINTERP_FOUND)
35     option(POLLY_TEST_DISABLE_BAR "Run Polly tests with --no-progress-bar" OFF)
36     set(POLLY_TEST_EXTRA_ARGS)
37     if (MSVC OR XCODE OR POLLY_TEST_DISABLE_BAR)
38       set(POLLY_TEST_EXTRA_ARGS "--no-progress-bar")
39     endif()
41     option(POLLY_TEST_USE_VG "Run Polly tests under Valgrind" OFF)
42     if(POLLY_TEST_USE_VG)
43       set(POLLY_TEST_EXTRA_ARGS ${POLLY_TEST_EXTRA_ARGS} "--vg")
44     endif ()
46     # Parameters required for lit.site.cfg.in
47     set(LLVM_SOURCE_DIR ${LLVM_SOURCE_ROOT})
48     if (CMAKE_CFG_INTDIR STREQUAL ".")
49       set(LLVM_BUILD_MODE ".")
50     else ()
51       set(LLVM_BUILD_MODE "%(build_mode)s")
52     endif ()
53     set(ENABLE_SHARED "1")
54     set(SHLIBDIR "${LLVM_BINARY_DIR}/bin")
55     set(LINK_POLLY_INTO_TOOLS "OFF")
57     configure_file(
58       ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
59       ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
61     foreach(testdir ${POLLY_TEST_DIRECTORIES})
62       add_custom_target(polly-test-${testdir}
63         COMMAND ${LLVM_LIT}
64                     --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
65                     --param build_config=${CMAKE_CFG_INTDIR}
66                     -sv ${POLLY_TEST_EXTRA_ARGS}
67                     ${CMAKE_CURRENT_BINARY_DIR}/${testdir}
68                     DEPENDS ${POLLY_TEST_DEPS}
69                     COMMENT "Running Polly regression tests in ${testdir}")
70       set_target_properties(polly-test-${testdir} PROPERTIES FOLDER "Polly")
71     endforeach()
73     add_custom_target(check-polly-tests
74       COMMAND ${LLVM_LIT}
75                   --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
76                   --param polly_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
77                   --param build_config=${CMAKE_CFG_INTDIR}
78                   -sv ${POLLY_TEST_EXTRA_ARGS}
79                   ${CMAKE_CURRENT_BINARY_DIR}
80                   DEPENDS ${POLLY_TEST_DEPS}
81                   COMMENT "Running Polly regression/unit tests")
82     set_target_properties(check-polly-tests PROPERTIES FOLDER "Polly")
83     add_dependencies(check-polly check-polly-tests)
85     if (POLLY_GTEST_AVAIL)
86       configure_file(
87         ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
88         ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg)
90       add_custom_target(check-polly-unittests
91         COMMAND ${LLVM_LIT}
92                   --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
93                   --param build_config=${CMAKE_CFG_INTDIR}
94                   -sv ${POLLY_TEST_EXTRA_ARGS}
95                   ${CMAKE_CURRENT_BINARY_DIR}/Unit
96                   DEPENDS PollyUnitTests
97                   COMMENT "Running Polly unit tests")
98       set_target_properties(check-polly-unittests PROPERTIES FOLDER "Polly")
99     endif ()
100   endif()
102 else (NOT DEFINED LLVM_MAIN_SRC_DIR)
104   set(LLVM_LIT ${LLVM_TOOLS_BINARY_DIR}/llvm-lit)
105   set(POLLY_TEST_DEPS llvm-config opt LLVMPolly FileCheck not)
106   if (POLLY_GTEST_AVAIL)
107     list(APPEND POLLY_TEST_DEPS PollyUnitTests)
108   endif ()
110   set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}")
111   set(LLVM_TOOLS_DIR "${LLVM_TOOLS_BINARY_DIR}")
112   set(LLVM_LIBS_DIR "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}")
113   set(POLLY_LIB_DIR "${LLVM_LIBS_DIR}")
115   configure_lit_site_cfg(
116     ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
117     ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
119   # Run regression and unit tests
120   add_lit_testsuite(check-polly-tests "Running polly regression tests"
121     ${CMAKE_CURRENT_BINARY_DIR}
122     PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
123            polly_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
124     DEPENDS ${POLLY_TEST_DEPS}
125     )
126   set_target_properties(check-polly-tests PROPERTIES FOLDER "Polly")
127   add_dependencies(check-polly check-polly-tests)
129   if (POLLY_GTEST_AVAIL)
130     configure_lit_site_cfg(
131       ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
132       ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
133     )
135     # Run only unit tests
136     add_lit_testsuite(check-polly-unittests "Running polly unit tests only"
137       ${CMAKE_CURRENT_BINARY_DIR}/Unit
138       PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
139       DEPENDS PollyUnitTests
140       )
141     set_target_properties(check-polly-unittests PROPERTIES FOLDER "Polly")
142   endif ()
144   # Run polly-check-format as part of polly-check only if we are compiling with
145   # clang, so clang-format is available.
146   # if (TARGET clang-format) would be preferable, but this target is only added
147   # after Polly, i.e. there is no such target yet at this point. The CMake cache
148   # entry LLVM_TOOL_CLANG_BUILD will only be defined after clang has been
149   # configured at least once, i.e. format will be checked only after a rerun of
150   # CMake's configure.
151   if (LLVM_TOOL_CLANG_BUILD)
152     add_dependencies(check-polly polly-check-format)
153   endif ()
155 endif (NOT DEFINED LLVM_MAIN_SRC_DIR)
157 configure_file(
158   ${CMAKE_CURRENT_SOURCE_DIR}/update_check.py
159   ${CMAKE_CURRENT_BINARY_DIR}/update_check.py)
160 file(COPY ${CMAKE_CURRENT_BINARY_DIR}/update_check.py
161   DESTINATION ${LLVM_TOOLS_DIR}
162   FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
163   GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
165 # Add a legacy target spelling: polly-test
166 add_custom_target(polly-test)
167 set_target_properties(polly-test PROPERTIES FOLDER "Polly")
168 add_dependencies(polly-test check-polly)