Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cmake_minimum_required(VERSION 3.4)
- set(CMAKE_CXX_STANDARD 17)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
- option(BUILD_COVERAGE "Build coverage" OFF)
- set(
- HUNTER_CACHE_SERVERS
- "https://github.com/bmstu-iu8-cpp-sem-3/hunter-cache"
- CACHE STRING "Default cache server"
- )
- include("tools/gate/cmake/HunterGate.cmake")
- huntergate(
- URL "https://github.com/ruslo/hunter/archive/v0.23.34.tar.gz"
- SHA1 "70287b1ffa810ee4e952052a9adff9b4856d0d54"
- )
- project(Stack)
- string(APPEND CMAKE_CXX_FLAGS " -pedantic -Werror -Wall -Wextra")
- string(APPEND CMAKE_CXX_FLAGS " -Wno-unused-command-line-argument")
- string(APPEND CMAKE_CXX_FLAGS " -Wshadow -Wnon-virtual-dtor")
- hunter_add_package(GTest)
- find_package(GTest CONFIG REQUIRED)
- add_library(Stack INTERFACE
- )
- add_executable(tests
- ${CMAKE_CURRENT_SOURCE_DIR}/tests/test.cpp
- )
- add_executable(demo
- ${CMAKE_CURRENT_SOURCE_DIR}/sources/example.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/include/Stack.h
- )
- target_include_directories(Stack
- INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include
- )
- target_include_directories(tests
- PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include
- )
- target_include_directories(demo
- PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include
- )
- target_link_libraries(tests GTest::main Stack)
- target_link_libraries(demo Stack)
- enable_testing()
- add_test(NAME unit_tests COMMAND tests)
- if (BUILD_COVERAGE)
- set(ENABLE_COVERAGE ON CACHE BOOL "Enable coverage build." FORCE)
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
- find_package(codecov)
- add_coverage(tests)
- add_coverage(demo)
- list(APPEND LCOV_REMOVE_PATTERNS "'${PROJECT_SOURCE_DIR}/tests/*'")
- coverage_evaluate()
- endif ()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement