Summary
With common_include_file: False (which is better for build efficiency because it doesn't include everything in all wrappers), a class wrapper may fail to compile because it relies on a type that is not included in the main class hpp. This can be manually added under source_includes.
For example, MeshFactory.hpp contains std::shared_ptr<MESH> generateMesh() but doesn't include PottsMesh (The cpp does include it as it instantiates MeshFactory<PottsMesh<2>>). The wrapper for MeshFactory<PottsMesh<2>> needs PottsMesh<2>, so should include PottsMesh.hpp:
- name: MeshFactory
source_includes:
- PottsMesh.hpp
It would make wrapper configuration simpler if these cases could be detected automatically and did not need adding in manually.
Summary
With
common_include_file: False(which is better for build efficiency because it doesn't include everything in all wrappers), a class wrapper may fail to compile because it relies on a type that is not included in the main class hpp. This can be manually added undersource_includes.For example,
MeshFactory.hppcontainsstd::shared_ptr<MESH> generateMesh()but doesn't includePottsMesh(The cpp does include it as it instantiatesMeshFactory<PottsMesh<2>>). The wrapper forMeshFactory<PottsMesh<2>>needsPottsMesh<2>, so should includePottsMesh.hpp:It would make wrapper configuration simpler if these cases could be detected automatically and did not need adding in manually.