build failures on MacOS 11.4 XCode 12.5.1
eric-smith-ELSI opened this issue · comments
Jakob, hi,
Do you have any users who have successfully build MØD on the latest MacOS (Big Sur)?
My earlier successful install was on MacOS 10.14.6 (Mojave) with XCode 11.3.1, on 19 May 2021.
BACKGROUND INFO
With small modifications, the installation of dependencies and configuration of MØD through cmake could be made to work as before. There are two differences in logging during installation in this dependency install from homebrew; I don't know if they matter to the later build failure.
-
The current dependency install is including networkx and decorator, and gives the error:
ERROR: networkx 2.5.1 has requirement decorator<5,>=4.3, but you'll have decorator 5.0.9 which is incompatible.
There does not seem to be another version of decorator available, and
brew install decorator
completes without complaining.
For the previous install (on Mojave)
brew info networkx
brew info decorator
show no installed packages. -
Unlike the previous install on Mojave, in this install I get a permission error from pip3:
ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Library/Python/3.8'
Consider using the--user
option or check the permissions.
so I ran
pip3 install --user -r requirements.txt
THE MAIN PROBLEM
make then completes through the first 82% of builds and linkings, and fails beginning with output:
[ 83%] Building CXX object libs/pymod/CMakeFiles/pymod.dir/src/mod/py/Config.cpp.o
/Users/desmith/projects/graphs/mod/libs/pymod/src/mod/py/Config.cpp:197:25: error: expected '(' for function-style cast or type construction
BOOST_PP_SEQ_FOR_EACH(NSIter, ~, MOD_CONFIG_DATA())
and a cascade more. I attach a file with the full error output.
Many thanks if you can advise,
Thanks for the report:
- It looks like networkx has some problems with the decorator package: networkx/networkx#4773
I guess this will resolve it self in the next networkx release. In MØD it is only used in the EpiM module. - The default install directory for pip seems to vary between OS distributions. Som make
--user
default, others don't. I'll try to get the documentation updated for the next version to mention that--user
may be a good option to use. - The main problem: what I think the compiler is trying to tell in it's own wonderful way, is that there is a missing include in the beginning of
libs/pymod/src/mod/py/Config.cpp
.
If you manually insert the line#include <boost/mpl/vector.hpp>
at line 4 or so in that file, then I think that part will be fixed.
(This include is necessary in one of the Boost versions released after the latest release of MØD.)
This works Jakob, thank you.
Great!