alandefreitas / matplotplusplus

Matplot++: A C++ Graphics Library for Data Visualization 📊🗾
https://alandefreitas.github.io/matplotplusplus/
MIT License
4.34k stars 334 forks source link

CImg: cv.h not found #422

Open Zacrain opened 3 months ago

Zacrain commented 3 months ago

Bug category

Matplot++ Version 1.2.0

Describe the bug I've added Matplot++ via CPM on two Ubuntu machines. I have no issues on one of them. The other, however, can not compile due to cv.h not being found which is required by the 3rd party library CImg.

In CImg.h I've tried changing the included headers to opencv2/opencv.hpp and opencv2/highgui.hpp as OpenCV 4.8.1 is installed. This, understandably, led to a bunch of errors. And removing the CImg library seems not to be a solution either as Matplot++ obviously relies on it in several ways.

Steps to Reproduce

mkdir build
cd build
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/gcc -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/g++ -S<redacted_project_path> -B<redacted_project_path>/build -G "Unix Makefiles" -D ENABLE_MATPLOT=ON
make -j8

(ENABLE_MATPLOT is an option I set in my project's CMake configuration to enable/disable some components which rely on Matplot. I can build my project without Matplot++ features if I want to, so you don't need to worry about that option.)

Output

In file included from <redacted_project_path>/build/_deps/matplotplusplus-src/source/matplot/util/common.cpp:23:
<redacted_project_path>/_deps/matplotplusplus-src/source/3rd_party/cimg/CImg.h:419:10: fatal error: cv.h: No such file or directory
  419 | #include "cv.h"
      |          ^~~~~~

Platform

Environment Details:

Additional context CPM command used to add Matplot++ and the corresponding section in the specific CMake file:

    CPMAddPackage("gh:alandefreitas/matplotplusplus@1.2.0")
    target_link_libraries(${TARGET_NAME} matplot)
Zacrain commented 2 months ago

After upgrading CMake from 3.16.3 to 3.30.02 I now encounter the same issue on both machines. Both have newer CMake versions now. Therefore I wonder whether this issue is related to that.

HosameldinMohamed commented 2 months ago

I'm having the same issue while trying to add Matplot++ using CMake's FetchContent

FetchContent_Declare(
  matplotplusplus
  GIT_REPOSITORY https://github.com/alandefreitas/matplotplusplus.git
  GIT_TAG                   v1.2.0
)
FetchContent_MakeAvailable(matplotplusplus)

target_link_libraries(tests PRIVATE matplot)

I'm using CMake 3.30.3