Menu ▾ ▴

Code generation

Cem KALYONCU

Phobos contains a tool called CodeGen to generate data classes and loader code for .pho files.
The prime aim of this system is to reduce development time, since objects will be designed in Phobos, it will be a duplicated effort to recreate them from scratch. CodeGen has the following options:

  • Generate (def: all): which part of the code to be generated. Can be all, loader, or classes
  • Namespace: namespace to place generated code in. Could be empty for top level, use :: to denote multiple levels
  • Common name (def: Assets): name for the common loader code
  • Data members (def: public): public, c++ acessors or GGE style accessors. Use public for POD like classes
  • Value typed objects (def: false): all objects are passed by value, might hurt performance but with less pointers to worry about
  • Named list (def: false): Use a std::map to map resources from IDs to their references/values.
  • List (def: true): a list to resources std::vector if value typed, gge::utils::OrderedCollection if reference typed
  • Constructors (def: all): private, public data, public data and default, all public: includes copy constructor