[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / CMakeLists.txt
blob1d6377b5f2d8031c1f8870af446af687084c7002
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_ARCMT
9   CLANG_ENABLE_STATIC_ANALYZER
10   CLANG_PLUGIN_SUPPORT
11   CLANG_SPAWN_CC1
12   ENABLE_BACKTRACES
13   LLVM_ENABLE_ZLIB
14   LLVM_ENABLE_ZSTD
15   LLVM_ENABLE_PER_TARGET_RUNTIME_DIR
16   LLVM_ENABLE_THREADS
17   LLVM_WITH_Z3
18   PPC_LINUX_DEFAULT_IEEELONGDOUBLE
19   LLVM_TOOL_LLVM_DRIVER_BUILD
20   )
22 configure_lit_site_cfg(
23   ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
24   ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py
25   MAIN_CONFIG
26   ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py
27   PATHS
28   "LLVM_SOURCE_DIR"
29   "LLVM_BINARY_DIR"
30   "LLVM_TOOLS_DIR"
31   "LLVM_LIBS_DIR"
32   "SHLIBDIR"
33   "LLVM_LIT_TOOLS_DIR"
34   "LLVM_EXTERNAL_LIT"
35   "CLANG_BINARY_DIR"
36   "CLANG_SOURCE_DIR"
37   "CURRENT_TOOLS_DIR"
38   "CMAKE_LIBRARY_OUTPUT_DIRECTORY"
39   )
41 configure_lit_site_cfg(
42   ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.py.in
43   ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg.py
44   MAIN_CONFIG
45   ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.cfg.py
46   PATHS
47   "LLVM_SOURCE_DIR"
48   "LLVM_BINARY_DIR"
49   "LLVM_TOOLS_DIR"
50   "LLVM_LIBS_DIR"
51   "CLANG_BINARY_DIR"
52   "SHLIBDIR"
53   )
55 option(CLANG_TEST_USE_VG "Run Clang tests under Valgrind" OFF)
56 if(CLANG_TEST_USE_VG)
57   set(CLANG_TEST_EXTRA_ARGS ${CLANG_TEST_EXTRA_ARGS} "--vg")
58 endif ()
60 list(APPEND CLANG_TEST_DEPS
61   apinotes-test
62   c-index-test
63   clang
64   clang-fuzzer-dictionary
65   clang-resource-headers
66   clang-format
67   clang-tblgen
68   clang-offload-bundler
69   clang-import-test
70   clang-rename
71   clang-refactor
72   clang-diff
73   clang-scan-deps
74   diagtool
75   hmaptool
76   )
77   
78 if(CLANG_ENABLE_STATIC_ANALYZER)
79   list(APPEND CLANG_TEST_DEPS
80     clang-check
81     clang-extdef-mapping
82     )
83 endif()
85 if (CLANG_ENABLE_ARCMT)
86   list(APPEND CLANG_TEST_DEPS
87     arcmt-test
88     c-arcmt-test
89   )
90 endif ()
92 if(CLANG_BUILD_EXAMPLES AND CLANG_PLUGIN_SUPPORT)
93   list(APPEND CLANG_TEST_DEPS
94     Attribute
95     AnnotateFunctions
96     CallSuperAttr
97     PluginsOrder
98     PrintFunctionNames
99     )
100 endif ()
102 set(CLANG_TEST_PARAMS
103   USE_Z3_SOLVER=0
104   )
106 if( NOT CLANG_BUILT_STANDALONE )
107   list(APPEND CLANG_TEST_DEPS
108     llvm-config
109     FileCheck count not
110     llc
111     llvm-ar
112     llvm-as
113     llvm-bcanalyzer
114     llvm-cat
115     llvm-cxxfilt
116     llvm-dis
117     llvm-dwarfdump
118     llvm-ifs
119     llvm-lto2
120     llvm-modextract
121     llvm-nm
122     llvm-objcopy
123     llvm-objdump
124     llvm-pdbutil
125     llvm-profdata
126     llvm-rc
127     llvm-readelf
128     llvm-readobj
129     llvm-strip
130     llvm-symbolizer
131     llvm-windres
132     opt
133     split-file
134     yaml2obj
135     )
137   if(TARGET llvm-lto)
138     list(APPEND CLANG_TEST_DEPS llvm-lto)
139   endif()
140 endif()
142 if(CLANG_ENABLE_STATIC_ANALYZER)
143   if(CLANG_PLUGIN_SUPPORT AND LLVM_ENABLE_PLUGINS) # Determine if we built them
144     list(APPEND CLANG_TEST_DEPS
145       SampleAnalyzerPlugin
146       CheckerDependencyHandlingAnalyzerPlugin
147       CheckerOptionHandlingAnalyzerPlugin
148       )
149   endif()
150 endif()
152 if (HAVE_CLANG_REPL_SUPPORT)
153   list(APPEND CLANG_TEST_DEPS
154     clang-repl
155     )
156 endif()
158 # Copy gen_ast_dump_json_test.py to the clang build dir. This allows invoking
159 # it without having to pass the --clang= argument
160 configure_file(AST/gen_ast_dump_json_test.py
161   ${CLANG_BINARY_DIR}/bin/gen_ast_dump_json_test.py COPYONLY)
163 add_custom_target(clang-test-depends DEPENDS ${CLANG_TEST_DEPS})
164 set_target_properties(clang-test-depends PROPERTIES FOLDER "Clang tests")
166 add_lit_testsuite(check-clang "Running the Clang regression tests"
167   ${CMAKE_CURRENT_BINARY_DIR}
168   #LIT ${LLVM_LIT}
169   PARAMS ${CLANG_TEST_PARAMS}
170   DEPENDS ${CLANG_TEST_DEPS}
171   ARGS ${CLANG_TEST_EXTRA_ARGS}
172   )
173 set_target_properties(check-clang PROPERTIES FOLDER "Clang tests")
175 add_lit_testsuites(CLANG ${CMAKE_CURRENT_SOURCE_DIR}
176   PARAMS ${CLANG_TEST_PARAMS}
177   DEPENDS ${CLANG_TEST_DEPS}
178   FOLDER "Clang tests/Suites"
181 # Add a legacy target spelling: clang-test
182 add_custom_target(clang-test)
183 add_dependencies(clang-test check-clang)
184 set_target_properties(clang-test PROPERTIES FOLDER "Clang tests")
186 # FIXME: This logic can be removed once all buildbots have moved
187 # debuginfo-test from clang/test to llvm/projects or monorepo.
188 if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/debuginfo-tests)
189   message(WARNING "Including debuginfo-tests in clang/test is deprecated.  Move to llvm/projects or use monorepo.")
190   if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/debuginfo-tests/CMakeLists.txt)
191     add_subdirectory(debuginfo-tests)
192   endif()
193 endif()