diff options
| author | Carlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au> | 2012-10-15 17:10:06 +1100 | 
|---|---|---|
| committer | Carlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au> | 2012-10-15 17:10:06 +1100 | 
| commit | be1de4be954c80875ad4108e0a33e8e131b2f2c0 (patch) | |
| tree | 1fbbecf276bf7c7bdcbb4dd446099d6d90eaa516 /clang/unittests/CMakeLists.txt | |
| parent | c4626a62754862d20b41e8a46a3574264ea80e6d (diff) | |
| parent | f1bd2e48c5324d3f7cda4090c87f8a5b6f463ce2 (diff) | |
Merge branch 'master' of ssh://bitbucket.org/czan/honours
Diffstat (limited to 'clang/unittests/CMakeLists.txt')
| -rw-r--r-- | clang/unittests/CMakeLists.txt | 73 | 
1 files changed, 73 insertions, 0 deletions
| diff --git a/clang/unittests/CMakeLists.txt b/clang/unittests/CMakeLists.txt new file mode 100644 index 0000000..0b3eac9 --- /dev/null +++ b/clang/unittests/CMakeLists.txt @@ -0,0 +1,73 @@ +include(LLVMParseArguments) + +# add_clang_unittest(test_dirname file1.cpp file2.cpp ... +#                    [USED_LIBS lib1 lib2] +#                    [LINK_COMPONENTS component1 component2]) +# +# Will compile the list of files together and link against the clang +# libraries in the USED_LIBS list and the llvm-config components in +# the LINK_COMPONENTS list.  Produces a binary named +# 'basename(test_dirname)Tests'. +function(add_clang_unittest) +  PARSE_ARGUMENTS(CLANG_UNITTEST "USED_LIBS;LINK_COMPONENTS" "" ${ARGN}) +  set(LLVM_LINK_COMPONENTS ${CLANG_UNITTEST_LINK_COMPONENTS}) +  set(LLVM_USED_LIBS ${CLANG_UNITTEST_USED_LIBS}) +  list(GET CLANG_UNITTEST_DEFAULT_ARGS 0 test_dirname) +  list(REMOVE_AT CLANG_UNITTEST_DEFAULT_ARGS 0) + +  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 ${CLANG_UNITTEST_DEFAULT_ARGS}) +  add_dependencies(ClangUnitTests ${test_name}Tests) +  set_target_properties(${test_name}Tests PROPERTIES FOLDER "Clang tests") +endfunction() + +add_custom_target(ClangUnitTests) +set_target_properties(ClangUnitTests PROPERTIES FOLDER "Clang tests") + +include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include) +add_definitions(-DGTEST_HAS_RTTI=0) +if( LLVM_COMPILER_IS_GCC_COMPATIBLE ) +  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(Basic +  Basic/FileManagerTest.cpp +  Basic/SourceManagerTest.cpp +  USED_LIBS gtest gtest_main clangLex + ) + +add_clang_unittest(Lex +  Lex/LexerTest.cpp +  USED_LIBS gtest gtest_main clangLex + ) + +add_clang_unittest(Frontend +  Frontend/FrontendActionTest.cpp +  USED_LIBS gtest gtest_main clangFrontend + ) + +add_clang_unittest(Tooling +  Tooling/CompilationDatabaseTest.cpp +  Tooling/ToolingTest.cpp +  USED_LIBS gtest gtest_main clangTooling + ) | 
