xref: /llvm-project/llvm/test/CMakeLists.txt (revision ec15b242505a46ea7d195a6520fb869a80a2cd10)
1llvm_canonicalize_cmake_booleans(
2  BUILD_SHARED_LIBS
3  HAVE_OCAMLOPT
4  ENABLE_BACKTRACES
5  LLVM_ENABLE_DIA_SDK
6  LLVM_ENABLE_FFI
7  LLVM_ENABLE_THREADS
8  LLVM_ENABLE_CURL
9  LLVM_ENABLE_HTTPLIB
10  LLVM_ENABLE_ZLIB
11  LLVM_ENABLE_ZSTD
12  LLVM_ENABLE_LIBXML2
13  LLVM_LINK_LLVM_DYLIB
14  LLVM_TOOL_LTO_BUILD
15  LLVM_USE_INTEL_JITEVENTS
16  LLVM_BUILD_EXAMPLES
17  LLVM_ENABLE_PLUGINS
18  LLVM_BYE_LINK_INTO_TOOLS
19  LLVM_EXAMPLEIRTRANSFORMS_LINK_INTO_TOOLS
20  LLVM_HAVE_TF_AOT
21  LLVM_HAVE_TFLITE
22  LLVM_INLINER_MODEL_AUTOGENERATED
23  LLVM_RAEVICT_MODEL_AUTOGENERATED
24  LLVM_ENABLE_EXPENSIVE_CHECKS
25  LLVM_ENABLE_REVERSE_ITERATION
26  LLVM_INCLUDE_DXIL_TESTS
27  LLVM_TOOL_LLVM_DRIVER_BUILD
28  LLVM_INCLUDE_SPIRV_SIMULATOR_TESTS
29  LLVM_INCLUDE_SPIRV_TOOLS_TESTS
30  LLVM_APPEND_VC_REV
31  LLVM_HAS_LOGF128
32  )
33
34configure_lit_site_cfg(
35  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
36  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py
37  MAIN_CONFIG
38  ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py
39  PATHS
40  "CMAKE_OSX_SYSROOT"
41  "LLVM_SOURCE_DIR"
42  "LLVM_BINARY_DIR"
43  "LLVM_TOOLS_DIR"
44  "LLVM_LIBS_DIR"
45  "SHLIBDIR"
46  )
47configure_lit_site_cfg(
48  ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
49  ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py
50  MAIN_CONFIG
51  ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.cfg.py
52  PATHS
53  "LLVM_SOURCE_DIR"
54  "LLVM_BINARY_DIR"
55  "LLVM_TOOLS_DIR"
56  "SHLIBDIR"
57  )
58
59# Set the depends list as a variable so that it can grow conditionally.
60# NOTE: Sync the substitutions in test/lit.cfg when adding to this list.
61set(LLVM_TEST_DEPENDS
62          BugpointPasses
63          FileCheck
64          LLVMWindowsDriver
65          UnitTests
66          bugpoint
67          count
68          llc
69          lli
70          lli-child-target
71          llvm-addr2line
72          llvm-ar
73          llvm-as
74          llvm-bcanalyzer
75          llvm-bitcode-strip
76          llvm-c-test
77          llvm-cat
78          llvm-cfi-verify
79          llvm-cgdata
80          llvm-config
81          llvm-cov
82          llvm-ctxprof-util
83          llvm-cvtres
84          llvm-cxxdump
85          llvm-cxxfilt
86          llvm-cxxmap
87          llvm-debuginfo-analyzer
88          llvm-debuginfod-find
89          llvm-diff
90          llvm-dis
91          llvm-dlltool
92          dsymutil
93          llvm-dwarfdump
94          llvm-dwarfutil
95          llvm-dwp
96          llvm-exegesis
97          llvm-extract
98          llvm-gsymutil
99          llvm-isel-fuzzer
100          llvm-ifs
101          llvm-install-name-tool
102          llvm-jitlink
103          llvm-lib
104          llvm-libtool-darwin
105          llvm-link
106          llvm-lipo
107          llvm-locstats
108          llvm-lto2
109          llvm-mc
110          llvm-mca
111          llvm-ml
112          llvm-modextract
113          llvm-mt
114          llvm-nm
115          llvm-objcopy
116          llvm-objdump
117          llvm-opt-fuzzer
118          llvm-opt-report
119          llvm-otool
120          llvm-pdbutil
121          llvm-profdata
122          llvm-profgen
123          llvm-ranlib
124          llvm-rc
125          llvm-readobj
126          llvm-readelf
127          llvm-reduce
128          llvm-remarkutil
129          llvm-rtdyld
130          llvm-sim
131          llvm-size
132          llvm-split
133          llvm-stress
134          llvm-strings
135          llvm-strip
136          llvm-symbolizer
137          llvm-tblgen
138          llvm-readtapi
139          llvm-tli-checker
140          llvm-undname
141          llvm-windres
142          llvm-xray
143          not
144          obj2yaml
145          opt
146          sancov
147          sanstats
148          split-file
149          verify-uselistorder
150          yaml-bench
151          yaml2obj
152        )
153
154if(TARGET llvm-lto)
155  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} llvm-lto)
156endif()
157
158if(TARGET llvm-driver)
159  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} llvm-driver)
160endif()
161
162# If Intel JIT events are supported, depend on a tool that tests the listener.
163if( LLVM_USE_INTEL_JITEVENTS )
164  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} llvm-jitlistener)
165endif( LLVM_USE_INTEL_JITEVENTS )
166
167if(TARGET LLVMgold)
168  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} LLVMgold)
169endif()
170
171if(TARGET LTO)
172  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} LTO)
173endif()
174
175if(LLVM_BUILD_EXAMPLES)
176  list(APPEND LLVM_TEST_DEPENDS
177    Kaleidoscope-Ch3
178    Kaleidoscope-Ch4
179    Kaleidoscope-Ch5
180    Kaleidoscope-Ch6
181    Kaleidoscope-Ch7
182    LLJITWithThinLTOSummaries
183    OrcV2CBindingsBasicUsage
184    OrcV2CBindingsAddObjectFile
185    OrcV2CBindingsRemovableCode
186    OrcV2CBindingsLazy
187    OrcV2CBindingsVeryLazy
188    )
189  if(CMAKE_HOST_UNIX)
190    list(APPEND LLVM_TEST_DEPENDS
191      LLJITWithRemoteDebugging
192      )
193  endif()
194  if (NOT WIN32)
195    list(APPEND LLVM_TEST_DEPENDS
196      Bye
197      ExampleIRTransforms
198      )
199  endif()
200endif()
201
202if(TARGET ocaml_llvm)
203  # Clear all non-OCaml cross-target dependencies when building out-of-tree.
204  if(LLVM_OCAML_OUT_OF_TREE)
205    set(LLVM_TEST_DEPENDS)
206  endif()
207
208  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS}
209          ocaml_llvm
210          ocaml_llvm_all_backends
211          ocaml_llvm_analysis
212          ocaml_llvm_bitreader
213          ocaml_llvm_bitwriter
214          ocaml_llvm_executionengine
215          ocaml_llvm_irreader
216          ocaml_llvm_linker
217          ocaml_llvm_passbuilder
218          ocaml_llvm_target
219          ocaml_llvm_transform_utils
220        )
221endif()
222
223if (LLVM_INCLUDE_DXIL_TESTS)
224  list(APPEND LLVM_TEST_DEPENDS dxil-dis)
225endif()
226
227if(LLVM_ENABLE_HTTPLIB)
228  list(APPEND LLVM_TEST_DEPENDS llvm-debuginfod)
229endif()
230
231if (LLVM_INCLUDE_SPIRV_TOOLS_TESTS)
232  list(APPEND LLVM_TEST_DEPENDS spirv-dis)
233  list(APPEND LLVM_TEST_DEPENDS spirv-val)
234  list(APPEND LLVM_TEST_DEPENDS spirv-as)
235endif()
236
237add_custom_target(llvm-test-depends DEPENDS ${LLVM_TEST_DEPENDS})
238set_target_properties(llvm-test-depends PROPERTIES FOLDER "LLVM/Tests")
239
240if(LLVM_BUILD_TOOLS)
241  set(exclude_from_check_all "")
242else()
243  set(exclude_from_check_all "EXCLUDE_FROM_CHECK_ALL")
244endif()
245
246add_lit_testsuite(check-llvm "Running the LLVM regression tests"
247  ${CMAKE_CURRENT_BINARY_DIR}
248  ${exclude_from_check_all}
249  DEPENDS ${LLVM_TEST_DEPENDS}
250  )
251set_target_properties(check-llvm PROPERTIES FOLDER "LLVM/Tests")
252
253add_lit_testsuites(LLVM ${CMAKE_CURRENT_SOURCE_DIR}
254  ${exclude_from_check_all}
255  DEPENDS ${LLVM_TEST_DEPENDS}
256  FOLDER "Tests/Subdirectories"
257  )
258
259# Setup an alias for 'check-all'.
260add_custom_target(check)
261add_dependencies(check check-all)
262set_target_properties(check PROPERTIES FOLDER "LLVM/Tests")
263