CPGen
C++ project generator
Loading...
Searching...
No Matches
Public Member Functions | List of all members
CMakeEmitter Class Reference

Generates a fully assembled CMakeLists.txt from a ResolvedProject. More...

#include <CMakeEmitter.hpp>

Inheritance diagram for CMakeEmitter:
Inheritance graph
[legend]
Collaboration diagram for CMakeEmitter:
Collaboration graph
[legend]

Public Member Functions

std::vector< OutputFileemit (const ResolvedProject &project) override
 Produce output files from a resolved project.
 
- Public Member Functions inherited from Emitter
 Emitter ()=default
 
virtual ~Emitter ()=default
 
 Emitter (const Emitter &)=default
 
Emitteroperator= (const Emitter &)=default
 
 Emitter (Emitter &&)=default
 
Emitteroperator= (Emitter &&)=default
 

Detailed Description

Generates a fully assembled CMakeLists.txt from a ResolvedProject.

Fragment order

  1. cmake_minimum_required
  2. project()
  3. C++ standard settings
  4. FetchContent declarations (if modules are present)
  5. Compile options
  6. Clang-tidy integration (if enabled)
  7. Target declarations (executables, libraries)
  8. Include directories
  9. Link libraries per target (from module injections)
  10. enable_testing() (if a test target is present)

Member Function Documentation

◆ emit()

std::vector< OutputFile > CMakeEmitter::emit ( const ResolvedProject project)
overridevirtual

Produce output files from a resolved project.

Parameters
projectThe fully resolved project description.
Returns
A vector of files to write to the project directory.

Implements Emitter.


The documentation for this class was generated from the following files: