cvnp icon indicating copy to clipboard operation
cvnp copied to clipboard

Refactor for better interoperability with conan

Open mattangus opened this issue 9 months ago • 1 comments
trafficstars

This PR addresses https://github.com/pthom/cvnp/issues/16. I have split the source files into src and include. The test helper files have been moved to main.

This conforms more to the layout that conan is expecting and it groups the headers into a folder cvnp. Users would include via #include <cvnp/...>

This PR also creates a library that the users can link to.

Let me know if you want me to break the PR up into smaller chunks!

mattangus avatar Jan 31 '25 19:01 mattangus

Hi Matt,

Thanks a lot for your PR!

Let me know if you want me to break the PR up into smaller chunks!

Actually, no. On the contrary, I would prefer a global commit. Can I ask you to squash it into one commit? This way, it will be easier to parse and analyze (at the moment, its history is a bit complex, since it had several intermediary merges).


Also, when applying your changed, I had a compilation issue on macOS. If you do not have access to a Mac, I may study on my side later, once the PR commits were squashed.

FAILED: test_cvnp_cpp 
: && /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -g -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.2.sdk -mmacosx-version-min=15.1 -Wl,-search_paths_first -Wl,-headerpad_max_install_names  CMakeFiles/test_cvnp_cpp.dir/tests/test_cvnp_cpp.cpp.o -o test_cvnp_cpp  -Wl,-rpath,/Users/pascal/miniconda3/lib  libcvnp.a  /Users/pascal/miniconda3/lib/libpython3.12.dylib  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libopencv_highgui4d.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libopencv_ml4d.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libopencv_objdetect4d.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libquirc.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libopencv_photo4d.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libopencv_stitching4d.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libopencv_video4d.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libopencv_calib3d4d.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libopencv_dnn4d.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libprotobufd.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libopencv_features2d4d.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libopencv_flann4d.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libopencv_videoio4d.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libopencv_imgcodecs4d.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libjpeg.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libwebpdecoder.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libwebp.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libwebpdemux.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libwebpmux.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libsharpyuv.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libpng16d.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libtiffd.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/liblzma.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libjpeg.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libwebpdecoder.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libwebp.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libwebpdemux.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libwebpmux.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libsharpyuv.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libpng16d.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libtiffd.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/liblzma.a  -lm  -framework AppKit  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libopencv_imgproc4d.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libopencv_core4d.a  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libz.a  -framework OpenCL  /Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/manual-link/opencv4_thirdparty/libtegra_hald.a  -framework Cocoa  -framework Accelerate  -framework AVFoundation  -framework CoreGraphics  -framework CoreMedia  -framework CoreVideo  -framework QuartzCore && :
ld: warning: ignoring duplicate libraries: '/Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libjpeg.a', '/Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/liblzma.a', '/Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libpng16d.a', '/Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libsharpyuv.a', '/Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libtiffd.a', '/Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libwebp.a', '/Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libwebpdecoder.a', '/Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libwebpdemux.a', '/Users/pascal/dvp/OpenSource/ImGuiWork/_Bundle/cvnp/vcpkg/installed/arm64-osx/debug/lib/libwebpmux.a'
Undefined symbols for architecture arm64:
  "__Py_DECREF_DecRefTotal", referenced from:
      Py_DECREF(char const*, int, _object*) in test_cvnp_cpp.cpp.o
      Py_DECREF(char const*, int, _object*) in libcvnp.a[2](cvnp.cpp.o)
  "__Py_INCREF_IncRefTotal", referenced from:
      Py_INCREF(_object*) in test_cvnp_cpp.cpp.o
      Py_INCREF(_object*) in libcvnp.a[2](cvnp.cpp.o)
  "__Py_NegativeRefcount", referenced from:```

pthom avatar Feb 02 '25 21:02 pthom

Closing in favor of https://github.com/pthom/cvnp/pull/22

mattangus avatar Aug 08 '25 15:08 mattangus