CloudCompare / CCCoreLib

C++ library which provides data structures & algorithms for working with 3D point cloud data
Other
154 stars 50 forks source link

Linux builds without TBB on Ubuntu 18 #2

Open asmaloney opened 4 years ago

asmaloney commented 4 years ago

Describe the bug

The cmake files were rewritten for this library and they use the "modern" approach. This means that they use find_package CONFIG mode to find libraries and then use target_link_libraries to bring everything in.

Ubuntu 18.04 does not install the TBB cmake file (TBBConfig.cmake) needed to make this work properly.

Ubuntu Name libtbb-dev Required Files?
18.04 bionic 2017.x No
19.04 disco 2018.x Yes
19.10 eoan 2019.x Yes
20.x focal 2020.x Yes

So another strategy is needed. Hopefully one cleaner than the FindTBB.cmake versions that are floating around.

(Updated to add info about CONFIG mode and links to packages.)

asmaloney commented 4 years ago

I'm trying to avoid special cases, but maybe fallback on failure to the FindTBB we were using before? At least until Ubuntu 18 goes away.

EpicWink commented 4 years ago

To use FindTBB.cmake, I had to set CMAKE_MODULES_PATH=/usr/share/cmake/Modules (or CMAKE_MODULE_PATH, one of the two)

On Ubuntu 19.10, with libtbb-dev installed

Side-note: I get linking errors when I try to build with TBB, but that's #33

asmaloney commented 4 years ago

To reiterate what I mention in #33, we are using CONFIG mode, not MODULE mode. (I updated original post.)

So we want TBBConfig.cmake, not FindTBB.cmake. It looks like Ubuntu 18.04 has neither file, 19.10 has both, and 20 only has the config file. So maybe to find the correct file on 19 we need to force CONFIG mode (see #33).