comphelper dep of officecfg
Stephan Bergmann
sbergman at redhat.com
Mon Feb 20 08:20:05 PST 2012
[including LO ML on cc, hope you don't mind; context for new readers:
officecfg/CppunitTest_officecfg_cppheader_test.mk requires
officecfg/qa/cppheader.cxx, which indirectly includes headers from
higher up the module hierarchy; plain "make" build logs show that the
cxx is needlessly compiled, causing errors due to missing headers in a
clean build, but does not cause the overall build to fail]
On 02/19/2012 10:44 PM, Norbert Thiebaud wrote:
> the confusion is that subsequentcheck is a runtime-dependency: the
> check is _run_ after all build... but it does not block the 'build' of
> the check itself.
Is that a bug or a feature? (I now vaguely remember it was once added
on purpose, probably so that new code that would syntactically break
subsequentcheck would even be discovered in a non-subsequentcheck build.
But I think it is counter-intuitive.)
> and there is nothing that block the compile of the qa/cppheader,
> nothing that tell make that that object need FirstStartWizard.hxx not
> is there any dep to tell the compiler that the later also need
> comphelper's headers...
>
> /me disabled the unittest for now
The situation is as follows:
* officecfg/Package_cppheader.mk generates C++ headers that include
comphelper/configuration.hxx
* comphelper depends on officecfg (so that it can use the headers
generated there)
* officecfg/CppunitTest_officecfg_cppheader_test.mk wants to compile
officecfg/qa/cppheader.cxx which includes all the headers generated in
officecfg, to make sure the generated headers are syntactically valid
Does anybody have an idea how to solve this elegantly?
One solution might be to undo the mechanism by which a cxx only needed
in subsequentcheck is nevertheless already built by a plain "make" (see
above).
Another solution might be to somehow manually add the knowledge that
compiling officecfg/qa/cppheader.cxx depends on
comphelper/configuration.hxx (and so would need to be delayed until the
latter is available, resp. would need to be skipped in a partial build).
Both these solutions have the drawback that they keep testing the
generated headers only rather late during the build, when other places
that use them have already encountered any generation errors, anyway.
A third solution might be to move comphelper/configuration.hxx further
down in the hierarchy, so that officecfg can properly depend on it. But
there seems to be no appropriate module in existence already (above URE
but below comphelper), and adding a module/library just for that little
code seems overkill.
A fourth solution might be to move the unit test and accompanying cxx
from officecfg to comphelper. But that is inelegant in that the cxx
contains a list of all xcs in officecfg/registry/schema, which need to
be kept in sync manually, which in turn becomes even more of a trouble
if the former and the latter are spread across different modules.
Stephan
More information about the LibreOffice
mailing list