mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-12 12:22:12 +00:00
55 lines
1.7 KiB
CMake
55 lines
1.7 KiB
CMake
cmake_minimum_required(VERSION 3.14..3.16)
|
|
set(CMAKE_VERBOSE_MAKEFILE ON)
|
|
project(GildedRoseKata VERSION 1.0
|
|
DESCRIPTION "The GildedRose Refactoring kata for an approval testing approach"
|
|
LANGUAGES CXX)
|
|
include(FetchContent)
|
|
|
|
FetchContent_Declare(
|
|
catch2
|
|
GIT_REPOSITORY https://github.com/catchorg/Catch2.git
|
|
GIT_TAG v2.13.9
|
|
)
|
|
FetchContent_MakeAvailable(catch2)
|
|
LIST(APPEND CMAKE_MODULE_PATH
|
|
${catch2_SOURCE_DIR}/contrib
|
|
)
|
|
|
|
FetchContent_Declare(
|
|
approvaltests_ho
|
|
URL https://github.com/approvals/ApprovalTests.cpp/releases/download/v.10.0.0/ApprovalTests.v.10.0.0.hpp
|
|
DOWNLOAD_NO_EXTRACT TRUE
|
|
DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}/approvaltests
|
|
DOWNLOAD_NAME ApprovalTests.v.10.0.0.hpp
|
|
)
|
|
FetchContent_GetProperties(approvaltests_ho)
|
|
if (NOT approvaltests_ho_POPULATED)
|
|
FetchContent_Populate(approvaltests_ho)
|
|
endif ()
|
|
add_library(approvaltests INTERFACE)
|
|
target_include_directories(approvaltests
|
|
INTERFACE ${CMAKE_CURRENT_BINARY_DIR}/approvaltests
|
|
INTERFACE ${catch2_SOURCE_DIR}/single_include/catch2
|
|
)
|
|
|
|
if( MINGW )
|
|
# https://stackoverflow.com/questions/31890021/mingw-too-many-sections-bug-while-compiling-huge-header-file-in-qt
|
|
set (CMAKE_CXX_FLAGS "-Wa,-mbig-obj ")
|
|
endif()
|
|
|
|
add_executable(gildedrose_catch2
|
|
src/GildedRose.h
|
|
src/GildedRose.cc
|
|
test/gildedrose_catch.cpp
|
|
test/main.cpp)
|
|
set_target_properties(gildedrose_catch2 PROPERTIES CXX_STANDARD 11)
|
|
target_include_directories(gildedrose_catch2
|
|
PUBLIC src)
|
|
target_link_libraries(gildedrose_catch2 Catch2::Catch2 approvaltests)
|
|
|
|
|
|
|
|
include(CTest)
|
|
include(ParseAndAddCatchTests)
|
|
ParseAndAddCatchTests(gildedrose_catch2)
|