From ebf938bf3cc8102ce9988cb57554d87cceb5783b Mon Sep 17 00:00:00 2001 From: 1Bc <58879458+1Bc@users.noreply.github.com> Date: Tue, 24 Mar 2026 00:03:35 +0100 Subject: [PATCH] Set up CMake for Pizzas project with tests --- CMakeLists.txt | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5f24bee..a8dd570 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,31 @@ cmake_minimum_required(VERSION 3.11.0) +project(Pizzas) -# TODO: Write proper build system :) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +include(FetchContent) +FetchContent_Declare( + googletest + URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip +) +set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +FetchContent_MakeAvailable(googletest) + +set(SRC_LIST + src/Funghi.cpp + src/Margherita.cpp + src/Pizza.cpp + src/Pizzeria.cpp) + +add_library(${PROJECT_NAME}-lib STATIC ${SRC_LIST}) +target_include_directories(${PROJECT_NAME}-lib PUBLIC src) +add_executable(${PROJECT_NAME} src/main.cpp) +target_link_libraries(${PROJECT_NAME} ${PROJECT_NAME}-lib pthread) + +enable_testing() +add_executable(${PROJECT_NAME}-ut test/PizzeriaTest.cpp) +target_link_libraries(${PROJECT_NAME}-ut ${PROJECT_NAME}-lib GTest::gmock_main) + +include(GoogleTest) +gtest_discover_tests(${PROJECT_NAME}-ut)