cctbx / cctbx_project

Computational Crystallography Toolbox
https://cci.lbl.gov/docs/cctbx
Other
218 stars 116 forks source link

[2023.11] "Use C++14 or higher to compile Boost.Geometry, or use Boost 1.72 or lower." #946

Open picca opened 9 months ago

picca commented 9 months ago

Hello, it seems that with the news version of boost we also require c++14

It seems to me that using C++14 is more futur proof than relying on an older version of boost.

Cheers

Fred

g++ -o gltbx/viewer_utils_ext.o -c -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/hdf5/serial -DBOOST_TIMER_ENABLE_DEPRECATED=1\
 -std=c++11 -pthread -DBOOST_PYTHON_MAX_BASES=2 -fPIC -fno-strict-aliasing -w -g -O0 -fno-inline -DBOOST_ALL_NO_LIB -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-secu\
rity -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -I/<<PKGBUILDDIR>> -I/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build_/include -I/<<PKGBUILDDIR>> -I/usr/include -I/usr/include/python3.12 /<<PKGBUILDDIR>>/gltbx/viewer_utils_ext.cpp
In file included from /usr/include/boost/geometry.hpp:17,
                 from /<<PKGBUILDDIR>>/dxtbx/src/dxtbx/masking/goniometer_shadow_masking.h:5,
                 from /<<PKGBUILDDIR>>/dxtbx/src/dxtbx/imageset.h:30,
                 from /<<PKGBUILDDIR>>/dxtbx/src/dxtbx/boost_python/imageset_ext.cc:9:
/usr/include/boost/geometry/geometry.hpp:26:2: error: #error "Use C++14 or higher to compile Boost.Geometry, or use Boost 1.72 or lower."
   26 | #error "Use C++14 or higher to compile Boost.Geometry, or use Boost 1.72 or lower."
      |  ^~~~~
In file included from /usr/include/boost/multiprecision/cpp_int.hpp:17,
                 from /usr/include/boost/multiprecision/cpp_bin_float.hpp:15,
                 from /usr/include/boost/geometry/core/coordinate_promotion.hpp:16,
                 from /usr/include/boost/geometry/core/radian_access.hpp:30,
                 from /usr/include/boost/geometry/geometry.hpp:50:
/usr/include/boost/multiprecision/detail/standalone_config.hpp:36:7: warning: #warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)" [-Wcpp]
   36 |  #    warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)"
      |       ^~~~~~~
g++ -o iotbx/ccp4_map/ext.o -c -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/include/hdf5/serial -DBOOST_TIMER_ENABLE_DEPRECATED=1 -st\
d=c++11 -pthread -DBOOST_PYTHON_MAX_BASES=2 -DMSETS=32 -DMXTALS=32 -DMCOLUMNS=128 -fPIC -fno-strict-aliasing -Wall -Wno-unknown-pragmas -Wno-parentheses -Winit-self -Wno-unused-local-typedefs -Werror=vla -g -O0 -fno-inline -DBOOST_ALL_NO_\
LIB -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -I/<<PKGBUILDDIR>> -I/<<PKGBUILDDIR>>/.pybuild/cpython3_3.1\
2/build_/include -I/<<PKGBUILDDIR>> -I/usr/include -I/usr/include/ccp4 -I/usr/include/python3.12 /<<PKGBUILDDIR>>/iotbx/ccp4_map/ext.cpp
In file included from /usr/include/boost/math/cstdfloat/cstdfloat_types.hpp:17,
                 from /usr/include/boost/cstdfloat.hpp:18,
                 from /usr/include/boost/multiprecision/detail/float128_functions.hpp:15,
                 from /usr/include/boost/multiprecision/detail/fpclassify.hpp:13,
                 from /usr/include/boost/multiprecision/detail/default_ops.hpp:15,
                 from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:12,
                 from /usr/include/boost/multiprecision/number.hpp:12,
                 from /usr/include/boost/multiprecision/cpp_int.hpp:19:
/usr/include/boost/math/tools/config.hpp:23:6: warning: #warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)" [-Wcpp]
   23 | #    warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)"
      |      ^~~~~~~
bkpoon commented 9 months ago

You should be able to build with C++14. The conda packages are now using Boost 1.82. Can you remind me how you are building the Debian package?

picca commented 9 months ago

Yes I switched to use --cxxstd=c++14 but what I meant was, c++11 is no more and option :))

Here how I build the Debian packages

https://salsa.debian.org/science-team/cctbx/-/blob/master/debian/rules?ref_type=heads

with plenty of patches :))

https://salsa.debian.org/science-team/cctbx/-/tree/master/debian/patches?ref_type=heads