Advertisement
Guest User

Untitled

a guest
Jan 4th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CMake 1.80 KB | None | 0 0
  1. cmake_minimum_required(VERSION 3.4)
  2.  
  3. set(CMAKE_CXX_STANDARD 17)
  4. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  5.  
  6. option(BUILD_COVERAGE "Build coverage" OFF)
  7.  
  8. set(
  9.         HUNTER_CACHE_SERVERS
  10.         "https://github.com/bmstu-iu8-cpp-sem-3/hunter-cache"
  11.         CACHE STRING "Default cache server"
  12. )
  13.  
  14. include("tools/gate/cmake/HunterGate.cmake")
  15.  
  16. huntergate(
  17.         URL "https://github.com/ruslo/hunter/archive/v0.23.34.tar.gz"
  18.         SHA1 "70287b1ffa810ee4e952052a9adff9b4856d0d54"
  19. )
  20.  
  21.  
  22. project(Stack)
  23. string(APPEND CMAKE_CXX_FLAGS " -pedantic -Werror -Wall -Wextra")
  24. string(APPEND CMAKE_CXX_FLAGS " -Wno-unused-command-line-argument")
  25. string(APPEND CMAKE_CXX_FLAGS " -Wshadow -Wnon-virtual-dtor")
  26.  
  27. hunter_add_package(GTest)
  28. find_package(GTest CONFIG REQUIRED)
  29.  
  30.  
  31. add_library(Stack INTERFACE
  32.         )
  33. add_executable(tests
  34.         ${CMAKE_CURRENT_SOURCE_DIR}/tests/test.cpp
  35.         )
  36. add_executable(demo
  37.         ${CMAKE_CURRENT_SOURCE_DIR}/sources/example.cpp
  38.         ${CMAKE_CURRENT_SOURCE_DIR}/include/Stack.h
  39.         )
  40.  
  41. target_include_directories(Stack
  42.         INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include
  43.         )
  44. target_include_directories(tests
  45.         PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include
  46.         )
  47.  
  48. target_include_directories(demo
  49.         PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include
  50.         )
  51.  
  52. target_link_libraries(tests GTest::main Stack)
  53.  
  54. target_link_libraries(demo Stack)
  55.  
  56.  
  57. enable_testing()
  58. add_test(NAME unit_tests COMMAND tests)
  59.  
  60. if (BUILD_COVERAGE)
  61.     set(ENABLE_COVERAGE ON CACHE BOOL "Enable coverage build." FORCE)
  62.     list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
  63.     find_package(codecov)
  64.     add_coverage(tests)
  65.     add_coverage(demo)
  66.     list(APPEND LCOV_REMOVE_PATTERNS "'${PROJECT_SOURCE_DIR}/tests/*'")
  67.     coverage_evaluate()
  68. endif ()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement