blob: c7c773348f1e849201f00cc6b936b5e00bcd039c [file] [log] [blame]
Jeffrey Yasskincd3858b2011-02-15 07:54:28 +00001function(add_clang_unittest test_dirname)
2 string(REGEX MATCH "([^/]+)$" test_name ${test_dirname})
3 if (CMAKE_BUILD_TYPE)
4 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
5 ${CLANG_BINARY_DIR}/unittests/${test_dirname}/${CMAKE_BUILD_TYPE})
6 else()
7 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
8 ${CLANG_BINARY_DIR}/unittests/${test_dirname})
9 endif()
10 if( NOT LLVM_BUILD_TESTS )
11 set(EXCLUDE_FROM_ALL ON)
12 endif()
13 add_clang_executable(${test_name}Tests ${ARGN})
14 add_dependencies(ClangUnitTests ${test_name}Tests)
15endfunction()
16
17add_custom_target(ClangUnitTests)
18
19include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include)
20add_definitions(-DGTEST_HAS_RTTI=0)
21if( CMAKE_COMPILER_IS_GNUCXX )
22 llvm_replace_compiler_option(CMAKE_CXX_FLAGS "-frtti" "-fno-rtti")
23elseif( MSVC )
24 llvm_replace_compiler_option(CMAKE_CXX_FLAGS "/GR" "/GR-")
25endif()
26
27if (NOT LLVM_ENABLE_THREADS)
28 add_definitions(-DGTEST_HAS_PTHREAD=0)
29endif()
30
31if(SUPPORTS_NO_VARIADIC_MACROS_FLAG)
32 add_definitions("-Wno-variadic-macros")
33endif()
34
35set(LLVM_LINK_COMPONENTS
36 Core
37 )
38
39set(LLVM_USED_LIBS
40 gtest
41 gtest_main
42 clangFrontend
43 )
44
45add_clang_unittest(Frontend
46 Frontend/FrontendActionTest.cpp
47 )