@@ -304,6 +304,12 @@ struct SourceFiles
304304 [[nodiscard]] bool removeSelection (StringView directory, StringView filter);
305305};
306306
307+ // / @brief Coverage specific flags
308+ struct CoverageFlags
309+ {
310+ String excludeRegex; // /< Regex of files to exclude from coverage
311+ };
312+
307313// / @brief Groups SC::Build::CompileFlags and SC::Build::LinkFlags for a given SC::Build::Architecture
308314struct Configuration
309315{
@@ -350,6 +356,8 @@ struct Configuration
350356 CompileFlags compile; // /< Configuration compile flags
351357 LinkFlags link; // /< Configuration link flags
352358
359+ CoverageFlags coverage; // /< Configuration coverage flags
360+
353361 Architecture::Type architecture = Architecture::Any; // /< Restrict this configuration to a specific architecture
354362
355363 Configuration ();
@@ -491,6 +499,10 @@ struct Definition
491499 // / @param workspaceName Name of the workspace to generate
492500 // / @param parameters Set of parameters with the wanted platforms, architectures and generators to generate
493501 Result configure (StringView workspaceName, const Parameters& parameters) const ;
502+
503+ // / @brief Finds the configuration with given name in given workspace and project
504+ [[nodiscard]] bool findConfiguration (StringView workspaceName, StringView projectName, StringView configurationName,
505+ Workspace*& workspace, Project*& project, Configuration*& configuration);
494506};
495507
496508// ! @}
@@ -516,10 +528,12 @@ struct Action
516528 Type action = Configure;
517529
518530 Parameters parameters;
519- StringView configuration ;
520- StringView target ;
531+ StringView configurationName ;
532+ StringView projectName ;
521533 StringView workspaceName;
522534
535+ bool allTargets = false ;
536+
523537 Span<const StringView> additionalArguments;
524538
525539 private:
0 commit comments