[Github] Label lldb-dap PRs (#125139)
[llvm-project.git] / clang / test / CMakeLists.txt
blob9ce8365910d5594fc656fbe7fca781ebe420c0c5
1 # Test runner infrastructure for Clang. This configures the Clang test trees
2 # for use by Lit, and delegates to LLVM's lit test handlers.
4 llvm_canonicalize_cmake_booleans(
5   CLANG_BUILD_EXAMPLES
6   CLANG_BUILT_STANDALONE
7   CLANG_DEFAULT_PIE_ON_LINUX
8   CLANG_ENABLE_STATIC_ANALYZER
9   CLANG_PLUGIN_SUPPORT
10   CLANG_SPAWN_CC1
11   CLANG_ENABLE_CIR
12   ENABLE_BACKTRACES
13   LLVM_BUILD_EXAMPLES
14   LLVM_BYE_LINK_INTO_TOOLS
15   LLVM_ENABLE_PLUGINS
16   LLVM_ENABLE_ZLIB
17   LLVM_ENABLE_ZSTD
18   LLVM_ENABLE_PER_TARGET_RUNTIME_DIR
19   LLVM_ENABLE_THREADS
20   LLVM_ENABLE_REVERSE_ITERATION
21   LLVM_WITH_Z3
22   PPC_LINUX_DEFAULT_IEEELONGDOUBLE
23   LLVM_TOOL_LLVM_DRIVER_BUILD
24   )
26 configure_lit_site_cfg(
27   ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
28   ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py
29   MAIN_CONFIG
30   ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py
31   PATHS
32   "LLVM_SOURCE_DIR"
33   "LLVM_BINARY_DIR"
34   "LLVM_TOOLS_DIR"
35   "LLVM_LIBS_DIR"
36   "SHLIBDIR"
37   "LLVM_LIT_TOOLS_DIR"
38   "LLVM_EXTERNAL_LIT"
39   "CLANG_BINARY_DIR"
40   "CLANG_SOURCE_DIR"
41   "CURRENT_TOOLS_DIR"
42   "CMAKE_LIBRARY_OUTPUT_DIRECTORY"
43   )
45 configure_lit_site_cfg(
46   ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
47   ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py
48   MAIN_CONFIG
49   ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.cfg.py
50   PATHS
51   "LLVM_SOURCE_DIR"
52   "LLVM_BINARY_DIR"
53   "LLVM_TOOLS_DIR"
54   "LLVM_LIBS_DIR"
55   "CLANG_BINARY_DIR"
56   "SHLIBDIR"
57   )
59 option(CLANG_TEST_USE_VG "Run Clang tests under Valgrind" OFF)
60 if(CLANG_TEST_USE_VG)
61   set(CLANG_TEST_EXTRA_ARGS ${CLANG_TEST_EXTRA_ARGS} "--vg")
62 endif ()
64 list(APPEND CLANG_TEST_DEPS
65   apinotes-test
66   c-index-test
67   clang
68   clang-fuzzer-dictionary
69   clang-resource-headers
70   clang-format
71   clang-tblgen
72   clang-offload-bundler
73   clang-import-test
74   clang-refactor
75   clang-diff
76   clang-installapi
77   clang-scan-deps
78   clang-linker-wrapper
79   clang-nvlink-wrapper
80   clang-offload-bundler
81   clang-offload-packager
82   clang-sycl-linker
83   diagtool
84   hmaptool
85   )
86   
87 if(CLANG_ENABLE_STATIC_ANALYZER)
88   list(APPEND CLANG_TEST_DEPS
89     clang-check
90     clang-extdef-mapping
91     )
92 endif()
94 if(CLANG_BUILD_EXAMPLES AND CLANG_PLUGIN_SUPPORT)
95   list(APPEND CLANG_TEST_DEPS
96     Attribute
97     AnnotateFunctions
98     CallSuperAttr
99     PluginsOrder
100     PrintFunctionNames
101     LLVMPrintFunctionNames
102     )
103 endif ()
105 set(CLANG_TEST_PARAMS
106   USE_Z3_SOLVER=0
107   )
109 if( NOT CLANG_BUILT_STANDALONE )
110   list(APPEND CLANG_TEST_DEPS
111     llvm-config
112     FileCheck count not
113     llc
114     llvm-ar
115     llvm-as
116     llvm-bcanalyzer
117     llvm-cat
118     llvm-cxxfilt
119     llvm-dis
120     llvm-dwarfdump
121     llvm-ifs
122     llvm-lto2
123     llvm-mc
124     llvm-modextract
125     llvm-nm
126     llvm-objcopy
127     llvm-objdump
128     llvm-pdbutil
129     llvm-profdata
130     llvm-rc
131     llvm-readelf
132     llvm-readobj
133     llvm-readtapi
134     llvm-strip
135     llvm-symbolizer
136     llvm-windres
137     obj2yaml
138     opt
139     split-file
140     yaml2obj
141     )
143   if(TARGET llvm-lto)
144     list(APPEND CLANG_TEST_DEPS llvm-lto)
145   endif()
146 endif()
148 if(CLANG_ENABLE_STATIC_ANALYZER)
149   if(CLANG_PLUGIN_SUPPORT AND LLVM_ENABLE_PLUGINS) # Determine if we built them
150     list(APPEND CLANG_TEST_DEPS
151       SampleAnalyzerPlugin
152       CheckerDependencyHandlingAnalyzerPlugin
153       CheckerOptionHandlingAnalyzerPlugin
154       )
155   endif()
156 endif()
158 if (HAVE_CLANG_REPL_SUPPORT)
159   list(APPEND CLANG_TEST_DEPS
160     clang-repl
161     )
162 endif()
164 # Copy gen_ast_dump_json_test.py to the clang build dir. This allows invoking
165 # it without having to pass the --clang= argument
166 configure_file(AST/gen_ast_dump_json_test.py
167   ${CLANG_BINARY_DIR}/bin/gen_ast_dump_json_test.py COPYONLY)
169 add_custom_target(clang-test-depends DEPENDS ${CLANG_TEST_DEPS})
170 set_target_properties(clang-test-depends PROPERTIES FOLDER "Clang/Tests")
172 add_lit_testsuite(check-clang "Running the Clang regression tests"
173   ${CMAKE_CURRENT_BINARY_DIR}
174   #LIT ${LLVM_LIT}
175   PARAMS ${CLANG_TEST_PARAMS}
176   DEPENDS ${CLANG_TEST_DEPS}
177   ARGS ${CLANG_TEST_EXTRA_ARGS}
178   )
180 add_lit_testsuites(CLANG ${CMAKE_CURRENT_SOURCE_DIR}
181   PARAMS ${CLANG_TEST_PARAMS}
182   DEPENDS ${CLANG_TEST_DEPS}
183   FOLDER "Clang tests/Suites"
186 # Add a legacy target spelling: clang-test
187 add_custom_target(clang-test)
188 add_dependencies(clang-test check-clang)
189 set_target_properties(clang-test PROPERTIES FOLDER "Clang/Tests")
191 # FIXME: This logic can be removed once all buildbots have moved
192 # debuginfo-test from clang/test to llvm/projects or monorepo.
193 if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/debuginfo-tests)
194   message(WARNING "Including debuginfo-tests in clang/test is deprecated.  Move to llvm/projects or use monorepo.")
195   if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/debuginfo-tests/CMakeLists.txt)
196     add_subdirectory(debuginfo-tests)
197   endif()
198 endif()