[Conan] Ensure SSE flags consistency across dependencies
Summary
With sight-deps
, we used to ensure that SSE_FLAGS
are consistently set between all dependencies and the framework. Without doing this, we would run into troubles, notably with Eigen.
Steps to reproduce
I have not tested it yet, but any library using Eigen through PCL may segfault randomly, or crash when deallocating an Eigen object. Eigen is compiled with SSE flags in PCL, and without SSE flags in our own librairies.
Possible fixes
We can write the flags and compiler settings inside a python file packaged as a conan package (https://git.ircad.fr/conan/conan-common/tree/stable/1.0.0). For now, you will have acces to:
get_[c,cxx]_flags()
, get_[c,cxx]_flags_[release,debug,relwithdebinfo]()
, get_cuda_version()
, get_cuda_arch()
and some utility functions for conanfile.py like fix_conan_path(conanfile, root, wildcard)
which allows to fix path in .cmake files.
Then we must ensure to forward these flags when building sight
.
See https://git.ircad.fr/conan/conan-common/commits/stable/1.0.0
Forwarding and sharing compilation flags is ongoing, see:
- For conan:
-
cares (stable/1.15.0 -> testing/1.15.0-r1 -> stable/1.15.0-r1) Merge request URL: https://git.ircad.fr/conan/conan-cares/merge_requests/2
-
openssl (stable/1.1.1b -> testing/1.1.1b-r1 -> stable/1.1.1b-r1) Merge request URL: https://git.ircad.fr/conan/conan-openssl/merge_requests/3
-
live555 (stable/1.21.0-r1 -> testing/1.21.0-r2 -> stable/1.21.0-r2) Merge request URL: https://git.ircad.fr/conan/conan-live555/merge_requests/2
-
trakstar (stable/1.0-r1 -> testing/1.0-r2 -> stable/1.0-r2) Merge request URL: https://git.ircad.fr/conan/conan-trakstar/merge_requests/3
-
openni (stable/2.2.0-r2 -> testing/2.2.0-r3 -> stable/2.2.0-r3) Merge request URL: https://git.ircad.fr/conan/conan-openni/merge_requests/4
-
librealsense (stable/2.18.0-r1 -> testing/2.23.0 -> stable/2.23.0) Merge request URL: https://git.ircad.fr/conan/conan-librealsense/merge_requests/5
-
libsgm (stable/1.0.0-r2 -> testing/1.0.0-r3 -> stable/1.0.0-r3) Merge request URL: https://git.ircad.fr/conan/conan-libsgm/merge_requests/2
-
ffmpeg (stable/4.1-r3 -> testing/4.1-r4 -> stable/4.1-r4) Merge request URL: https://git.ircad.fr/conan/conan-ffmpeg/merge_requests/2
-
tetgen (stable/1.5.0-r1 -> testing/1.5.0-r2 -> stable/1.5.0-r2) Merge request URL: https://git.ircad.fr/conan/conan-tetgen/merge_requests/2
-
icu (stable/51.2-r1 -> testing/51.2-r2 -> stable/51.2-r2) Merge request URL: https://git.ircad.fr/conan/conan-icu/merge_requests/2
-
log4cpp (stable/1.1.1-r1 -> testing/1.1.1-r2 -> stable/1.1.1-r2) Merge request URL: https://git.ircad.fr/conan/conan-log4cpp/merge_requests/2
-
jsoncpp (stable/1.7.1-r1 -> testing/1.7.1-r2 -> stable/1.7.1-r2) Merge request URL: https://git.ircad.fr/conan/conan-jsoncpp/merge_requests/2
-
bullet (stable/2.88 -> testing/2.88-r1 -> stable/2.88-r1) Merge request URL: https://git.ircad.fr/conan/conan-bullet/merge_requests/2
-
cryptopp (stable/8.1.0 -> testing/8.1.0-r1 -> stable/8.1.0-r1) Merge request URL: https://git.ircad.fr/conan/conan-cryptopp/merge_requests/2
-
flann (stable/1.9.1-r1 -> testing/1.9.1-r2 -> stable/1.9.1-r2) Merge request URL: https://git.ircad.fr/conan/conan-flann/merge_requests/2
-
cxsparse (stable/3.1.1-r1 -> testing/3.1.1-r2 -> stable/3.1.1-r2) Merge request URL: https://git.ircad.fr/conan/conan-cxsparse/merge_requests/2
-
glog (stable/0.4.0 -> testing/0.4.0-r1 -> stable/0.4.0-r1) Merge request URL: https://git.ircad.fr/conan/conan-glog/merge_requests/2
-
openigtlink (stable/2.1-r2 -> testing/2.1-r3 -> stable/2.1-r3) Merge request URL: https://git.ircad.fr/conan/conan-openigtlink/merge_requests/3
-
eigen (stable/3.3.7 -> testing/3.3.7-r1 -> stable/3.3.7-r1) Merge request URL: https://git.ircad.fr/conan/conan-eigen/merge_requests/3
26b. ceres (stable/1.14.0-r1 -> testing/1.14.0-r2 -> stable/1.14.0-r2) Merge request URL: https://git.ircad.fr/conan/conan-ceres/merge_requests/2
-
g2o (stable/1.0.0 -> testing/1.0.0-r1 -> stable/1.0.0-r1) Merge request URL: https://git.ircad.fr/conan/conan-g2o/merge_requests/3
-
glew (stable/2.0.0-r1 -> testing/2.0.0-r2 -> stable/2.0.0-r2) Merge request URL: https://git.ircad.fr/conan/conan-glew/merge_requests/2
-
expat (stable/2.2.5-r1 -> testing/2.2.5-r2 -> stable/2.2.5-r2) Merge request URL: https://git.ircad.fr/conan/conan-expat/merge_requests/2
-
cppunit (stable/1.14.0-r1 -> testing/1.14.0-r2 -> stable/1.14.0-r2) Merge request URL: https://git.ircad.fr/conan/conan-cppunit/merge_requests/2
-
glm (stable/0.9.9.4 -> testing/0.9.9.4-r1 -> stable/0.9.9.4-r1) Merge request URL: https://git.ircad.fr/conan/conan-glm/merge_requests/2
-
libjpeg (stable/9c-r1 -> testing/9c-r2 -> stable/9c-r2) Merge request URL: https://git.ircad.fr/conan/conan-libjpeg/merge_requests/2
-
winiconv (stable/0.0.8-r1 -> testing/0.0.8-r2 -> stable/0.0.8-r2) Merge request URL: https://git.ircad.fr/conan/conan-winiconv/merge_requests/2
-
zlib (stable/1.2.11-r1 -> testing/1.2.11-r2 -> stable/1.2.11-r2) Merge request URL: https://git.ircad.fr/conan/conan-zlib/merge_requests/2
-
protobuf (stable/3.7.1-r1 -> testing/3.7.1-r2 -> stable/3.7.1-r2) Merge request URL: https://git.ircad.fr/conan/conan-protobuf/merge_requests/3
-
zzip (stable/0.13.69-r1 -> testing/0.13.69-r2 -> stable/0.13.69-r2) Merge request URL: https://git.ircad.fr/conan/conan-zzip/merge_requests/2
-
freetype (stable/2.9.1-r1 -> testing/2.9.1-r2 -> stable/2.9.1-r2) Merge request URL: https://git.ircad.fr/conan/conan-freetype/merge_requests/2
-
libpng (stable/1.6.34-r1 -> testing/1.6.34-r2 -> stable/1.6.34-r2) Merge request URL: https://git.ircad.fr/conan/conan-libpng/merge_requests/2
-
libtiff (stable/4.0.9-r1 -> testing/4.0.9-r2 -> stable/4.0.9-r2) Merge request URL: https://git.ircad.fr/conan/conan-libtiff/merge_requests/2
-
boost (stable/1.69.0 -> testing/1.69.0-r1 -> stable/1.69.0-r1) Merge request URL: https://git.ircad.fr/conan/conan-boost/merge_requests/2
-
camp (stable/0.8.2-r1 -> testing/0.8.2-r2 -> stable/0.8.2-r2) Merge request URL: https://git.ircad.fr/conan/conan-camp/merge_requests/3
-
grpc (stable/1.20.1-r1 -> testing/1.20.1-r2 -> stable/1.20.1-r2) Merge request URL: https://git.ircad.fr/conan/conan-grpc/merge_requests/4
-
qt (stable/5.12.2 -> testing/5.12.2-r1 -> stable/5.12.2-r1) Merge request URL: https://git.ircad.fr/conan/conan-qt/merge_requests/3
44b. vlc (stable/3.0.6 -> testing/3.0.6-r1 -> stable/3.0.6-r1) Merge request URL: https://git.ircad.fr/conan/conan-vlc/merge_requests/3
-
sofa (stable/18.06.01-r1 -> testing/18.06.01-r2 -> stable/18.06.01-r2) Merge request URL: https://git.ircad.fr/conan/conan-sofa/merge_requests/4
-
opencv (stable/3.4.5 -> testing/3.4.5-r1 -> stable/3.4.5-r1) Merge request URL: https://git.ircad.fr/conan/conan-opencv/merge_requests/5
-
aruco (stable/3.0.12-r1 -> testing/3.0.12-r2 -> stable/3.0.12-r2) Merge request URL: https://git.ircad.fr/conan/conan-aruco/merge_requests/3
-
ptam (stable/0.7.2-r3 -> testing/0.7.2-r4 -> stable/0.7.2-r4) Merge request URL: https://git.ircad.fr/conan/conan-ptam/merge_requests/4
-
orbslam2 (stable/0.5.1-r3 -> testing/0.5.1-r4 -> stable/0.5.1-r4) Merge request URL: https://git.ircad.fr/conan/conan-orbslam2/merge_requests/4
-
tensorflow (stable/1.9.0-r2 -> testing/1.9.0-r3 -> stable/1.9.0-r3) Merge request URL: https://git.ircad.fr/conan/conan-tensorflow/merge_requests/4
-
libfreenect (stable/0.5.7-r1 -> testing/0.5.7-r2 -> stable/0.5.7-r2) Merge request URL: https://git.ircad.fr/conan/conan-libfreenect/merge_requests/2
-
libxml2 (stable/2.9.8-r1 -> testing/2.9.8-r2 -> stable/2.9.8-r2) Merge request URL: https://git.ircad.fr/conan/conan-libxml2/merge_requests/2
-
libarchive (stable/3.1.2-r1 -> testing/3.1.2-r2 -> stable/3.1.2-r2) Merge request URL: https://git.ircad.fr/conan/conan-libarchive/merge_requests/2
-
ogre (stable/1.11.5 -> testing/1.11.5-r1 -> stable/1.11.5-r1) Merge request URL: https://git.ircad.fr/conan/conan-ogre/merge_requests/3
-
vtk (stable/8.2.0 -> testing/8.2.0-r1 -> stable/8.2.0-r1) Merge request URL: https://git.ircad.fr/conan/conan-vtk/merge_requests/2
-
gdcm (stable/2.8.9 -> testing/2.8.9-r1 -> stable/2.8.9-r1) Merge request URL: https://git.ircad.fr/conan/conan-gdcm/merge_requests/2
-
dcmtk (stable/3.6.4 -> testing/3.6.4-r1 -> stable/3.6.4-r1) Merge request URL: https://git.ircad.fr/conan/conan-dcmtk/merge_requests/3
-
pcl (stable/1.9.1 -> testing/1.9.1-r1 -> stable/1.9.1-r1) Merge request URL: https://git.ircad.fr/conan/conan-pcl/merge_requests/4
-
mregistration (stable/1.1.1-r3 -> testing/1.1.1-r4 -> stable/1.1.1-r4) Merge request URL: https://git.ircad.fr/conan/conan-mregistration/merge_requests/4
-
itk (stable/4.13.2 -> testing/4.13.2-r1 -> stable/4.13.2-r1) Merge request URL: https://git.ircad.fr/conan/conan-itk/merge_requests/2
-
odil (stable/0.10.0 -> testing/0.10.0-r1 -> stable/0.10.0-r1) Merge request URL: https://git.ircad.fr/conan/conan-odil/merge_requests/3