Compile error on Debian testing

Hi all,

I started of today looking into Gerrit for the CDK, and found that
Avogadro was using it already… good opportunity for me to try the
user side of Gerrit…

I set up a development environment and made a git clone, etc,
following your wiki page, and found a trivial patch.

But, I also found that things do not compile on my Debian testing
machine… I ran sudo apt-get build-deps avogadro, and cmake was fine
with what it found.

Yet, when running ‘make -j1’ I get:

[ 81%] Building CXX object
libavogadro/src/python/CMakeFiles/python-module.dir/fragment.cpp.o
/home/egonw/tmp/avogadro/libavogadro/src/python/fragment.cpp: In
function ‘void export_Fragment()’:
/home/egonw/tmp/avogadro/libavogadro/src/python/fragment.cpp:21:36:
error: no matching function for call to
‘boost::python::class_<Avogadro::Fragment,
boost::python::basesAvogadro::Primitive,
boost::noncopyable_::noncopyable>::add_property(const char [5],
, void
(Avogadro::Fragment::)(QString), const char [26])’
/home/egonw/tmp/avogadro/libavogadro/src/python/fragment.cpp:21:36:
note: candidates are:
/usr/include/boost/python/class.hpp:306:11: note: template
boost::python::class_<T, X1, X2, X3>::self&
boost::python::class_::add_property(const char
, Get, const char*)
[with Get = Get, W = Avogadro::Fragment, X1 =
boost::python::basesAvogadro::Primitive, X2 =
boost::noncopyable_::noncopyable, X3 =
boost::python::detail::not_specified, boost::python::class_<T, X1, X2,
X3>::self = boost::python::class_<Avogadro::Fragment,
boost::python::basesAvogadro::Primitive,
boost::noncopyable_::noncopyable>]
/usr/include/boost/python/class.hpp:313:11: note: template<class Get,
class Set> boost::python::class_<T, X1, X2, X3>::self&
boost::python::class_::add_property(const char*, Get, Set, const
char*) [with Get = Get, Set = Set, W = Avogadro::Fragment, X1 =
boost::python::basesAvogadro::Primitive, X2 =
boost::noncopyable_::noncopyable, X3 =
boost::python::detail::not_specified, boost::python::class_<T, X1, X2,
X3>::self = boost::python::class_<Avogadro::Fragment,
boost::python::basesAvogadro::Primitive,
boost::noncopyable_::noncopyable>]
make[2]: *** [libavogadro/src/python/CMakeFiles/python-module.dir/fragment.cpp.o]
Error 1
make[1]: *** [libavogadro/src/python/CMakeFiles/python-module.dir/all] Error 2
make: *** [all] Error 2

I have libboost-python 1.46 …

Suggestions?

Egon


Dr E.L. Willighagen
Postdoctoral Researcher
Department of Bioinformatics - BiGCaT
Maastricht University (http://www.bigcat.unimaas.nl/)
Homepage: http://egonw.github.com/
LinkedIn: http://se.linkedin.com/in/egonw
Blog: http://chem-bla-ics.blogspot.com/
PubList: http://www.citeulike.org/user/egonw/tag/papers

Hi Egon,

On Sat, Feb 4, 2012 at 2:08 PM, Egon Willighagen
egon.willighagen@gmail.com wrote:

Hi all,

I started of today looking into Gerrit for the CDK, and found that
Avogadro was using it already… good opportunity for me to try the
user side of Gerrit…

Thanks for the patch :wink:

I set up a development environment and made a git clone, etc,
following your wiki page, and found a trivial patch.

But, I also found that things do not compile on my Debian testing
machine… I ran sudo apt-get build-deps avogadro, and cmake was fine
with what it found.

Yet, when running ‘make -j1’ I get:

> > I have libboost-python 1.46 ... > > Suggestions? > You could disable the Python wrapping, run cmake-gui . in the build directory and remove the tick from ENABLE_PYTHON. I am just taking a look at this to check (I have Boost 1.48 here) and have a failure on.

[ 1%] Generating moc_pythonengine_p.cxx
usr/include/boost/type_traits/detail/has_binary_operator.hp:50: Parse
error at “BOOST_JOIN”

This was on my todo, as I think there is a change in Boost behavior
and interaction with Qt’s MOC that is causing issues. Let me see what
I can do, I think it was an Arch developer who pointed this out and we
just haven’t had time to dig into it.

Thanks,

Marcus

On Sun, Feb 5, 2012 at 2:33 PM, Marcus D. Hanwell
mhanwell@gmail.com wrote:

Hi Egon,

On Sat, Feb 4, 2012 at 2:08 PM, Egon Willighagen
egon.willighagen@gmail.com wrote:

Hi all,

I started of today looking into Gerrit for the CDK, and found that
Avogadro was using it already… good opportunity for me to try the
user side of Gerrit…

Thanks for the patch :wink:

I set up a development environment and made a git clone, etc,
following your wiki page, and found a trivial patch.

But, I also found that things do not compile on my Debian testing
machine… I ran sudo apt-get build-deps avogadro, and cmake was fine
with what it found.

Yet, when running ‘make -j1’ I get:

> > I have libboost-python 1.46 ... > > Suggestions? > You could disable the Python wrapping, run cmake-gui . in the build directory and remove the tick from ENABLE_PYTHON. I am just taking a look at this to check (I have Boost 1.48 here) and have a failure on.

[ 1%] Generating moc_pythonengine_p.cxx
usr/include/boost/type_traits/detail/has_binary_operator.hp:50: Parse
error at “BOOST_JOIN”

This was on my todo, as I think there is a change in Boost behavior
and interaction with Qt’s MOC that is causing issues. Let me see what
I can do, I think it was an Arch developer who pointed this out and we
just haven’t had time to dig into it.

See,

http://review.source.kitware.com/4169

for a possible fix, this works around some issues in Boost 1.48/MOC
interaction, and also fixes up the fragment wrapping a little for some
issues that crept in late last year I think. I will take a better look
at the properties for fragment later, it would be great to know if
this allows you to compile Avogadro master (+ this patch) on your
system.

Thanks,

Marcus