From 685f69610c735b5138cd1afd10bff48dbf08e855 Mon Sep 17 00:00:00 2001 From: dl92 Date: Thu, 8 Jan 2026 00:05:41 +0000 Subject: [PATCH] improve scalability - automatically add sub projects to the main one We want to make CMake scale cleanly so that: Adding a new tutorial folder is easy Each executable is independent each subproject would still require CMakeLists --- cplusplus/learning/CMakeLists.txt | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/cplusplus/learning/CMakeLists.txt b/cplusplus/learning/CMakeLists.txt index f5a8ad5..2ab484b 100644 --- a/cplusplus/learning/CMakeLists.txt +++ b/cplusplus/learning/CMakeLists.txt @@ -1,13 +1,27 @@ -cmake_minimum_required(VERSION 3.21) +cmake_minimum_required(VERSION 3.25) -project(cpp_learning +project(LearningCPP VERSION 0.1 LANGUAGES CXX ) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) -add_subdirectory(tut1) -add_subdirectory(tut2) + + +#add_subdirectory(tut1) +#add_subdirectory(tut2) +# vcpkg toolchain (already integrated) +if(DEFINED ENV{VCPKG_ROOT}) + set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "") +endif() + +# Add subdirectories automatically +file(GLOB SUBDIRS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/tut*) +foreach(subdir ${SUBDIRS}) + if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${subdir}) + add_subdirectory(${subdir}) + endif() +endforeach()