Last active
January 14, 2019 15:51
-
-
Save gilbertfrancois/9c7b49ef4ad7f44fd44159ecadf61a24 to your computer and use it in GitHub Desktop.
Updates ofxOpenCv to current OpenCV version from homebrew. The compiled homebrew version includes more modules (e.g. DNN) and is more up-to-date.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# Author: Gilbert Francois Duivesteijn | |
# Date: Aug 2018 | |
# Updated: Jan 2019 | |
# Version: 1.3 | |
# Platform: macOS | |
# License: Apache | |
# | |
# Tested for OpenCV 3.4.5 | |
# | |
# Updates ofxOpenCv to more recent OpenCV version. | |
# Download and extract: | |
# opencv-[version].tar.gz to /tmp/opencv-[version] | |
# opencv_contrib-[version].tar.gz to /tmp/opencv_contrib-[version] | |
# then run this script. The package will be installed temporarely in /tmp/opencv. If you like it | |
# to be installed somewhere else, change the INSTALL_PREFIX parameter. | |
### BEGIN USER SETTINGS | |
# | |
# Set your openframeworks folder locations here... | |
OPENFRAMEWORKS_DIR=${HOME}/Development/git/of_v0.10.1_osx_release | |
# Set your opencv source folders here... | |
OPENCV_SRC=/tmp/opencv-3.4.5 | |
OPENCV_CONTRIB_SRC=/tmp/opencv_contrib-3.4.5/modules | |
INSTALL_PREFIX=/tmp/opencv | |
OSX_MIN_SDK_VER=10.9 | |
# | |
### END USER SETTINGS | |
## SETTINGS | |
OPENCV_BUILD=${OPENCV_SRC}/build | |
## Clean build and target folders | |
rm -Rf ${OPENCV_BUILD} | |
mkdir ${OPENCV_BUILD} | |
rm -Rf ${INSTALL_PREFIX} | |
mkdir ${INSTALL_PREFIX} | |
## Start build | |
cd ${OPENCV_BUILD} | |
echo "[.] Running cmake" | |
echo "--------------------" | |
cmake -D CMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \ | |
-D CMAKE_OSX_DEPLOYMENT_TARGET=10.9 \ | |
-D ENABLE_FAST_MATH=OFF \ | |
-D CMAKE_CXX_FLAGS="-fvisibility-inlines-hidden -stdlib=libc++ -O3 -fPIC -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" \ | |
-D CMAKE_C_FLAGS="-fvisibility-inlines-hidden -stdlib=libc++ -O3 -fPIC -arch x86_64 -mmacosx-version-min=${OSX_MIN_SDK_VER}" \ | |
-D CMAKE_BUILD_TYPE="Release" \ | |
-D BUILD_SHARED_LIBS=OFF \ | |
-D OPENCV_EXTRA_MODULES_PATH:PATH=${OPENCV_CONTRIB_SRC} \ | |
-D OPENCV_ENABLE_NONFREE:BOOL="1" \ | |
-D BUILD_DOCS=OFF \ | |
-D BUILD_EXAMPLES=OFF \ | |
-D BUILD_FAT_JAVA_LIB=OFF \ | |
-D BUILD_JASPER=OFF \ | |
-D BUILD_PACKAGE=OFF \ | |
-D BUILD_opencv_java=OFF \ | |
-D BUILD_opencv_python=OFF \ | |
-D BUILD_opencv_apps=OFF \ | |
-D BUILD_opencv_videoio=OFF \ | |
-D BUILD_JPEG=OFF \ | |
-D BUILD_PNG=OFF \ | |
-D WITH_1394=OFF \ | |
-D WITH_CARBON=OFF \ | |
-D WITH_JPEG=OFF \ | |
-D old-jpeg:BOOL="1" \ | |
-D WITH_PNG=OFF \ | |
-D WITH_FFMPEG=OFF \ | |
-D WITH_OPENCL=OFF \ | |
-D WITH_OPENCLAMDBLAS=OFF \ | |
-D WITH_OPENCLAMDFFT=OFF \ | |
-D WITH_GIGEAPI=OFF \ | |
-D WITH_CUDA=OFF \ | |
-D WITH_CUFFT=OFF \ | |
-D WITH_JASPER=OFF \ | |
-D WITH_LIBV4L=OFF \ | |
-D WITH_IMAGEIO=OFF \ | |
-D WITH_IPP=OFF \ | |
-D WITH_OPENNI=OFF \ | |
-D WITH_QT=OFF \ | |
-D WITH_QUICKTIME=OFF \ | |
-D WITH_V4L=OFF \ | |
-D WITH_PVAPI=OFF \ | |
-D WITH_OPENEXR=OFF \ | |
-D WITH_EIGEN=OFF \ | |
-D BUILD_TESTS=OFF \ | |
-D WITH_VTK=OFF \ | |
-D BUILD_PERF_TESTS=OFF \ | |
.. | |
echo "[.] Running make" | |
echo "--------------------" | |
make clean | |
make -j8 | |
echo "[.] Running make install" | |
echo "--------------------" | |
make install | |
cp 3rdparty/lib/*.a ${INSTALL_PREFIX}/lib | |
# OpenCV folder (for brew installations, it is in /usr/local/opt/opencv) | |
OPENCV_DIR=${INSTALL_PREFIX} | |
# Temporary build location | |
BUILD_DIR="/tmp/ofxOpenCV-build" | |
echo "[.] Creating temporary build folder..." | |
mkdir -pv $BUILD_DIR | |
mkdir -pv $BUILD_DIR/lib | |
echo "[.] Copying headers and libraries..." | |
cp -R ${INSTALL_PREFIX}/include $BUILD_DIR | |
cp -R ${INSTALL_PREFIX}/lib/*.a $BUILD_DIR/lib/ | |
echo "[.] Building single static library file..." | |
outputlist=$BUILD_DIR/lib/lib*.a | |
libtool -static $outputlist -o $BUILD_DIR/lib/opencv.a | |
ls -lh $BUILD_DIR/lib/opencv.a | |
echo "[.] Removing old library and headers in ofxOpenCv..." | |
rm -Rf $OPENFRAMEWORKS_DIR/addons/ofxOpenCv/libs/opencv/include | |
rm -Rf $OPENFRAMEWORKS_DIR/addons/ofxOpenCv/libs/opencv/lib/osx/* | |
echo "[.] Copying new library and headers in ofxOpenCv..." | |
cp -R $BUILD_DIR/include $OPENFRAMEWORKS_DIR/addons/ofxOpenCv/libs/opencv/include | |
cp -R $BUILD_DIR/lib/opencv.a $OPENFRAMEWORKS_DIR/addons/ofxOpenCv/libs/opencv/lib/osx/ | |
echo "[.] Cleaning up..." | |
rm -Rf $BUILD_DIR/lib | |
rm -Rf $BUILD_DIR/include | |
echo "[.] Done!" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment