hkroeger / insightcae

InsightCAE
http://silentdynamics.de
81 stars 15 forks source link

Compilation Problem on ArchLinux #16

Open dpellegr opened 3 years ago

dpellegr commented 3 years ago

I am trying to build insightcae on ArchLinux with GCC 11.1 and every dependency at their current upstream version. I am currently facing a build error which I have not been able to solve.

The error list is huge, but mostly repeated, so I paste here the top of it. I initially supposed a missing #include, but many attempts later I am not able to find it. Any idea?

In file included from /usr/include/boost/preprocessor/control/if.hpp:18,
                 from /usr/include/boost/preprocessor/punctuation/comma_if.hpp:18,
                 from /usr/include/boost/preprocessor/comma_if.hpp:15,
                 from /usr/include/boost/mpl/aux_/preprocessor/params.hpp:49,
                 from /usr/include/boost/mpl/aux_/na_spec.hpp:26,
                 from /usr/include/boost/mpl/or.hpp:24,
                 from /usr/include/boost/iterator/interoperable.hpp:11,
                 from /usr/include/boost/iterator/iterator_facade.hpp:11,
                 from /usr/include/boost/filesystem/path.hpp:29,
                 from /usr/include/boost/filesystem.hpp:16,
                 from /tmp/insightcae/src/toolkit/base/boost_include.h:56,
                 from /tmp/insightcae/src/toolkit/base/softwareenvironment.h:34,
                 from /tmp/insightcae/src/toolkit/base/caseelement.h:27,
                 from /tmp/insightcae/src/toolkit/openfoam/caseelements/openfoamcaseelement.h:5,
                 from /tmp/insightcae/src/toolkit/openfoam/caseelements/basic/decomposepardict.h:5,
                 from /tmp/insightcae/src/toolkit/openfoam/openfoamanalysis.cpp:22:
/tmp/insightcae/src/toolkit/progrock/cppx/collections/options_boosted.h:54:5: error: ‘BOOST_PP_IIF_0’ does not name a type
   54 |     BOOST_PP_SEQ_FOR_EACH(                                                  \
      |     ^~~~~~~~~~~~~~~~~~~~~
/tmp/insightcae/src/toolkit/progrock/cppx/collections/options_boosted.h:66:5: note: in expansion of macro ‘CPPXi_BOOSTED_DEFINE_OPTIONCLASS’
   66 |     CPPXi_BOOSTED_DEFINE_OPTIONCLASS(                                       \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/insightcae/src/toolkit/openfoam/openfoamtools.h:89:3: note: in expansion of macro ‘CPPX_DEFINE_OPTIONCLASS’
   89 |   CPPX_DEFINE_OPTIONCLASS(Parameters, CPPX_OPTIONS_NO_BASE,
      |   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /tmp/insightcae/src/toolkit/progrock/cppx/typechecking.h:11,
                 from /tmp/insightcae/src/toolkit/progrock/cppx/collections/options.h:12,
                 from /tmp/insightcae/src/toolkit/progrock/cppx/collections/options_boosted.h:11,
                 from /tmp/insightcae/src/toolkit/openfoam/caseelements/turbulencemodelcaseelements.h:36,
                 from /tmp/insightcae/src/toolkit/openfoam/openfoamanalysis.cpp:24:
/tmp/insightcae/src/toolkit/openfoam/openfoamtools.h:89:27: error: ‘Parameters_cppx_OptionTypes’ was not declared in this scope; did you mean ‘Parameters_cppx_Values’?
   89 |   CPPX_DEFINE_OPTIONCLASS(Parameters, CPPX_OPTIONS_NO_BASE,
      |                           ^~~~~~~~~~
/tmp/insightcae/src/toolkit/progrock/cppx/macro_util.h:30:41: note: in definition of macro ‘CPPXi_CONCAT_AUX’
   30 | #define CPPXi_CONCAT_AUX( a, b )        a ## b
      |                                         ^
/tmp/insightcae/src/toolkit/progrock/cppx/collections/options.h:128:5: note: in expansion of macro ‘CPPX_CONCAT’
  128 |     CPPX_CONCAT( name, _cppx_OptionTypes )
      |     ^~~~~~~~~~~
/tmp/insightcae/src/toolkit/progrock/cppx/collections/options.h:198:13: note: in expansion of macro ‘CPPXi_OPTIONTYPES_ID’
  198 |             CPPXi_OPTIONTYPES_ID( name )                                \
      |             ^~~~~~~~~~~~~~~~~~~~
/tmp/insightcae/src/toolkit/progrock/cppx/collections/options.h:237:5: note: in expansion of macro ‘CPPXi_DEFINE_VALUECLASS’
  237 |     CPPXi_DEFINE_VALUECLASS( name, base )                               \
      |     ^~~~~~~~~~~~~~~~~~~~~~~
/tmp/insightcae/src/toolkit/progrock/cppx/collections/options_boosted.h:63:5: note: in expansion of macro ‘CPPXi_DEFINE_VTANDO’
   63 |     CPPXi_DEFINE_VTANDO( cls, base )
      |     ^~~~~~~~~~~~~~~~~~~
/tmp/insightcae/src/toolkit/progrock/cppx/collections/options_boosted.h:66:5: note: in expansion of macro ‘CPPXi_BOOSTED_DEFINE_OPTIONCLASS’
   66 |     CPPXi_BOOSTED_DEFINE_OPTIONCLASS(                                       \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/insightcae/src/toolkit/openfoam/openfoamtools.h:89:3: note: in expansion of macro ‘CPPX_DEFINE_OPTIONCLASS’
   89 |   CPPX_DEFINE_OPTIONCLASS(Parameters, CPPX_OPTIONS_NO_BASE,
      |   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /tmp/insightcae/src/toolkit/progrock/cppx/collections/options_boosted.h:11,
                 from /tmp/insightcae/src/toolkit/openfoam/caseelements/turbulencemodelcaseelements.h:36,
                 from /tmp/insightcae/src/toolkit/openfoam/openfoamanalysis.cpp:24:
/tmp/insightcae/src/toolkit/progrock/cppx/collections/options.h:199:13: error: template argument 1 is invalid
  199 |             >                                                           \
      |             ^
hkroeger commented 3 years ago

Hi Dario,

I have never attempted to compile on arch linux. Which boost version is installed?

It looks like an incompatibility of boost and the cppx option macros.

Please note that I'm working on getting rid of the cppx dependency. There are only two locations left, where it is used. I guess you compiled the master branch? I will remove the last locations and push the result in the "next-release" branch ASAP.

dpellegr commented 3 years ago

Arch is a nice test bench because it tends to ship very updated software. I did my test with boost v1.76 and yes: master branch.

Nice to know that you are getting rid of cppx: it looks like something very likely to break and it does not seem so well maintained. I look forward for the next commits, thanks!

hkroeger commented 3 years ago

I have tested everything only with boost 1.65.

My problem is, that I needed to support also some HPC clusters, which tend to provided rather outdated versions....

dpellegr commented 3 years ago

I understand, no worries. If insightcae turns out to be a valuable tool for my workflow, I would be happy to follow up the testing at the bleeding edge and report and/or propose corrections for the eventual issues.