aboutsummaryrefslogtreecommitdiff
blob: bd02027c0603864cdb760115390b20f9fd91e9f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
llvm_canonicalize_cmake_booleans(
  BUILD_SHARED_LIBS
  HAVE_LIBXAR
  HAVE_OCAMLOPT
  HAVE_OCAML_OUNIT
  LLVM_ENABLE_DIA_SDK
  LLVM_ENABLE_FFI
  LLVM_ENABLE_THREADS
  LLVM_ENABLE_ZLIB
  LLVM_ENABLE_LIBXML2
  LLVM_INCLUDE_GO_TESTS
  LLVM_LINK_LLVM_DYLIB
  LLVM_TOOL_LTO_BUILD
  LLVM_USE_INTEL_JITEVENTS
  LLVM_BUILD_EXAMPLES
  LLVM_ENABLE_PLUGINS
  LLVM_BYE_LINK_INTO_TOOLS
  LLVM_HAVE_TF_AOT
  LLVM_HAVE_TF_API
  LLVM_ENABLE_EXPENSIVE_CHECKS
  )

configure_lit_site_cfg(
  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py
  MAIN_CONFIG
  ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py
  PATHS
  "LLVM_SOURCE_DIR"
  "LLVM_BINARY_DIR"
  "LLVM_TOOLS_DIR"
  "LLVM_LIBS_DIR"
  "SHLIBDIR"
  )
configure_lit_site_cfg(
  ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
  ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py
  MAIN_CONFIG
  ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.cfg.py
  PATHS
  "LLVM_SOURCE_DIR"
  "LLVM_BINARY_DIR"
  "LLVM_TOOLS_DIR"
  "SHLIBDIR"
  )

# Set the depends list as a variable so that it can grow conditionally.
# NOTE: Sync the substitutions in test/lit.cfg when adding to this list.
set(LLVM_TEST_DEPENDS
          BugpointPasses
          FileCheck
          LLVMHello
          UnitTests
          bugpoint
          count
          llc
          lli
          lli-child-target
          llvm-addr2line
          llvm-ar
          llvm-as
          llvm-bcanalyzer
          llvm-bitcode-strip
          llvm-c-test
          llvm-cat
          llvm-cfi-verify
          llvm-config
          llvm-cov
          llvm-cvtres
          llvm-cxxdump
          llvm-cxxfilt
          llvm-cxxmap
          llvm-diff
          llvm-dis
          llvm-dlltool
          dsymutil
          llvm-dwarfdump
          llvm-dwp
          llvm-elfabi
          llvm-exegesis
          llvm-extract
          llvm-gsymutil
          llvm-isel-fuzzer
          llvm-ifs
          llvm-install-name-tool
          llvm-jitlink
          llvm-lib
          llvm-libtool-darwin
          llvm-link
          llvm-lipo
          llvm-locstats
          llvm-lto2
          llvm-mc
          llvm-mca
          llvm-ml
          llvm-modextract
          llvm-mt
          llvm-nm
          llvm-objcopy
          llvm-objdump
          llvm-opt-fuzzer
          llvm-opt-report
          llvm-otool
          llvm-pdbutil
          llvm-profdata
          llvm-profgen
          llvm-ranlib
          llvm-rc
          llvm-readobj
          llvm-readelf
          llvm-reduce
          llvm-rtdyld
          llvm-size
          llvm-split
          llvm-strings
          llvm-strip
          llvm-symbolizer
          llvm-tblgen
          llvm-undname
          llvm-xray
          not
          obj2yaml
          opt
          sancov
          sanstats
          split-file
          verify-uselistorder
          yaml-bench
          yaml2obj
        )

if(TARGET llvm-lto)
  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} llvm-lto)
endif()

# If Intel JIT events are supported, depend on a tool that tests the listener.
if( LLVM_USE_INTEL_JITEVENTS )
  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} llvm-jitlistener)
endif( LLVM_USE_INTEL_JITEVENTS )

if(TARGET LLVMgold)
  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} LLVMgold)
endif()

if(TARGET llvm-go)
  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} llvm-go)
endif()

if(TARGET LTO)
  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} LTO)
endif()

if(LLVM_BUILD_EXAMPLES)
  list(APPEND LLVM_TEST_DEPENDS
    Kaleidoscope-Ch3
    Kaleidoscope-Ch4
    Kaleidoscope-Ch5
    Kaleidoscope-Ch6
    Kaleidoscope-Ch7
    LLJITWithThinLTOSummaries
    )
  if(CMAKE_HOST_UNIX)
    list(APPEND LLVM_TEST_DEPENDS
      LLJITWithRemoteDebugging
      )
  endif()
  if (NOT WIN32)
    list(APPEND LLVM_TEST_DEPENDS
      Bye
      )
  endif()
endif()

if(TARGET ocaml_llvm)
  # Clear all non-OCaml cross-target dependencies when building out-of-tree.
  if(LLVM_OCAML_OUT_OF_TREE)
    set(LLVM_TEST_DEPENDS)
  endif()

  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS}
          ocaml_llvm
          ocaml_llvm_all_backends
          ocaml_llvm_analysis
          ocaml_llvm_bitreader
          ocaml_llvm_bitwriter
          ocaml_llvm_executionengine
          ocaml_llvm_irreader
          ocaml_llvm_linker
          ocaml_llvm_target
          ocaml_llvm_ipo
          ocaml_llvm_passmgr_builder
          ocaml_llvm_scalar_opts
          ocaml_llvm_transform_utils
          ocaml_llvm_vectorize
        )
endif()

add_custom_target(llvm-test-depends DEPENDS ${LLVM_TEST_DEPENDS})
set_target_properties(llvm-test-depends PROPERTIES FOLDER "Tests")

if(LLVM_BUILD_TOOLS)
  set(exclude_from_check_all "")
else()
  set(exclude_from_check_all "EXCLUDE_FROM_CHECK_ALL")
endif()

add_lit_testsuite(check-llvm "Running the LLVM regression tests"
  ${CMAKE_CURRENT_BINARY_DIR}
  ${exclude_from_check_all}
  DEPENDS ${LLVM_TEST_DEPENDS}
  )
set_target_properties(check-llvm PROPERTIES FOLDER "Tests")

add_lit_testsuites(LLVM ${CMAKE_CURRENT_SOURCE_DIR}
  ${exclude_from_check_all}
  DEPENDS ${LLVM_TEST_DEPENDS}
  )

# Setup an alias for 'check-all'.
add_custom_target(check)
add_dependencies(check check-all)
set_target_properties(check PROPERTIES FOLDER "Tests")