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(json)
- 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(${PROJECT_NAME} STATIC
- # enum your files and delete this comment
- ${CMAKE_CURRENT_SOURCE_DIR}/sources/json.cpp
- # json.h
- # ${CMAKE_CURRENT_SOURCE_DIR}/sources/source.cpp
- )
- add_executable(tests
- # TODO: enum your files and delete this comment
- ${CMAKE_CURRENT_SOURCE_DIR}/tests/test.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/sources/json.cpp
- )
- find_library(
- GTEST_LOCAL_LIB
- NAMES gtest
- PATHS ${GTEST_ROOT}/lib
- )
- find_library(
- GTEST_LOCAL_LIB_MAIN
- NAMES gtest_main
- PATHS ${GTEST_ROOT}/lib
- )
- target_include_directories(json
- PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include
- )
- target_include_directories(tests
- PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include
- ${GTEST_ROOT}/include
- )
- # target_link_libraries(tests GTest::main json)
- target_link_libraries(tests
- pthread
- ${PROJECT_NAME}
- ${GTEST_LOCAL_LIB}
- ${GTEST_LOCAL_LIB_MAIN}
- )
- 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(json)
- add_coverage(tests)
- list(APPEND LCOV_REMOVE_PATTERNS "'${PROJECT_SOURCE_DIR}/tests/*'")
- coverage_evaluate()
- endif()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement