[odb-users] Headers organisation and include prefix
MM
finjulhich at gmail.com
Fri Jun 6 06:46:21 EDT 2014
Hello,
As non-intrusive odb is important to me, I have the following headers under
src
trunk (src dir)
|--- dir1--- *f.hpp* (defines struct F)
#include "dir1/g.hpp"
struct F { G g; ... };
--- *g.hpp* (defines class G)
class G { ... };
|
|--- dir1_odb --- *f.hpp* (contains odb pragmas for struct F: object )
#include <odb/core.hxx>
#include "dir1/f.hpp"
#include "dir1_odb/g.hpp"
// correct namespace
#pragma db object(F) definition
--- *g.hpp* (contains odb pragmas for class G: value type)
#include <odb/core.hxx>
#include "dir1/g.hpp"
// correct namespace
#pragma db value(G) definition
I use cmake and have the following out of src build dir
trunk-build-debug (build dir)
|----dir1 (objects for sources under dir1)
|----dir1_odb (this is where the output of odb compiler goes)
----- f.hxx f.cxx f.ixx
----- g.hxx g.cxx g.ixx
This is the odb command line:
odb -d sqlite --std c++11 --profile boost --generate-query -I<pathTrunk>
-IC:/boost/1_54 --include-prefix dir1_odb <pathTrunk>/dir1_odb/f.hpp
odb -d sqlite --std c++11 --profile boost --generate-query
-I<pathTrunk> -IC:/boost/1_54 --include-prefix dir1_odb
<pathTrunk>/dir1_odb/g.hpp
This generates:
1) f-odb.hxx under trunk-build-debug/dir1_odb with this bit right after the
End prologue
#include "dir1_odb/f.hpp" // correct, this comes from the
--include-prefix argument.
but also
#include "dir1/g-odb.hxx" //// wrong, this doesn't exist all.
#include "dir1_odb/g-odb.hxx" //// Ok, it's the result of
other odb compiler run
2) g-odb.hxx under trunk-build-debug/dir1_odb with this bit right after the
End prologue
#include "dir1_odb/g.hpp" // correct, this comes from the
--include-prefix argument.
but also
#include "dir1/g-odb.hxx" //// wrong, this doesn't exist all.
I am a little confused as to what happens, and would appreciate advise on
reorg of headers if needed,
Thanks
MM
More information about the odb-users
mailing list