From 08c5e62dbc5f40d57ecc2b417bbd7b6bf7d2e134 Mon Sep 17 00:00:00 2001 From: aouxwoux <81102668+aouxwoux@users.noreply.github.com> Date: Sun, 12 Jul 2026 08:35:53 +0530 Subject: [PATCH] fix: report missing source directories --- src/cmake_generator.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/cmake_generator.cpp b/src/cmake_generator.cpp index 806c845..a66710d 100644 --- a/src/cmake_generator.cpp +++ b/src/cmake_generator.cpp @@ -107,14 +107,21 @@ static std::vector expand_cmake_path(const fs::path &source_path, cons std::vector paths; if (stem == "*") { - for (const auto &f : fs::directory_iterator(toml_dir / source_path.parent_path(), fs::directory_options::follow_directory_symlink)) { + const auto directory = toml_dir / source_path.parent_path(); + if (!fs::is_directory(directory)) { + throw std::runtime_error("Source directory not found: " + source_path.parent_path().string()); + } + for (const auto &f : fs::directory_iterator(directory, fs::directory_options::follow_directory_symlink)) { if (!f.is_directory() && has_extension(f.path(), extension)) { paths.push_back(fs::relative(f, toml_dir)); } } } else if (stem == "**") { - for (const auto &f : - fs::recursive_directory_iterator(toml_dir / source_path.parent_path(), fs::directory_options::follow_directory_symlink)) { + const auto directory = toml_dir / source_path.parent_path(); + if (!fs::is_directory(directory)) { + throw std::runtime_error("Source directory not found: " + source_path.parent_path().string()); + } + for (const auto &f : fs::recursive_directory_iterator(directory, fs::directory_options::follow_directory_symlink)) { if (!f.is_directory() && has_extension(f.path(), extension)) { paths.push_back(fs::relative(f, toml_dir)); }