|
CPGen
C++ project generator
|
Resolves module names to their fully parsed ResolvedModule descriptors. More...
#include <ModuleResolver.hpp>
Public Member Functions | |
| ModuleResolver () | |
Constructs a ModuleResolver and resolves template search paths. | |
| std::pair< ResolvedModule, std::vector< TargetInjection > > | resolveModule (const std::string &module_name) |
| Locate and parse a module by name. | |
Resolves module names to their fully parsed ResolvedModule descriptors.
On construction the resolver builds a list of candidate template directories (see resolvePaths). Subsequent resolveModule calls search those directories in priority order and parse the first matching JSON file.
~/.config/cpgen/templates (user-local)/usr/local/share/cpgen/templates (system-wide, local install)/usr/share/cpgen/templates (system-wide, package manager install) <executable_dir>/templates (development in-tree build)| std::runtime_error | from the constructor if none of the candidate paths exist on the current machine. |
| ModuleResolver::ModuleResolver | ( | ) |
Constructs a ModuleResolver and resolves template search paths.
| std::runtime_error | If no valid template directory is found. |
| std::pair< ResolvedModule, std::vector< TargetInjection > > ModuleResolver::resolveModule | ( | const std::string & | module_name | ) |
Locate and parse a module by name.
Searches m_resolved_paths for a file at <path>/modules/<module_name>/<module_name>.json and parses it.
| module_name | Identifier of the module to resolve (e.g. "gtest"). |
std::vector<TargetInjection> — CMake snippets for each target the module contributes to. | std::runtime_error | If the module JSON file cannot be found or opened. |