CPGen
C++ project generator
Loading...
Searching...
No Matches
ScaffoldEmitter.hpp
Go to the documentation of this file.
1#pragma once
2
11
12#include <filesystem>
13
24class ScaffoldEmitter : public Emitter {
25public:
31 explicit ScaffoldEmitter(std::filesystem::path template_root);
32
33 [[nodiscard]] std::vector<OutputFile>
34 emit(const ResolvedProject &project) override;
35
36private:
37 [[nodiscard]] static std::string
38 generateMainCpp(const std::string &project_name);
39 [[nodiscard]] static std::string generateGitignore();
40 [[nodiscard]] static std::string
41 generateReadme(const std::string &project_name);
42 [[nodiscard]] std::string generateTestMain(const ResolvedProject &project);
43
44 std::filesystem::path m_template_root;
45};
Base interface for all pipeline emitters.
Abstract base class for pipeline emitters.
Definition Emitter.hpp:35
Generates starter source files for a new C++ project.
Definition ScaffoldEmitter.hpp:24
std::vector< OutputFile > emit(const ResolvedProject &project) override
Produce output files from a resolved project.
Definition ScaffoldEmitter.cpp:24
Aggregated output of the full resolver pipeline.
Definition Resolved.hpp:105