From 080823e6f5c8245182a8c3c2a15816a38d810d51 Mon Sep 17 00:00:00 2001 From: Firewire Date: Sun, 28 Jun 2026 06:36:42 -0400 Subject: [PATCH] Add minsizerel --- CMakeLists.txt | 2 +- src/main.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8c02301..9cc9e01 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 4.2) +cmake_minimum_required(VERSION 3.28) project(build_script) set(CMAKE_CXX_STANDARD 26) diff --git a/src/main.cpp b/src/main.cpp index 96e4013..648c874 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -26,6 +26,7 @@ enum BuildType { debug, release, relwithdeb, + minsizerel, }; struct Options { @@ -167,6 +168,20 @@ void checkBuildDirs(const BuildType buildType) { ->info("Creating 'build/relwithdeb' directory."); createDir("build/relwithdeb"); } + + spdlog::get("filesystem") + ->debug("Checking 'build/minsizerel' directory."); + if (!std::filesystem::is_directory("build/minsizerel")) { + spdlog::get("filesystem") + ->warn("'build/minsizerel' is not a directory. Deleting."); + deleteDir("build/minsizerel"); + } + if (!std::filesystem::exists("build/minsizerel")) { + spdlog::get("filesystem") + ->info("Creating 'build/minsizerel' directory."); + createDir("build/minsizerel"); + }; + break; case debug: spdlog::get("filesystem") @@ -209,6 +224,21 @@ void checkBuildDirs(const BuildType buildType) { ->info("Creating 'build/relwithdeb' directory."); createDir("build/relwithdeb"); }; + break; + case minsizerel: + spdlog::get("filesystem") + ->debug("Checking 'build/minsizerel' directory."); + if (!std::filesystem::is_directory("build/minsizerel")) { + spdlog::get("filesystem") + ->warn("'build/minsizerel' is not a directory. Deleting."); + deleteDir("build/minsizerel"); + } + if (!std::filesystem::exists("build/minsizerel")) { + spdlog::get("filesystem") + ->info("Creating 'build/minsizerel' directory."); + createDir("build/minsizerel"); + }; + break; } spdlog::get("filesystem")->info("All directories checked."); @@ -300,6 +330,8 @@ void buildProject(const BuildType buildType) { buildDir("build/release"); configureDir("build/relwithdeb", "RelWithDeb"); buildDir("build/relwithdeb"); + configureDir("build/minsizerel", "MinSizeRel"); + buildDir("build/minsizerel"); break; case debug: configureDir("build/debug", "Debug"); @@ -313,6 +345,10 @@ void buildProject(const BuildType buildType) { configureDir("build/relwithdeb", "RelWithDeb"); buildDir("build/relwithdeb"); break; + case minsizerel: + configureDir("build/minsizerel", "MinSizeRel"); + buildDir("build/minsizerel"); + break; } } @@ -323,6 +359,7 @@ void configureProject(const BuildType buildType) { configureDir("build/debug", "Debug"); configureDir("build/release", "Release"); configureDir("build/relwithdeb", "RelWithDeb"); + configureDir("build/minsizerel", "MinSizeRel"); break; case debug: configureDir("build/debug", "Debug"); @@ -333,6 +370,9 @@ void configureProject(const BuildType buildType) { case relwithdeb: configureDir("build/RelWithDeb", "RelWithDeb"); break; + case minsizerel: + configureDir("build/minsizerel", "MinSizeRel"); + break; } } @@ -344,6 +384,7 @@ void cleanProject(const BuildType buildType) { cleanDir("build/debug"); cleanDir("build/release"); cleanDir("build/relwithdeb"); + cleanDir("build/minsizerel"); break; case debug: cleanDir("build/debug"); @@ -354,6 +395,9 @@ void cleanProject(const BuildType buildType) { case relwithdeb: cleanDir("build/RelWithDeb"); break; + case minsizerel: + cleanDir("build/minsizerel"); + break; } } @@ -371,6 +415,9 @@ void deleteProject(const BuildType buildType) { case relwithdeb: deleteDir("build/relwithdeb"); break; + case minsizerel: + deleteDir("build/minsizerel"); + break; } }