Closed PeterBowman closed 3 years ago
Note: check if https://github.com/roboticslab-uc3m/vision/issues/79 could be closed before this one (avoid duplicating efforts).
Commit https://github.com/roboticslab-uc3m/vision/commit/6db02e3ca3494ba7b5dc0636fb5733482686ce49 temporarily enables compliance with OpenCV 4.0+ with regard to still-in-use old C API structures and macros, which we'll need to eventually migrate at some point. Thus, our code is expected to compile with OpenCV 2.x (untested), 3.x (full CI coverage) and 4.x (apparently fine on my local machine).
Edit: see follow-up at https://github.com/roboticslab-uc3m/vision/commit/be8bfac01544ef043079cddca4e1e41f56833835 (tested on TEO's head PC, which has OpenCV 2.4.9).
Done at https://github.com/roboticslab-uc3m/vision/commit/1005c75b8dcab43714d99c0262654f43c2535ae7. Notes:
find_package()
. In contrast to YARP, which skips system lookup on unselected modules, OpenCV seems to use this feature only for populating the OpenCV_LIBS
CMake variable. It's useless since we also request YARP_cv
prior to that, which performs a plain find_package(OpenCV)
under the hood. In any case, now I'm referring to specific OpenCV targets in our target_link_libraries()
calls, which is much clearer, as opposed to using ${OpenCV_LIBS}
.find_package(PCL ... COMPONENTS ...)
. Besides, YARP_pcl only requests pcl_common and pcl_io (YARP 3.4), and in this case asking for all PCL modules would cause more log lines to be printed on CMake configuration.
As a follow-up to https://github.com/roboticslab-uc3m/vision/issues/82 (and keeping https://github.com/roboticslab-uc3m/developer-manual/issues/19 in mind), I'd like to review all included headers. Ideally, this would lead to an improved granularity concerning required dependencies and dependency modules, especially the OpenCV's ones (see also https://github.com/roboticslab-uc3m/questions-and-answers/issues/54). As a result,
find_package()
calls and the installation guide should reflect the minimum supported versions for all dependencies.