]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CMakeLists.txt
Vendor import of clang trunk r306956:
[FreeBSD/FreeBSD.git] / test / CMakeLists.txt
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.
3
4 if (CMAKE_CFG_INTDIR STREQUAL ".")
5   set(LLVM_BUILD_MODE ".")
6 else ()
7   set(LLVM_BUILD_MODE "%(build_mode)s")
8 endif ()
9
10 string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} CLANG_TOOLS_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
11
12 if(CLANG_BUILT_STANDALONE)
13   # Set HAVE_LIBZ according to recorded LLVM_ENABLE_ZLIB value. This
14   # value is forced to 0 if zlib was not found, so it is fine to use it
15   # instead of HAVE_LIBZ (not recorded).
16   if(LLVM_ENABLE_ZLIB)
17     set(HAVE_LIBZ 1)
18   endif()
19 endif()
20
21 llvm_canonicalize_cmake_booleans(
22   CLANG_BUILD_EXAMPLES
23   CLANG_ENABLE_ARCMT
24   CLANG_ENABLE_STATIC_ANALYZER
25   ENABLE_BACKTRACES
26   HAVE_LIBZ)
27
28 configure_lit_site_cfg(
29   ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
30   ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
31   )
32
33 configure_lit_site_cfg(
34   ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
35   ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
36   )
37
38 option(CLANG_TEST_USE_VG "Run Clang tests under Valgrind" OFF)
39 if(CLANG_TEST_USE_VG)
40   set(CLANG_TEST_EXTRA_ARGS ${CLANG_TEST_EXTRA_ARGS} "--vg")
41 endif ()
42
43 list(APPEND CLANG_TEST_DEPS
44   clang clang-headers
45   clang-format
46   c-index-test diagtool
47   clang-tblgen
48   clang-offload-bundler
49   clang-import-test
50   clang-rename
51   )
52   
53 if(CLANG_ENABLE_STATIC_ANALYZER)
54   list(APPEND CLANG_TEST_DEPS
55     clang-check
56     )
57 endif()
58
59 if (CLANG_ENABLE_ARCMT)
60   list(APPEND CLANG_TEST_DEPS
61     arcmt-test
62     c-arcmt-test
63   )
64 endif ()
65
66 if (CLANG_BUILD_EXAMPLES)
67   list(APPEND CLANG_TEST_DEPS
68     AnnotateFunctions
69     clang-interpreter
70     PrintFunctionNames
71     )
72 endif ()
73
74 if (CLANG_ENABLE_STATIC_ANALYZER AND CLANG_BUILD_EXAMPLES)
75   list(APPEND CLANG_TEST_DEPS
76     SampleAnalyzerPlugin
77     )
78 endif ()
79
80 set(CLANG_TEST_PARAMS
81   clang_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
82   )
83
84 if( NOT CLANG_BUILT_STANDALONE )
85   list(APPEND CLANG_TEST_DEPS
86     llvm-config
87     FileCheck count not
88     llc
89     llvm-bcanalyzer
90     llvm-cat
91     llvm-dis
92     llvm-modextract
93     llvm-nm
94     llvm-objdump
95     llvm-profdata
96     llvm-readobj
97     llvm-symbolizer
98     opt
99     )
100
101   if(TARGET llvm-lto)
102     list(APPEND CLANG_TEST_DEPS llvm-lto)
103   endif()
104 endif()
105
106 add_custom_target(clang-test-depends DEPENDS ${CLANG_TEST_DEPS})
107 set_target_properties(clang-test-depends PROPERTIES FOLDER "Clang tests")
108
109 add_lit_testsuite(check-clang "Running the Clang regression tests"
110   ${CMAKE_CURRENT_BINARY_DIR}
111   #LIT ${LLVM_LIT}
112   PARAMS ${CLANG_TEST_PARAMS}
113   DEPENDS ${CLANG_TEST_DEPS}
114   ARGS ${CLANG_TEST_EXTRA_ARGS}
115   )
116 set_target_properties(check-clang PROPERTIES FOLDER "Clang tests")
117
118 add_lit_testsuites(CLANG ${CMAKE_CURRENT_SOURCE_DIR}
119   PARAMS ${CLANG_TEST_PARAMS}
120   DEPENDS ${CLANG_TEST_DEPS}
121 )
122
123 # Add a legacy target spelling: clang-test
124 add_custom_target(clang-test)
125 add_dependencies(clang-test check-clang)
126 set_target_properties(clang-test PROPERTIES FOLDER "Clang tests")