mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.7 KiB
81 lines
1.7 KiB
#!/bin/bash |
|
|
|
set -e |
|
|
|
if [ -z $1 ] ; then |
|
echo "<script> <destination directory>" |
|
exit 1 |
|
fi |
|
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" |
|
OCV="$( cd "${DIR}/../../.." >/dev/null 2>&1 && pwd )" |
|
mkdir -p "${1}" # Docker creates non-existed mounts with 'root' owner, lets ensure that dir exists under the current user to avoid "Permission denied" problem |
|
DST="$( cd "$1" >/dev/null 2>&1 && pwd )" |
|
CFG=$2 |
|
|
|
do_build() |
|
{ |
|
TAG=$1 |
|
D=$2 |
|
F=$3 |
|
shift 3 |
|
docker build \ |
|
--build-arg http_proxy \ |
|
--build-arg https_proxy \ |
|
$@ \ |
|
-t $TAG \ |
|
-f "${D}/${F}" \ |
|
"${D}" |
|
} |
|
|
|
do_run() |
|
{ |
|
TAG=$1 |
|
shift 1 |
|
docker run \ |
|
-it \ |
|
--rm \ |
|
-v "${OCV}":/opencv:ro \ |
|
-v "${DST}":/dst \ |
|
-e CFG=$CFG \ |
|
--user $(id -u):$(id -g) \ |
|
$TAG \ |
|
$@ |
|
} |
|
|
|
build_gstreamer() |
|
{ |
|
TAG=opencv_gstreamer_builder |
|
do_build $TAG "${DIR}/plugin_gstreamer" Dockerfile |
|
do_run $TAG /opencv/modules/videoio/misc/plugin_gstreamer/build.sh /dst $CFG |
|
} |
|
|
|
build_ffmpeg_ubuntu() |
|
{ |
|
VER=$1 |
|
TAG=opencv_ffmpeg_ubuntu_builder:${VER} |
|
do_build $TAG "${DIR}/plugin_ffmpeg" Dockerfile-ubuntu --build-arg VER=${VER} |
|
do_run $TAG /opencv/modules/videoio/misc/plugin_ffmpeg/build-ubuntu.sh /dst ${VER} ${CFG} |
|
} |
|
|
|
build_ffmpeg() |
|
{ |
|
VER=$1 |
|
TAG=opencv_ffmpeg_builder:${VER} |
|
ARCHIVE="${DIR}/plugin_ffmpeg/ffmpeg-${VER}.tar.xz" |
|
if [ ! -f "${ARCHIVE}" ] ; then |
|
wget https://www.ffmpeg.org/releases/ffmpeg-${VER}.tar.xz -O "${ARCHIVE}" |
|
fi |
|
do_build $TAG "${DIR}/plugin_ffmpeg" Dockerfile-ffmpeg --build-arg VER=${VER} |
|
do_run $TAG /opencv/modules/videoio/misc/plugin_ffmpeg/build-standalone.sh /dst ${VER} ${CFG} |
|
} |
|
|
|
echo "OpenCV: ${OCV}" |
|
echo "Destination: ${DST}" |
|
|
|
build_gstreamer |
|
build_ffmpeg_ubuntu 18.04 |
|
build_ffmpeg_ubuntu 16.04 |
|
build_ffmpeg 4.1 |
|
build_ffmpeg 3.4.5 |
|
build_ffmpeg 2.8.15
|
|
|