This service is available only in Japanese-language.

OpenCVをCMakeオプション付きでビルドしたい

OpenCVをyoctoに入れる際に、local.confに以下を追記しています。

IMAGE_INSTALL_append += " opencv"
PREFERRED_VERSION_opencv = "4.1.0%"

ただ、この場合だとCMakeでオプション無でビルドしたのと同等になってしまうのではと考えています。

YoctoにOpenCVを導入する場合、CMakeのオプション付きでビルドしたのと同等になるような手法はございますか?

meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.1.0.bb を確認しますと
==========================================================================
83 EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \
84 -DWITH_1394=OFF \
85 -DENABLE_PRECOMPILED_HEADERS=OFF \
86 -DCMAKE_SKIP_RPATH=ON \
87 -DOPENCV_ICV_HASH=${IPP_MD5} \
88 -DIPPROOT=${WORKDIR}/ippicv_lnx \
89 -DOPENCV_GENERATE_PKGCONFIG=ON \
90 -DOPENCV_DOWNLOAD_PATH=${OPENCV_DLDIR} \
91 -DOPENCV_ALLOW_DOWNLOADS=OFF \
92 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \
93 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \
94 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \
95 "
==========================================================================
と記述されており、bitbake -e opencv を実行すると
==========================================================================
EXTRA_OECMAKE="-DOPENCV_EXTRA_MODULES_PATH=/home/lineo/imx/5.4.70-2.3.1/build-xwayland/tmp/work/aarch64-mx8m-poky-linux/opencv/4.4.0.imx-r0/contrib/modules -DWITH_1394=OFF -DENABLE_PRECOMPILED_HEADERS=OFF -DCMAKE_SKIP_RPATH=ON -DOPENCV_ICV_HASH=7421de0095c7a39162ae13a6098782f9 -DIPPROOT=/home/lineo/imx/5.4.70-2.3.1/build-xwayland/tmp/work/aarch64-mx8m-poky-linux/opencv/4.4.0.imx-r0/ippicv_lnx -DOPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_DOWNLOAD_PATH=/home/lineo/imx/5.4.70-2.3.1/build-xwayland/tmp/work/aarch64-mx8m-poky-linux/opencv/4.4.0.imx-r0/downloads -DOPENCV_ALLOW_DOWNLOADS=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_OPENCLAMDFFT=OFF -DBUILD_opencv_dnn=ON -DPROTOBUF_UPDATE_FILES=ON -DBUILD_PROTOBUF=OFF -DWITH_EIGEN=OFF -DBUILD_opencv_freetype=OFF -DWITH_ADE=ON -Dade_DIR=/home/lineo/imx/5.4.70-2.3.1/build-xwayland/tmp/work/aarch64-mx8m-poky-linux/opencv/4.4.0.imx-r0/recipe-sysroot/usr/lib -DWITH_GPHOTO2=ON -DWITH_GSTREAMER=ON -DWITH_GTK=ON -DWITH_JASPER=OFF -DWITH_JPEG=ON -DWITH_FFMPEG=OFF -DWITH_LIBV4L=ON -DWITH_OPENCL=ON -DWITH_OPENVX=OFF -DWITH_PNG=ON -DPYTHON3_NUMPY_INCLUDE_DIRS:PATH=/home/lineo/imx/5.4.70-2.3.1/build-xwayland/tmp/work/aarch64-mx8m-poky-linux/opencv/4.4.0.imx-r0/recipe-sysroot/usr/lib/python3.7/site-packages/numpy/core/include -DWITH_QT=OFF -DBUILD_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON -DWITH_TBB=ON -DBUILD_TESTS=OFF -DINSTALL_TESTS=OFF -DBUILD_opencv_text=ON -DWITH_TIFF=ON -DWITH_V4L=ON"
==========================================================================
と、実際に構築時に指定するオプションが確認できます。

上記オプションで不足する場合は、opencvのbbappendを作成し、EXTRA_OECMAKE_append = " xxxxxx" と追加すれば良いかと。

opencv_4.1.0.bbappend を作成しましたが、既存のオプション一覧の最後に追加されただけでした。

EXTRA_OECMAKE_append = " \
-DWITH_FFMPEG=OFF \
-DWITH_QT=OFF \
"

$ bitbake -e opencv | grep EXTRA_OECMAKE=

EXTRA_OECMAKE=" \
...
-DWITH_FFMPEG=ON
...
-DWITH_FFMPEG=OFF
-DWITH_QT=OFF
"

後の方に追加なので、オプションは上書きされると思うので、これでも問題ないとは思いますが、
追加するだけでなく、既存のオプション(例:-DWITH_FFMPEG=ON)を消すことは可能でしょうか?

EXTRA_OECMAKE_remove のようなものがあれば、と期待していますが。。。

bitbakeのマニュアルに記載がありますが、既存の変数に設定された値から特定の文字列を削除する演算子 _remove は存在します。

https://docs.yoctoproject.org/bitbake/1.46/bitbake-user-manual/bitbake-u...