1if(LLVM_BUILD_EXAMPLES)
2  set(ENABLE_EXAMPLES 1)
3endif()
4
5configure_lit_site_cfg(
6  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
7  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
8  )
9configure_lit_site_cfg(
10  ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
11  ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
12  )
13
14# Don't include check-llvm into check-all without LLVM_BUILD_TOOLS.
15if(NOT LLVM_BUILD_TOOLS)
16  set(EXCLUDE_FROM_ALL ON)
17endif()
18
19# Set the depends list as a variable so that it can grow conditionally.
20# NOTE: Sync the substitutions in test/lit.cfg when adding to this list.
21set(LLVM_TEST_DEPENDS
22          BugpointPasses
23          FileCheck
24          LLVMHello
25          UnitTests
26          bugpoint
27          count
28          llc
29          lli
30          lli-child-target
31          llvm-ar
32          llvm-as
33          llvm-bcanalyzer
34          llvm-c-test
35          llvm-config
36          llvm-cov
37          llvm-cxxdump
38          llvm-diff
39          llvm-dis
40          llvm-dsymutil
41          llvm-dwarfdump
42          llvm-dwp
43          llvm-extract
44          llvm-lib
45          llvm-link
46          llvm-lto
47          llvm-mc
48          llvm-mcmarkup
49          llvm-nm
50          llvm-objdump
51          llvm-pdbdump
52          llvm-profdata
53          llvm-ranlib
54          llvm-readobj
55          llvm-rtdyld
56          llvm-size
57          llvm-split
58          llvm-symbolizer
59          llvm-tblgen
60          not
61          obj2yaml
62          opt
63          sancov
64          verify-uselistorder
65          yaml-bench
66          yaml2obj
67        )
68
69# If Intel JIT events are supported, depend on a tool that tests the listener.
70if( LLVM_USE_INTEL_JITEVENTS )
71  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} llvm-jitlistener)
72endif( LLVM_USE_INTEL_JITEVENTS )
73
74if(TARGET LLVMgold)
75  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} LLVMgold)
76endif()
77
78if(TARGET llvm-go)
79  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} llvm-go)
80endif()
81
82if(APPLE)
83  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} LTO)
84endif()
85
86if(TARGET ocaml_llvm)
87  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS}
88          ocaml_llvm
89          ocaml_llvm_all_backends
90          ocaml_llvm_analysis
91          ocaml_llvm_bitreader
92          ocaml_llvm_bitwriter
93          ocaml_llvm_executionengine
94          ocaml_llvm_irreader
95          ocaml_llvm_linker
96          ocaml_llvm_target
97          ocaml_llvm_ipo
98          ocaml_llvm_passmgr_builder
99          ocaml_llvm_scalar_opts
100          ocaml_llvm_transform_utils
101          ocaml_llvm_vectorize
102        )
103endif()
104
105if(LLVM_BUILD_EXAMPLES)
106  list(APPEND LLVM_TEST_DEPENDS
107    Kaleidoscope-Ch3
108    Kaleidoscope-Ch4
109    Kaleidoscope-Ch5
110    Kaleidoscope-Ch6
111    Kaleidoscope-Ch7
112    )
113endif()
114
115add_lit_testsuite(check-llvm "Running the LLVM regression tests"
116  ${CMAKE_CURRENT_BINARY_DIR}
117  PARAMS llvm_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
118         llvm_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
119  DEPENDS ${LLVM_TEST_DEPENDS}
120  )
121set_target_properties(check-llvm PROPERTIES FOLDER "Tests")
122
123add_lit_testsuites(LLVM ${CMAKE_CURRENT_SOURCE_DIR}
124  PARAMS llvm_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
125         llvm_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
126  DEPENDS ${LLVM_TEST_DEPENDS}
127  )
128
129# Setup a legacy alias for 'check-llvm'. This will likely change to be an
130# alias for 'check-all' at some point in the future.
131add_custom_target(check)
132add_dependencies(check check-llvm)
133set_target_properties(check PROPERTIES FOLDER "Tests")
134