[omniORB] #include and path names

Chris Newbold chris.newbold@laurelnetworks.com
Thu, 22 Jun 2000 15:59:36 -0400


We're starting to use omniORB 2.8 in our product and I've found
a few annoyances with the IDL compiler, one which is rather
debilitating.

Our code is organized into modules; so in src/foo, you'll find
foo.idl and the build environment automatically exports files
under a directory of the same name; so after building in src/foo
you'll find foo.idl and foo.hh in include/foo.

Now, some other module, bar, contains bar.idl which wants stuff
in foo. So we include things like so in bar.idl:
#include <foo/foo.idl>.

The problem is that when omniidl2 generates code for bar.hh it
completely strips all path information off the filename; so bar.hh
looks like this: #include <foo.hh>, which of course doesn't work,
since we run the compiler with a single -I flag, pointing at
the top-level include directory.

This just seems hopelessly broken. Is this improved in 3.0?
Any suggestions? 

The second problem is much more minor; there is no -o or like
flag to tell omniidl2 where to place its output. I've worked
around this by making sure to cd to the desired output directory
before invoking omniidl2, but it seems like an obvious thing
to add.

-Chris