Jeffrey Yasskin | cd3858b | 2011-02-15 07:54:28 +0000 | [diff] [blame^] | 1 | function(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) |
| 15 | endfunction() |
| 16 | |
| 17 | add_custom_target(ClangUnitTests) |
| 18 | |
| 19 | include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include) |
| 20 | add_definitions(-DGTEST_HAS_RTTI=0) |
| 21 | if( CMAKE_COMPILER_IS_GNUCXX ) |
| 22 | llvm_replace_compiler_option(CMAKE_CXX_FLAGS "-frtti" "-fno-rtti") |
| 23 | elseif( MSVC ) |
| 24 | llvm_replace_compiler_option(CMAKE_CXX_FLAGS "/GR" "/GR-") |
| 25 | endif() |
| 26 | |
| 27 | if (NOT LLVM_ENABLE_THREADS) |
| 28 | add_definitions(-DGTEST_HAS_PTHREAD=0) |
| 29 | endif() |
| 30 | |
| 31 | if(SUPPORTS_NO_VARIADIC_MACROS_FLAG) |
| 32 | add_definitions("-Wno-variadic-macros") |
| 33 | endif() |
| 34 | |
| 35 | set(LLVM_LINK_COMPONENTS |
| 36 | Core |
| 37 | ) |
| 38 | |
| 39 | set(LLVM_USED_LIBS |
| 40 | gtest |
| 41 | gtest_main |
| 42 | clangFrontend |
| 43 | ) |
| 44 | |
| 45 | add_clang_unittest(Frontend |
| 46 | Frontend/FrontendActionTest.cpp |
| 47 | ) |