cvnp
cvnp copied to clipboard
Refactor for better interoperability with conan
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!
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:```
Closing in favor of https://github.com/pthom/cvnp/pull/22