I got an compiling error when I do "make " with the mantid in ubuntu 20.04(master branch in github):
[62%] — “mantid/qt/widgets/common/inc/MantidQtWidgets/Common/Python/Sip.h:41:36: error: ‘struct _sipSimpleWrapper’ has no member named ‘u’ " (line 41 of Sip.h: “return static_cast<T *>(wrapper->u.cppPtr);”)
I don’t know how to fix this and would be very grateful if anyone can help me. Thanks a lot!
First off, the usual disclaimer. Ubuntu 20.04 isn’t officially supported yet by the project, as we’re waiting for our Conda packaging strategy . So the usual warnings apply, this is ad-hoc, things might break, your data might be invalid…etc.
That being said I personally develop on 20.04 and I’ve built master correctly today and it works 99% of the time.
Looking at the lines in question this code is conditionally compiled depending on your sip version. It looks like your hitting the code for SIP < 7 which shouldn’t be happening on 20.04 IMO, but should be an easy fix once we work out where this older package is coming from.
I have a couple of questions:
How did you get the dependencies to build to project? E.g. the .deb developer package available on Sourceforge or something else?
If you have installed the dependencies through apt or dpkg, could you post what sip version you have (from apt-cache show python-sip)? Locally I have 4.19.21+dfsg-1build1 which provides sip-api-12.x
If you are using Conda or similar, could you check what version of sip packaging you are using?
Could you post the sections related to sip from your CMakeCache.txt by going to your build folder, running the following and pasting the output? grep -i sip CMakeCache.txt
I re-install the build dependencies with the .dev developer package and degrade the sip to 4.19.25 (The original one is 6.1.1). Now the mantid project is built on Ubuntu 18.04 and 20.04 successfully.
I think 6.1.1 a particularly old sip, whilst the Ubuntu meta package is only at 4.19.25 but provides 12.x inside. I guess someone felt like having clear release numbering would make it too easy…