I persevered, fixed a few times NO_ROOT and partial merge problems. Now I have a linking error that puzzles m.
interff and intergroupff cannot find SireBase::BooleanProperty. Yet the cpp files of these two objects contain #include "SireBase/booleanproperty.h"
julien@ubuntu:~/software/devel/sirejulien/buildcorelib$ make
[ 1%] Built target SireError
[ 4%] Built target SireStream
[ 4%] Built target libFoo
[ 4%] Built target libBar
[ 5%] Built target test_template_rtti
[ 6%] Built target test_exception_packing
[ 6%] Built target test_qhash_lookup
[ 7%] Built target SireUnits
[ 8%] Built target SireID
[ 14%] Built target SireBase
[ 22%] Built target SireMaths
[ 24%] Built target SireVol
[ 31%] Built target SireCAS
[ 51%] Built target SireMol
[ 51%] Built target test_stream
[ 51%] Built target test_openmp
[ 56%] Built target SireFF
Scanning dependencies of target SireMM
[ 56%] Building CXX object src/libs/SireMM/CMakeFiles/SireMM.dir/interff.cpp.o
In file included from /home/julien/software/devel/sirejulien/corelib/src/libs/SireMM/interff.h:35:0,
from /home/julien/software/devel/sirejulien/corelib/src/libs/SireMM/interff.cpp:29:
/home/julien/software/devel/sirejulien/corelib/src/libs/SireMM/multicljcomponent.h: In member function ‘double SireMM::MultiCLJEnergy::coulomb(quint32) const’:
/home/julien/software/devel/sirejulien/corelib/src/libs/SireMM/multicljcomponent.h:285:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
/home/julien/software/devel/sirejulien/corelib/src/libs/SireMM/multicljcomponent.h: In member function ‘double SireMM::MultiCLJEnergy::lj(quint32) const’:
/home/julien/software/devel/sirejulien/corelib/src/libs/SireMM/multicljcomponent.h:298:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
[ 57%] Building CXX object src/libs/SireMM/CMakeFiles/SireMM.dir/intergroupff.cpp.o
In file included from /home/julien/software/devel/sirejulien/corelib/src/libs/SireMM/intergroupff.h:35:0,
from /home/julien/software/devel/sirejulien/corelib/src/libs/SireMM/intergroupff.cpp:29:
/home/julien/software/devel/sirejulien/corelib/src/libs/SireMM/multicljcomponent.h: In member function ‘double SireMM::MultiCLJEnergy::coulomb(quint32) const’:
/home/julien/software/devel/sirejulien/corelib/src/libs/SireMM/multicljcomponent.h:285:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
/home/julien/software/devel/sirejulien/corelib/src/libs/SireMM/multicljcomponent.h: In member function ‘double SireMM::MultiCLJEnergy::lj(quint32) const’:
/home/julien/software/devel/sirejulien/corelib/src/libs/SireMM/multicljcomponent.h:298:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
Linking CXX shared library libSireMM.so
CMakeFiles/SireMM.dir/interff.cpp.o: In function `SireMM::InterFF::setFixedOnly(bool)':
interff.cpp:(.text+0x1706): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
interff.cpp:(.text+0x1742): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
interff.cpp:(.text+0x1772): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
CMakeFiles/SireMM.dir/interff.cpp.o: In function `SireMM::InterFF::setUseReproducibleCalculation(bool)':
interff.cpp:(.text+0x3f49): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
interff.cpp:(.text+0x3f85): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
interff.cpp:(.text+0x3f99): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
CMakeFiles/SireMM.dir/interff.cpp.o: In function `SireMM::InterFF::setUseParallelCalculation(bool)':
interff.cpp:(.text+0x4019): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
interff.cpp:(.text+0x4058): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
interff.cpp:(.text+0x40a4): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
CMakeFiles/SireMM.dir/interff.cpp.o: In function `SireMM::InterFF::setUseGrid(bool)':
interff.cpp:(.text+0x4256): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
interff.cpp:(.text+0x4296): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
interff.cpp:(.text+0x42f8): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
CMakeFiles/SireMM.dir/interff.cpp.o: In function `SireMM::InterFF::rebuildProps()':
interff.cpp:(.text+0x48ca): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
interff.cpp:(.text+0x4919): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
interff.cpp:(.text+0x4a40): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
interff.cpp:(.text+0x4a8f): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
interff.cpp:(.text+0x4aa8): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
interff.cpp:(.text+0x4af7): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
interff.cpp:(.text+0x4b10): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
interff.cpp:(.text+0x4b61): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
interff.cpp:(.text+0x4cab): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
interff.cpp:(.text+0x4cd5): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
interff.cpp:(.text+0x4cff): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
interff.cpp:(.text+0x4d7d): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
CMakeFiles/SireMM.dir/interff.cpp.o: In function `SireMM::InterFF::setProperty(QString const&, SireBase::Property const&)':
interff.cpp:(.text+0x567d): undefined reference to `SireBase::BooleanProperty::value() const'
interff.cpp:(.text+0x56f6): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
interff.cpp:(.text+0x5736): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
interff.cpp:(.text+0x59a5): undefined reference to `SireBase::BooleanProperty::value() const'
interff.cpp:(.text+0x5a5d): undefined reference to `SireBase::BooleanProperty::value() const'
interff.cpp:(.text+0x5ffc): undefined reference to `SireBase::BooleanProperty::value() const'
interff.cpp:(.text+0x6282): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
CMakeFiles/SireMM.dir/interff.cpp.o: In function `SireBase::BooleanProperty const& SireBase::Property::asA<SireBase::BooleanProperty>() const':
interff.cpp:(.text._ZNK8SireBase8Property3asAINS_15BooleanPropertyEEERKT_v[SireBase::BooleanProperty const& SireBase::Property::asA<SireBase::BooleanProperty>() const]+0x23): undefined reference to `typeinfo for SireBase::BooleanProperty'
interff.cpp:(.text._ZNK8SireBase8Property3asAINS_15BooleanPropertyEEERKT_v[SireBase::BooleanProperty const& SireBase::Property::asA<SireBase::BooleanProperty>() const]+0x78): undefined reference to `SireBase::BooleanProperty::typeName()'
interff.cpp:(.text._ZNK8SireBase8Property3asAINS_15BooleanPropertyEEERKT_v[SireBase::BooleanProperty const& SireBase::Property::asA<SireBase::BooleanProperty>() const]+0x94): undefined reference to `SireBase::BooleanProperty::typeName()'
CMakeFiles/SireMM.dir/intergroupff.cpp.o: In function `SireMM::InterGroupFF::setFixedOnly(bool)':
intergroupff.cpp:(.text+0x17e6): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
intergroupff.cpp:(.text+0x1822): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
intergroupff.cpp:(.text+0x1852): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
CMakeFiles/SireMM.dir/intergroupff.cpp.o: In function `SireMM::InterGroupFF::setUseReproducibleCalculation(bool)':
intergroupff.cpp:(.text+0x3a29): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
intergroupff.cpp:(.text+0x3a65): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
intergroupff.cpp:(.text+0x3a79): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
CMakeFiles/SireMM.dir/intergroupff.cpp.o: In function `SireMM::InterGroupFF::setUseParallelCalculation(bool)':
intergroupff.cpp:(.text+0x3af9): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
intergroupff.cpp:(.text+0x3b38): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
intergroupff.cpp:(.text+0x3b84): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
CMakeFiles/SireMM.dir/intergroupff.cpp.o: In function `SireMM::InterGroupFF::setUseGrid(bool)':
intergroupff.cpp:(.text+0x3d36): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
intergroupff.cpp:(.text+0x3d76): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
intergroupff.cpp:(.text+0x3dd8): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
CMakeFiles/SireMM.dir/intergroupff.cpp.o: In function `SireMM::InterGroupFF::rebuildProps()':
intergroupff.cpp:(.text+0x43aa): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
intergroupff.cpp:(.text+0x43f9): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
intergroupff.cpp:(.text+0x4520): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
intergroupff.cpp:(.text+0x456f): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
intergroupff.cpp:(.text+0x4588): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
intergroupff.cpp:(.text+0x45d7): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
intergroupff.cpp:(.text+0x45f0): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
intergroupff.cpp:(.text+0x4641): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
intergroupff.cpp:(.text+0x478b): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
intergroupff.cpp:(.text+0x47b5): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
intergroupff.cpp:(.text+0x47df): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
intergroupff.cpp:(.text+0x485d): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
CMakeFiles/SireMM.dir/intergroupff.cpp.o: In function `SireMM::InterGroupFF::setProperty(QString const&, SireBase::Property const&)':
intergroupff.cpp:(.text+0x52cd): undefined reference to `SireBase::BooleanProperty::value() const'
intergroupff.cpp:(.text+0x5346): undefined reference to `SireBase::BooleanProperty::BooleanProperty(bool)'
intergroupff.cpp:(.text+0x5386): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
intergroupff.cpp:(.text+0x55f5): undefined reference to `SireBase::BooleanProperty::value() const'
intergroupff.cpp:(.text+0x56ad): undefined reference to `SireBase::BooleanProperty::value() const'
intergroupff.cpp:(.text+0x5c4c): undefined reference to `SireBase::BooleanProperty::value() const'
intergroupff.cpp:(.text+0x5ed2): undefined reference to `SireBase::BooleanProperty::~BooleanProperty()'
collect2: ld returned 1 exit status
make[2]: *** [src/libs/SireMM/libSireMM.so.0.0.1] Error 1
make[1]: *** [src/libs/SireMM/CMakeFiles/SireMM.dir/all] Error 2