]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CMakeLists.txt
Vendor import of clang trunk r290819:
[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 configure_lit_site_cfg(
22   ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
23   ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
24   )
25
26 configure_lit_site_cfg(
27   ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
28   ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
29   )
30
31 option(CLANG_TEST_USE_VG "Run Clang tests under Valgrind" OFF)
32 if(CLANG_TEST_USE_VG)
33   set(CLANG_TEST_EXTRA_ARGS ${CLANG_TEST_EXTRA_ARGS} "--vg")
34 endif ()
35
36 list(APPEND CLANG_TEST_DEPS
37   clang clang-headers
38   clang-format
39   c-index-test diagtool
40   clang-tblgen
41   clang-offload-bundler
42   clang-import-test
43   )
44   
45 if(CLANG_ENABLE_STATIC_ANALYZER)
46   list(APPEND CLANG_TEST_DEPS
47     clang-check
48     )
49 endif()
50
51 if (CLANG_ENABLE_ARCMT)
52   list(APPEND CLANG_TEST_DEPS
53     arcmt-test
54     c-arcmt-test
55   )
56 endif ()
57
58 if (ENABLE_CLANG_EXAMPLES)
59   list(APPEND CLANG_TEST_DEPS
60     AnnotateFunctions
61     clang-interpreter
62     PrintFunctionNames
63     )
64 endif ()
65
66 if (ENABLE_CLANG_STATIC_ANALYZER AND ENABLE_CLANG_EXAMPLES)
67   list(APPEND CLANG_TEST_DEPS
68     SampleAnalyzerPlugin
69     )
70 endif ()
71
72 set(CLANG_TEST_PARAMS
73   clang_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
74   )
75
76 if( NOT CLANG_BUILT_STANDALONE )
77   list(APPEND CLANG_TEST_DEPS
78     llvm-config
79     FileCheck count not
80     llc
81     llvm-bcanalyzer
82     llvm-nm
83     llvm-objdump
84     llvm-profdata
85     llvm-readobj
86     llvm-symbolizer
87     opt
88     )
89
90   if(TARGET llvm-lto)
91     list(APPEND CLANG_TEST_DEPS llvm-lto)
92   endif()
93 endif()
94
95 add_custom_target(clang-test-depends DEPENDS ${CLANG_TEST_DEPS})
96 set_target_properties(clang-test-depends PROPERTIES FOLDER "Clang tests")
97
98 add_lit_testsuite(check-clang "Running the Clang regression tests"
99   ${CMAKE_CURRENT_BINARY_DIR}
100   #LIT ${LLVM_LIT}
101   PARAMS ${CLANG_TEST_PARAMS}
102   DEPENDS ${CLANG_TEST_DEPS}
103   ARGS ${CLANG_TEST_EXTRA_ARGS}
104   )
105 set_target_properties(check-clang PROPERTIES FOLDER "Clang tests")
106
107 add_lit_testsuites(CLANG ${CMAKE_CURRENT_SOURCE_DIR}
108   PARAMS ${CLANG_TEST_PARAMS}
109   DEPENDS ${CLANG_TEST_DEPS}
110 )
111
112 # Add a legacy target spelling: clang-test
113 add_custom_target(clang-test)
114 add_dependencies(clang-test check-clang)
115 set_target_properties(clang-test PROPERTIES FOLDER "Clang tests")