As Jonathan noticed in [1], users' applications may depend on opencv-2.4
APIs removed in opencv-3.0.
So, re-introduce opencv package as it was right before the bump to
opencv-3.0 (i.e.: commit bf00b5a9ea).
We do not support both OpenCV-2.4 and OpenCV-3 at the same time, so make
OpenCV-3 depend on !OpenCV-2.4.
[1] http://lists.busybox.net/pipermail/buildroot/2015-August/135270.html
Cc: Jonathan Ben Avraham <yba@tkos.co.il>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
[yann.morin.1998@free.fr:
- remove legacy symbols, now
- make opencv3 depends on !opencv, not the other way around
- slitghly reword the commit log (opencv/opencv3 dependency)
]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Since there is a couple of API breaks between OpenCV 2.4 and 3.0, two
distinct packages mutually exclusive will be integrated in the package
tree.
So, this change prepares the re-introduction of the OpenCV-2.4 package
by renaming the current opencv package (which provides OpenCV-3.0) to
opencv3.
Reverse dependencies (vlc) is fixed to use the new symbols.
Cc: Jonathan Ben Avraham <yba@tkos.co.il>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
[yann.morin.1998@free.fr:
- fix missed usage in vlc.mk
- don't remove legacy OpenCV symbols
- fix 'endif' comment
- slightly reword commit log (reverse deps)
]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
OpenCV currently does not build on Xtensa due to compiler/assembler
issues:
Error: operand 2 of 'l32r' has out of range value '4294632228'
Until this gets fixed, let's disable OpenCV on Xtensa.
Temporarily works around:
http://autobuild.buildroot.net/results/0be/0bed0779685d9ed83466a4d29a0281ca93043a2e/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
In OpenCV, OpenGL is only used by highgui module.
OpenGL support is done using extensions from 3rd party framework: either
Qt5OpenGL with Qt5 (with GL support only, not GLES); or gtkglext (which
is not available in Buildroot) with gtk2
So, make OpenGL knob a sub-option of the Qt5 support option.
Note: we enclose both the GUI toolkit choice and the GL option in an
if-block, so that the GL option gets properly indented; having it
depend on WITH_QT5 is not enough, because it does not directly follow
it, so kconfig would not consider it for indenting.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
[yann.morin.1998@free.fr: tweak commit log about the if-block]
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
OpenCV now also supports gtk3 as a GUI toolkit, in addition to gtk2,
but only one may be enabled at a time.
So, add gtk3 in the choice to select the GUI toolkit.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
[yann.morin.1998@free.fr: drop the superfluous depends-on for the
kconfig symbol, since they're no longer needed now we depend-on rather
than select]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Starting with the 2.4.6 release, OpenCV supports either Qt4 or Qt5 as GUI
toolkit, so add Qt5 in the GUI toolkit choice.
When Qt4 is enabled (and thus Qt5 is hidden and disabled), no need to
show a comment stating "Qt5 support needs Qt5", because Qt5 is not
selectable.
Conversely, when Qt5 is enabled and Qt4 is not, then no need to show a
comment stating "Qt4 support needs Qt4", because enabling Qt4 would
disable Qt5.
So, we only show the comments when neither toolkit is enabled.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
[yann.morin.1998@free.fr: split-out the Qt5 hunk from the
switch-selects-to-depends hunk]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Currently, we only support either Qt4 or gtk2, but OpenCV also
additionally supports Qt5 or gtk3, making for a choice of four
toolkits, one of: Qt4, Qt5, gtk3, gtk2 (and obviously, none).
Since Buildroot does not support coexistence of Qt4 and Qt5, we
can no longer select one and depend on the other, like so:
config BR2_PKG_OCV_WITH_QT4
bool "Qt4"
depends on !BR2_PKG_QT5
select BR2_PKG_QT
config BR2_PKG_OCV_WITH_QT5
bool "Qt5"
depends on !BR2_PKG_QT
select BR2_PKG_QT5
otherwise, we'd get a circular dependency chain in Kconfig, which would
complain with:
package/opencv/Config.in:57:error: recursive dependency detected!
package/opencv/Config.in:57: choice <choice> contains symbol BR2_PKG_OCV_WITH_QT5
package/opencv/Config.in:111: symbol BR2_PKG_OCV_WITH_QT5 depends on BR2_PKG_QT
package/qt/Config.in:5: symbol BR2_PKG_QT is selected by BR2_PKG_OCV_WITH_QT
package/opencv/Config.in:98: symbol BR2_PKG_OCV_WITH_QT is part of choice <choice>
Instead, we need to depend on either Qt version.
So, to have a consistent choice, we make all support for GUI toolkits
actually depend on the toolkit, rather than select it.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
[yann.morin.1998@free.fr: split-out the switch-selects-to-depends hunk
from the add-qt5 hunk]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
In OpenCV, only one GUI toolkit may be used at any one time, so group
the two existing options into a choice to make this situation explicit.
This will also be useful when we later add support for Qt5 and gtk3.
Suggested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
[yann.morin.1998@free.fr: tweak commit log]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Starting with the 2.4.10 release, OpenCV supports both Gstreamer-0.10
and Gstreamer-1, but only one can be enabled at the same time (OpenCV
chooses Gstreamer-1 over Gstreamer-0.10 when both are available).
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
OpenCV 3.0 support both gstreamer-0.10 and gstreamer-1.x, but only one
is used at the time.
This patch turns the gstreamer support into a choice, in order to prepare
adding the support for gstreamer-1 in a following patch.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Note that this situation is not ideal because it only add openmp support
to the Buildroot toolchain, not the external ones; but a couple of
packages already are in this situation.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
opencv_python module needs python-numpy because it uses some numpy
headers in this wrapper.
>From its 2.4 release, OpenCV offers python bindings, but they required
most of the OpenCV modules to be enabled.
Since OpenCV-3.0.0, python bindings have been reworked:
- it now supports both python2 and python3
- only built modules supporting wrapped in python will be included in
the bindings.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This change allows to reduce the size of the default OpenCV package, so
the final root filesystem.
However, this will break any existing defconfig enabling OpenCV. Indeed,
a minimal OpenCV package will be built, whereas, prior to applying this
patches, a full-featured one would have been built instead.
Cc: "Yann E. Morin" <yann.morin.1998@free.fr>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Since its integration into Buildroot, OpenCV always enables all modules
by default because the inter-module denpedency were not supported.
Now that OpenCV inter-module dependencies are correctly set at the
Buildroot configuration level, it is possible to reduce the enabled
module list to its minimal set, letting kconfig enable the other
modules.
This change will not change anything WRT a defconfig build with opencv.
Cc: "Yann E. Morin" <yann.morin.1998@free.fr>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This patch is mostly cosmetic changes improving the human interface.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
OpenCV allows to enable/disable the selection of modules (a.k.a.
opencv libraries). These modules depend one on the others; these
dependencies are already handled by the build-system (CMake).
However, the way we handled them in Buildroot was not really clean.
For each opencv module, there is a kconfig option, but we forced the
corresponding CMake config option without checking for the modules'
dependencies.
This patch replicates the modules' dependency relations in the
Config.in, so that the selection of the user will actually be built.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This major version bump is in fact a bump from 2.4.10 to 2.4.11, then to
3.0.
OpenCV-2.4.11 improves a lot the Buildroot integration, including a
couple of patches that are no longer needed:
- x86 PIC code compilation fix in core module [1];
- return type fix in superes module [2];
- opencv.pc generation [3].
It also improves the gstreamer-0.10/1.x detection [4], that will be
needed in a follow-up patch.
OpenCV-3.0 still requires 2 patches (backported from upstream fixing
pthread support [5,6].
The OpenCV-3.0 does some major changes, for which a transition guide
has been published [7].
Among these changes coming with OpenCV-3.0, some new modules have been
introduced and others got removed; leading to a bunch of configure
option updates (to keep as much as possible an iso-functional-perimeter)
and the legacy menu has been updated too.
The worth noticing removals being:
- the opencv_legacy and opencv_nonfree modules no longer exist;
- the opencv_contrib module has moved out of the opencv base tree and
now has its own repository [8].
There is currently no plan to support it.
Some 3rd-party supports have been improved or added; their integrations
in Buildroot will be addressed in follow-up patches.
[1] ea50be0529
[2] 2e393ab833
[3] eceada586b
[4] 38bb0db9db
[5] 1f983ec39c
[6] a482dcce46
[7] http://docs.opencv.org/master/db/dfa/tutorial_transition_guide.html
[8] https://github.com/itseez/opencv_contrib
[Thomas:
- address most contents made by Yann E. Morin on the Config.in file.]
Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
No new option added nor removed.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Nothing more than removing white spaces before '\' characters.
Of course, 'git diff -w' shows no change at all.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This change fixes build of packages depending on opencv and using
pkg-config to get the opencv LDFLAGS, which were wrongly ordered for
static build and included absolute path pointing to the host system
libraries instead of the sysroot ones.
This patch fixes build issues with gst1-plugins-bad and vlc.
This change introduce and new patch to opencv, which is already merged
upstream [1].
Fixes:
http://autobuild.buildroot.net/results/c70/c70f793c7c3b380428d6e2e622a90805cffc4dd1/
... and many others
[1] eceada586b
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Now that IPv6 is mandatory remove package dependencies and conditionals
for it.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Now that largefile is mandatory removes package dependencies and
conditionals.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Since the tarball we download is generated from GitHub, there's no
saying that the tarball won't differ in a month from now.
So the hash has no value there.
An update to the manual should be done.
Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
superres module fails to compile with the following error messages:
[100%] Building CXX object
modules/superres/CMakeFiles/opencv_superres.dir/src/super_resolution.cpp.o
/opencv-2.4.10/modules/superres/src/frame_source.cpp: In function
'cv::Ptr<cv::superres::FrameSource>
cv::superres::createFrameSource_Video_GPU(const string&)':
/opencv-2.4.10/modules/superres/src/frame_source.cpp:263:16: error:
expected type-specifier before 'VideoFrameSource'
/opencv-2.4.10/modules/superres/src/frame_source.cpp:263:16: error:
could not convert '(int*)operator new(4ul)' from 'int*' to
'cv::Ptr<cv::superres::FrameSource>'
/opencv-2.4.10/modules/superres/src/frame_source.cpp:263:16: error:
expected ';' before 'VideoFrameSource'
/opencv-2.4.10/modules/superres/src/frame_source.cpp:263:41: error:
'VideoFrameSource' was not declared in this scope
/opencv-2.4.10/modules/superres/src/frame_source.cpp:264:1: error:
control reaches end of non-void function [-Werror=return-type]
cc1plus: some warnings being treated as errors
make[3]: ***
[modules/superres/CMakeFiles/opencv_superres.dir/src/frame_source.cpp.o]
Error 1
make[3]: *** Waiting for unfinished jobs....
This is caused because the return value of the
createFrameSource_Video_GPU function should be a VideoFrameSource_GPU
object.
Backporting an upstream patch to fix this problem in Buildroot:
2e393ab833
Fixes:
http://autobuild.buildroot.net/results/b09/b0996267197a9016d29d6070804ebc0cb7853548/
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Disabling doc and example build is already done by the cmake-package
infrastructure.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To be consistent with the recent change of FOO_MAKE_OPT into FOO_MAKE_OPTS,
make the same change for FOO_CONF_OPT.
Sed command used:
find * -type f | xargs sed -i 's#_CONF_OPT\>#&S#g'
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Reviewed-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
OpenCV's highgui module needs to be auto-selected when the ts module is
selected, because it depends on it. Otherwise it would fail with an
error like this one:
[ 96%] Building CXX object
modules/ts/CMakeFiles/opencv_ts.dir/src/gpu_perf.cpp.o
In file included from
/home/test/autobuild/instance-1/output/build/opencv-2.4.8/modules/ts/src/gpu_perf.cpp:43:0:
/home/test/autobuild/instance-1/output/build/opencv-2.4.8/modules/ts/include/opencv2/ts/gpu_perf.hpp:47:39:
fatal error: opencv2/highgui/highgui.hpp: No such file or directory
compilation terminated.
Fixes:
http://autobuild.buildroot.net/results/31b/31b124ff1ec958a621863bfc80323847a6373135/
Issue reported upstream:
http://code.opencv.org/issues/3923
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Starting with the 2.4.7 release, for V4L support, OpenCV does not
requires a libv4l dependency for its V4L support.
So, it now provides 2 distincts knobs for this: WITH_V4L and a new
one: WITH_LIBV4L.
This patch takes advantage of this new knob and libv4l support is
now automatically enabled only if the libv4l package is enabled.
In OpenCV, the logic behind this is:
- using libv4l if available,
- otherwise, use v4l2 or v4l API from the kernel if available.
[Thomas: remove gratuituous reformating, as suggested by Yann.]
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Only the highgui module can use Qt or GTK (as noticed by Thomas.)
However, it is currently possible to select the Qt or the GTK backends
support independently of highgui, thus breaking the configuration step
of opencv.
Just hide the Qt and GTK backends when highgui is not selected.
Fixes:
http://autobuild.buildroot.org/results/efc/efc9590a193235701fee535f4a1da7b39c426665/http://autobuild.buildroot.org/results/b6a/b6acd983b8c78005feef6864af469bd348ab742a/
[Thomas: remove 'if BR2_PACKAGE_OPENCV_LIB_HIGHGUI' statements since
BR2_PACKAGE_OPENCV_WITH_QT now depends on
BR2_PACKAGE_OPENCV_LIB_HIGHGUI]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The core module of OpenCV is now using the pthread_spin_*() API, which
is only available in the 'linuxthreads' and 'NPTL' thread
implementations, but not in the 'linuxthreads.old'
implementation. Therefore, this commit adds a dependency on OpenCV to
NPTL threads.
Fixes:
http://autobuild.buildroot.org/results/75d/75db3827ec4be8a3805508a22b8b6a4d1a3b9ce3/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Thomas: adjust Config.in help text as suggested by Yann E. Morin.]
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Since there is currently no easy way to know if the current Buildroot
configuration has a toolchain supporting OpenMP (especially for external
toolchains), then just disable it.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This module is used to build programs for training classifiers.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This new module has been introduced in opencv-2.4.8.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sort SW features by category and disable them when not supported by
Buildroot.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sort per HW features and disable their support when it is not suppported
by Buildroot.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To make easier future package update.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This patch bumps OpenCV version and address the minimal set of change to
get the new version building correctly:
- update the download location;
- force Qt version to Qt 4 when support is enabled;
- naively fix the v4l support.
However, it does not address a couple improvements, among these:
- jasper support;
- python/numpy support;
- Qt4 and Qt5 support (since the 2.4.6 release), so only Qt4 support is
supported in this patch;
- optional libv4l dependency (since 2.4.7 release);
- etc.
These will be addressed in followup patches.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This flag is already correctly set by the cmake-package infrastructure.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>