(cmake): conan update and compilation flag sharing
What does this MR do?
-
Update ogre to patched version 1.12.2
-
Match shader input/ouput attribute names in vertex/geometry/fragment shaders.
-
Fix varying parsing for the volume proxy bricks shaders.
-
Replace the deprecated scene node iterator.
-
Remove the debug plugin configuration on windows.
-
Explicitly convert quaternions to matrices.
-
Fix normal rendering.
-
Add Visula studio 2019 support with conan package available on artifactory. All conan packages have been updated
-
Share "optimized" debug compiler flags across all conan package and Sight. Some previous work on array API (and in many place in our code or our dependencies) showed very bad performance in debug. To mitigate this, we want to use optimized debug build with
-Og -g
(unix) or/Ox /Oy- /Ob1 /Z7 /MDd
(windows) which will effectively make the speed almost reach release build, while being "debuggable".The drawbacks are:
- the build will take a bit longer (max 20% longer)
- some lines may be "optimized" out
- we loose /RTC1 on windows
To allow "full" debugging on Sight, we plan to add a special option to use regular flags.
A new option THOROUGH_DEBUG
has been added to allow full debugging without optimization, if needed. On windows it also add /sdl /RTC1 which performs additional security checks.
Also be sure to have the latest version of conan and that you use the latest settings.yml
on Windows or macOS (sometimes there is a settings.yml.new
and you need to rename it settings.yml
). On Linux, Sight automatically download an updated settings.yml
, but you can still update conan.
To update conan: pip3 install --upgrade conan
How to test it?
On macOS:
- install XCode 11.0
- build and launch at least VRRender, OgreViewer, all unit tests....
On LinuxMint19:
- install gcc8
- build and launch at least VRRender, OgreViewer, all unit tests....
On Windows
- install VisualStudio 2017 or VisualStudio 2019 (to have better support of c++17)
- build and launch at least VRRender, OgreViewer, all unit tests....
Try to set breakpoints and perform step by step debug
Additional tests to run
(If you need some specific test e.g Windows compilation...)
-
Build on Windows -
Build on macOS -
Build on Linux
Associated Issues/Merge Requests
-
Issues
- Fixes #378 (closed)
- Fixes #375 (closed)
- Fixes #362 (closed)
-
Merge requests
-
depends on common (stable/1.0.0 -> testing/1.0.1 -> stable/1.0.1 -
depends on cares (stable/1.15.0-r1 -> testing/1.15.0-r2 -> stable/1.15.0-r2 -
depends on ippe (stable/1.2-r1 -> testing/1.2-r2 -> stable/1.2-r2 -
depends on openssl (stable/1.1.1b-r1 -> testing/1.1.1b-r2 -> stable/1.1.1b-r2 -
depends on live555 (stable/1.21.0-r2 -> testing/1.21.0-r3 -> stable/1.21.0-r3 -
depends on tensorflow (stable/2.0.0-beta1 -> testing/2.0.0-beta1-r1 -> stable/2.0.0-beta1-r1 -
depends on trakstar (stable/1.0-r2 -> testing/1.0-r3 -> stable/1.0-r3 -
depends on libsgm (stable/1.0.0-r3 -> testing/1.0.0-r4 -> stable/1.0.0-r4 -
depends on ffmpeg (stable/4.1-r5 -> testing/4.1-r6 -> stable/4.1-r6 -
depends on vlc (stable/3.0.6-r2 -> testing/3.0.6-r3 -> stable/3.0.6-r3 -
depends on tetgen (stable/1.5.0-r2 -> testing/1.5.0-r3 -> stable/1.5.0-r3 -
depends on icu (stable/51.2-r2 -> testing/51.2-r3 -> stable/51.2-r3 -
depends on log4cpp (stable/1.1.1-r2 -> testing/1.1.1-r3 -> stable/1.1.1-r3 -
depends on jsoncpp (stable/1.7.1-r2 -> testing/1.7.1-r3 -> stable/1.7.1-r3 -
depends on bullet (stable/2.88-r1 -> testing/2.88-r2 -> stable/2.88-r2 -
depends on cryptopp (stable/8.1.0-r1 -> testing/8.1.0-r2 -> stable/8.1.0-r2 -
depends on flann (stable/1.9.1-r3 -> testing/1.9.1-r4 -> stable/1.9.1-r4 -
depends on openni (stable/2.2.0-r3 -> testing/2.2.0-r4 -> stable/2.2.0-r4 -
depends on cxsparse (stable/3.1.1-r2 -> testing/3.1.1-r3 -> stable/3.1.1-r3 -
depends on glog (stable/0.4.0-r1 -> testing/0.4.0-r2 -> stable/0.4.0-r2 -
depends on openigtlink (stable/2.1-r3 -> testing/2.1-r4 -> stable/2.1-r4 -
depends on librealsense (stable/2.23.0 -> testing/2.23.0-r1 -> stable/2.23.0-r1 -
depends on eigen (stable/3.3.7-r1 -> testing/3.3.7-r2 -> stable/3.3.7-r2 -
depends on glew (stable/2.0.0-r2 -> testing/2.0.0-r3 -> stable/2.0.0-r3 -
depends on expat (stable/2.2.5-r2 -> testing/2.2.5-r3 -> stable/2.2.5-r3 -
depends on cppunit (stable/1.14.0-r2 -> testing/1.14.0-r3 -> stable/1.14.0-r3 -
depends on glm (stable/0.9.9.4-r1 -> testing/0.9.9.4-r2 -> stable/0.9.9.4-r2 -
depends on libjpeg (stable/9c-r2 -> testing/9c-r3 -> stable/9c-r3 -
depends on winiconv (stable/0.0.8-r2 -> testing/0.0.8-r3 -> stable/0.0.8-r3 -
depends on zlib (stable/1.2.11-r2 -> testing/1.2.11-r3 -> stable/1.2.11-r3 -
depends on boost (stable/1.69.0-r2 -> testing/1.69.0-r3 -> stable/1.69.0-r3 -
depends on websocketpp (stable/0.8.1-r1 -> testing/0.8.1-r2 -> stable/0.8.1-r2 -
depends on cpprestsdk (stable/2.10.13-r1 -> testing/2.10.13-r2 -> stable/2.10.13-r2 -
depends on hybrid_marker_tracker (stable/1.1-r1 -> testing/1.1-r2 -> stable/1.1-r2 -
depends on protobuf (stable/3.7.1-r2 -> testing/3.7.1-r3 -> stable/3.7.1-r3 -
depends on libfreenect (stable/0.5.7-r2 -> testing/0.5.7-r3 -> stable/0.5.7-r3 -
depends on ceres (stable/1.14.0-r2 -> testing/1.14.0-r3 -> stable/1.14.0-r3 -
depends on zzip (stable/0.13.69-r2 -> testing/0.13.69-r3 -> stable/0.13.69-r3 -
depends on freetype (stable/2.9.1-r2 -> testing/2.9.1-r3 -> stable/2.9.1-r3 -
depends on camp (stable/0.8.3 -> testing/0.8.3-r1 -> stable/0.8.3-r1 -
depends on libpng (stable/1.6.34-r2 -> testing/1.6.34-r3 -> stable/1.6.34-r3 -
depends on libtiff (stable/4.0.9-r2 -> testing/4.0.9-r3 -> stable/4.0.9-r3 -
depends on libxml2 (stable/2.9.8-r2 -> testing/2.9.8-r3 -> stable/2.9.8-r3 -
depends on grpc (stable/1.20.1-r2 -> testing/1.20.1-r3 -> stable/1.20.1-r3 -
depends on dicom-rtv-converter (stable/1.0.4-r1 -> testing/1.0.4-r2 -> stable/1.0.4-r2 -
depends on qt (stable/5.12.4 -> testing/5.12.4-r1 -> stable/5.12.4-r1 -
depends on sofa (stable/18.06.01-r3 -> testing/18.06.01-r4 -> stable/18.06.01-r4 -
depends on opencv (stable/3.4.6 -> testing/3.4.6-r1 -> stable/3.4.6-r1 -
depends on ptam (stable/0.7.2-r5 -> testing/0.7.2-r6 -> stable/0.7.2-r6 -
depends on orbslam2 (stable/0.5.1-r5 -> testing/0.5.1-r6 -> stable/0.5.1-r6 -
depends on vtk (stable/8.2.0-r2 -> testing/8.2.0-r3 -> stable/8.2.0-r3 -
depends on gdcm (stable/2.8.9-r2 -> testing/2.8.9-r3 -> stable/2.8.9-r3 -
depends on (conan-ogre): update ogre to version 1.12.2 -
depends on libarchive (stable/3.1.2-r2 -> testing/3.1.2-r3 -> stable/3.1.2-r3 -
depends on dcmtk (stable/3.6.4-r1 -> testing/3.6.4-r2 -> stable/3.6.4-r2 -
depends on aruco (stable/3.0.12-r3 -> testing/3.0.12-r4 -> stable/3.0.12-r4 -
depends on pcl (stable/1.9.1-r3 -> testing/1.9.1-r4 -> stable/1.9.1-r4 -
depends on mregistration (stable/1.1.2-r2 -> testing/1.1.2-r3 -> stable/1.1.2-r3 -
depends on itk (stable/5.0.1 -> testing/5.0.1-r1 -> stable/5.0.1-r1 -
depends on odil (stable/0.10.0-r2 -> testing/0.10.0-r3 -> stable/0.10.0-r3 -
depends on libusb stable/1.0.22-r1 -> testing/1.0.22-r2 -> stable/1.0.22-r2 -
depends on bazel stable/0.24.1 -> testing/0.24.1-r1 -> stable/0.24.1-r1 -
depends on cudnn stable/7.6.1 -> testing/7.6.1-r1 -> stable/7.6.1-r1 -
depends on nccl stable/2.4.7 -> testing/2.4.7-r1 -> stable/2.4.7-r1 -
depends on blackmagic stable/10.11.4-r1 -> testing/10.11.4-r2 -> stable/10.11.4-r2 -
depends on jom stable/1.1.2-r1 -> testing/1.1.3 -> stable/1.1.3 -
depends on dicom-rtv-libs stable/1.4.2 -> testing/1.4.2-r1 -> stable/1.4.2-r1 -
depends on python testing/3.7.4 -> stable/3.7.4 -
depends on pybind11 testing/3.7.4 -> stable/3.7.4