• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1set(CLANG_TEST_DIRECTORIES
2  "Analysis"
3  "CodeCompletion"
4  "CodeGen"
5  "CodeGenCUDA"
6  "CodeGenCXX"
7  "CodeGenObjC"
8  "CodeGenOpenCL"
9  "Coverage"
10  "CXX"
11  "Driver"
12  "FixIt"
13  "Frontend"
14  "Headers"
15  "Index"
16  "Lexer"
17  "Misc"
18  "PCH"
19  "Parser"
20  "Preprocessor"
21  "Rewriter"
22  "Sema"
23  "SemaCUDA"
24  "SemaCXX"
25  "SemaObjC"
26  "SemaObjCXX"
27  "SemaOpenCL"
28  "SemaTemplate")
29
30set(LLVM_SOURCE_DIR "${LLVM_MAIN_SRC_DIR}")
31set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}")
32set(LLVM_BUILD_MODE "%(build_mode)s")
33set(LLVM_TOOLS_DIR "${LLVM_TOOLS_BINARY_DIR}/%(build_config)s")
34set(LLVM_LIBS_DIR "${LLVM_BINARY_DIR}/lib/%(build_config)s")
35set(CLANG_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..")
36set(CLANG_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/..")
37if(BUILD_SHARED_LIBS)
38  set(ENABLE_SHARED 1)
39else()
40  set(ENABLE_SHARED 0)
41endif(BUILD_SHARED_LIBS)
42
43configure_file(
44  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
45  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
46
47configure_file(
48  ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
49  ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
50  @ONLY)
51
52include(FindPythonInterp)
53if(PYTHONINTERP_FOUND)
54  if( LLVM_MAIN_SRC_DIR )
55    set(LIT "${LLVM_SOURCE_DIR}/utils/lit/lit.py")
56  else()
57    set(LIT "${PATH_TO_LLVM_BUILD}/bin/${CMAKE_CFG_INTDIR}/llvm-lit")
58    # Installed LLVM does not contain ${CMAKE_CFG_INTDIR} in paths.
59    if( NOT EXISTS ${LIT} )
60      set(LIT "${PATH_TO_LLVM_BUILD}/bin/llvm-lit")
61    endif()
62  endif()
63
64  if( PATH_TO_LLVM_BUILD )
65    set(CLANG_TEST_EXTRA_ARGS "--path=${CLANG_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}")
66  endif()
67
68  option(CLANG_TEST_USE_VG "Run Clang tests under Valgrind" OFF)
69  if(CLANG_TEST_USE_VG)
70    set(CLANG_TEST_EXTRA_ARGS ${CLANG_TEST_EXTRA_ARGS} "--vg")
71  endif ()
72
73  set(LIT_ARGS "${CLANG_TEST_EXTRA_ARGS} ${LLVM_LIT_ARGS}")
74  separate_arguments(LIT_ARGS)
75
76  add_custom_target(clang-test.deps)
77  set_target_properties(clang-test.deps PROPERTIES FOLDER "Clang tests")
78
79  add_custom_target(clang-test
80    COMMAND ${PYTHON_EXECUTABLE}
81                ${LIT}
82                --param clang_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
83                --param clang_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
84                --param build_config=${CMAKE_CFG_INTDIR}
85                --param build_mode=${RUNTIME_BUILD_MODE}
86                ${LIT_ARGS}
87                ${CMAKE_CURRENT_BINARY_DIR}
88                COMMENT "Running Clang regression tests")
89
90  if( NOT CLANG_BUILT_STANDALONE )
91    add_custom_target(check-all
92      COMMAND ${PYTHON_EXECUTABLE}
93                ${LIT}
94                --param build_config=${CMAKE_CFG_INTDIR}
95                --param build_mode=${RUNTIME_BUILD_MODE}
96                ${LIT_ARGS}
97                ${LLVM_BINARY_DIR}/test
98                ${CMAKE_CURRENT_BINARY_DIR}
99                COMMENT "Running Clang and LLVM regression tests")
100    add_dependencies(check-all clang-test.deps)
101    if ( LLVM_INCLUDE_TESTS )
102      add_dependencies(clang-test.deps ClangUnitTests)
103      add_dependencies(check-all check.deps)
104    endif ( LLVM_INCLUDE_TESTS )
105    add_dependencies(clang-test.deps
106                     llvm-dis llc opt
107                     FileCheck count not
108                     )
109  endif()
110
111  add_dependencies(clang-test clang-test.deps)
112  add_dependencies(clang-test.deps
113                 clang clang-headers c-index-test diagtool arcmt-test c-arcmt-test
114                 clang-check
115                 )
116
117endif()
118