summaryrefslogtreecommitdiff
path: root/unittests/CMakeLists.txt
blob: b001d15bcb2f162937ba0134ccd7577e226f6388 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function(add_clang_unittest test_dirname link_components used_libs)
  separate_arguments(link_components)
  set(LLVM_LINK_COMPONENTS ${link_components})
  separate_arguments(used_libs)
  set(LLVM_USED_LIBS ${used_libs})
  string(REGEX MATCH "([^/]+)$" test_name ${test_dirname})
  if (CMAKE_BUILD_TYPE)
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
      ${CLANG_BINARY_DIR}/unittests/${test_dirname}/${CMAKE_BUILD_TYPE})
  else()
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
      ${CLANG_BINARY_DIR}/unittests/${test_dirname})
  endif()
  if( NOT LLVM_BUILD_TESTS )
    set(EXCLUDE_FROM_ALL ON)
  endif()
  add_clang_executable(${test_name}Tests ${ARGN})
  add_dependencies(ClangUnitTests ${test_name}Tests)
endfunction()

add_custom_target(ClangUnitTests)

include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include)
add_definitions(-DGTEST_HAS_RTTI=0)
if( CMAKE_COMPILER_IS_GNUCXX )
  llvm_replace_compiler_option(CMAKE_CXX_FLAGS "-frtti" "-fno-rtti")
elseif( MSVC )
  llvm_replace_compiler_option(CMAKE_CXX_FLAGS "/GR" "/GR-")
endif()

if (NOT LLVM_ENABLE_THREADS)
  add_definitions(-DGTEST_HAS_PTHREAD=0)
endif()

if(SUPPORTS_NO_VARIADIC_MACROS_FLAG)
  add_definitions("-Wno-variadic-macros")
endif()

add_clang_unittest(Frontend
  "Core"
  "gtest gtest_main clangFrontend"
  Frontend/FrontendActionTest.cpp
 )