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.
 
 
 
 
 

168 lines
6.6 KiB

#!/usr/bin/env bash -v
cd "$(dirname "$0")"
cd ../..
BUILD_FOLDER=build_$1
INSTALL_FOLDER=$PWD/platforms/macos/$BUILD_FOLDER/install
CMAKE_FIND_ROOT_FOLDER=$INSTALL_FOLDER
OPENVINO_OPTION=-DWITH_OPENVINO:BOOL=FALSE
if [ "$1" == "all" ]; then
BUILD_ARCH=-DMACOSX_DEPLOYMENT_TARGET=11.0
OSX_SYSROOT_OPTION=-DCMAKE_OSX_SYSROOT:STRING="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/"
CV_OPTIMIZATION=-DCV_DISABLE_OPTIMIZATION:BOOL=ON
CV_PNG_OPTION=-DWITH_PNG:BOOL=FALSE
echo "Building for default architecture"
else
BUILD_ARCH=-DCMAKE_OSX_ARCHITECTURES="$1"
CV_OPTIMIZATION=
CV_PNG_OPTION=-DBUILD_PNG:BOOL=TRUE
echo "Building for $1"
fi
BUILD_VTK=false
BUILD_FREETYPE=false
FREETYPE_OPTIONS=( -DEMGU_CV_WITH_FREETYPE:BOOL=FALSE -DBUILD_opencv_freetype:BOOL=FALSE )
if [[ $# -lt 2 ]]; then
CV_CONTRIB_OPTION=-DOPENCV_EXTRA_MODULES_PATH=../../../opencv_contrib/modules
TESSERACT_OPTION=-DEMGU_CV_WITH_TESSERACT:BOOL=TRUE
echo "Building with contrib module"
else
if [ "$2" == "core" ]; then
TESSERACT_OPTION=-DEMGU_CV_WITH_TESSERACT:BOOL=FALSE
echo "Building without contrib module"
elif [ "$2" == "mini" ]; then
TESSERACT_OPTION=-DEMGU_CV_WITH_TESSERACT:BOOL=FALSE
CV_MODULE_OPTION=-DBUILD_opencv_3d:BOOL=FALSE\ -DBUILD_opencv_calib:BOOL=FALSE\ -DBUILD_opencv_dnn:BOOL=FALSE\ -DBUILD_opencv_ml:BOOL=FALSE\ -DBUILD_opencv_photo:BOOL=FALSE\ -DBUILD_opencv_features2d:BOOL=FALSE\ -DBUILD_opencv_gapi:BOOL=FALSE\ -DBUILD_opencv_flann:BOOL=FALSE\ -DBUILD_opencv_video:BOOL=FALSE
echo "Building without contrib module"
elif [ "$2" == "vtk" ]; then
CV_CONTRIB_OPTION=-DOPENCV_EXTRA_MODULES_PATH=../../../opencv_contrib/modules
TESSERACT_OPTION=-DEMGU_CV_WITH_TESSERACT:BOOL=TRUE
echo "Building with vtk"
BUILD_VTK=true
elif [ "$2" == "freetype" ]; then
CV_CONTRIB_OPTION=-DOPENCV_EXTRA_MODULES_PATH=../../../opencv_contrib/modules
FREETYPE_OPTIONS=( -DEMGU_CV_WITH_FREETYPE:BOOL=TRUE )
echo "Building with freetype"
BUILD_FREETYPE=true
else
CV_CONTRIB_OPTION=-DOPENCV_EXTRA_MODULES_PATH=../../../opencv_contrib/modules
TESSERACT_OPTION=-DEMGU_CV_WITH_TESSERACT:BOOL=TRUE
echo "Building with contrib module"
fi
fi
cd eigen
mkdir -p $BUILD_FOLDER
cd $BUILD_FOLDER
cmake $BUILD_ARCH $OSX_SYSROOT_OPTION -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_INSTALL_PREFIX:STRING="$INSTALL_FOLDER" ..
cmake --build . --config Release --target install --parallel
cd ../..
if [ "$CV_CONTRIB_OPTION" != "" ]; then
cd 3rdParty
if [ "$BUILD_FREETYPE" = true ]; then
cd freetype2
mkdir -p $BUILD_FOLDER
cd $BUILD_FOLDER
cmake $BUILD_ARCH $OSX_SYSROOT_OPTION -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_INSTALL_PREFIX:STRING="$INSTALL_FOLDER" ../
cmake --build . --config Release --target install --parallel
cd ../..
fi
if [ "$2" == "openvino" ]; then
cd openvino
mkdir -p $BUILD_FOLDER
cd $BUILD_FOLDER
cmake $BUILD_ARCH $OSX_SYSROOT_OPTION -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_INSTALL_PREFIX:STRING="$INSTALL_FOLDER" ../
cmake --build . --config Release --target install --parallel
CMAKE_FIND_ROOT_FOLDER=$CMAKE_FIND_ROOT_FOLDER\;$INSTALL_FOLDER/runtime/cmake
OPENVINO_OPTION=-DWITH_OPENVINO:BOOL=TRUE\ -DOpenVINO_DIR:STRING=$OPENVINO_INSTALL_FOLDER
cd ../..
fi
cd ..
if [ "$BUILD_FREETYPE" = true ]; then
cd harfbuzz
mkdir -p $BUILD_FOLDER
cd $BUILD_FOLDER
cmake $BUILD_ARCH $OSX_SYSROOT_OPTION -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_INSTALL_PREFIX:STRING="$INSTALL_FOLDER" -DCMAKE_FIND_ROOT_PATH:STRING="$INSTALL_FOLDER" -DHB_HAVE_FREETYPE:BOOL=TRUE -DHB_BUILD_TESTS:BOOL=FALSE ..
cmake --build . --config Release --target install --parallel
cd ../..
fi
cd hdf5
mkdir -p $BUILD_FOLDER
cd $BUILD_FOLDER
cmake $BUILD_ARCH $OSX_SYSROOT_OPTION -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_INSTALL_PREFIX:STRING="$INSTALL_FOLDER" -DCMAKE_FIND_ROOT_PATH:STRING="$INSTALL_FOLDER" -DBUILD_TESTING:BOOL=FALSE -DHDF5_BUILD_EXAMPLES:BOOL=FALSE -DHDF5_BUILD_TOOLS:BOOL=FALSE -DHDF5_BUILD_UTILS:BOOL=FALSE ..
cmake --build . --config Release --target install --parallel
cd ../..
#echo BUILD_VTK: $BUILD_VTK
if [ "$BUILD_VTK" = true ]; then
cd vtk
mkdir -p $BUILD_FOLDER
cd $BUILD_FOLDER
VTK_OPTION=-DVTK_DIR:STRING="$PWD"
# VTK_OPTION=-DVTK_DIR:STRING="$INSTALL_FOLDER/lib/cmake/vtk-8.2/"
# VTK_OPTION=-DVTK_DIR:STRING="$INSTALL_FOLDER/"
cmake $BUILD_ARCH $OSX_SYSROOT_OPTION -DBUILD_TESTING:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_INSTALL_PREFIX:STRING="$INSTALL_FOLDER" -DCMAKE_FIND_ROOT_PATH:STRING="$INSTALL_FOLDER" -DCMAKE_CXX_FLAGS:STRING="-DPNG_ARM_NEON_OPT=0" -DCMAKE_C_FLAGS:STRING="-DPNG_ARM_NEON_OPT=0" ..
# cmake $BUILD_ARCH $OSX_SYSROOT_OPTION -DBUILD_TESTING:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_BUILD_TYPE:BOOL=Release -DCMAKE_INSTALL_PREFIX:STRING="$INSTALL_FOLDER" -DCMAKE_FIND_ROOT_PATH:STRING="$INSTALL_FOLDER" -DVTK_MODULE_ENABLE_VTK_RenderingFreeType:STRING="NO" -DVTK_MODULE_ENABLE_VTK_png:STRING="NO" -DHDF5_EXTERNALLY_CONFIGURED=1 -DHDF5_EXTERNAL_LIB_PREFIX:STRING="vtk" ..
cmake --build . --config Release --target install --parallel
cd ../..
fi
else
VTK_OPTION=
fi
cd platforms/macos
mkdir -p $BUILD_FOLDER
cd $BUILD_FOLDER
set -x
cmake $BUILD_ARCH $OSX_SYSROOT_OPTION $CV_OPTIMIZATION \
-DCMAKE_BUILD_TYPE:STRING="Release" \
-DBUILD_PERF_TESTS=FALSE \
-DBUILD_TESTS:BOOL=FALSE \
-DBUILD_DOCS:BOOL=FALSE \
-DBUILD_JPEG:BOOL=TRUE \
-DBUILD_ZLIB:BOOL=TRUE \
-DBUILD_OPENEXR:BOOL=TRUE \
$CV_PNG_OPTION \
$OPENVINO_OPTION \
-DBUILD_TIFF:BOOL=TRUE \
-DWITH_WEBP:BOOL=OFF \
-DWITH_IPP:BOOL=OFF \
-DBUILD_opencv_ts:BOOL=OFF \
-DBUILD_opencv_java:BOOL=OFF \
-DBUILD_opencv_python2:BOOL=OFF \
-DBUILD_opencv_python3:BOOL=OFF \
-DBUILD_opencv_apps:BOOL=OFF \
-DWITH_CUDA:BOOL=OFF \
-DWITH_OBSENSOR:BOOL=OFF \
$CV_CONTRIB_OPTION \
$CV_MODULE_OPTION \
$TESSERACT_OPTION \
-DBUILD_SHARED_LIBS:BOOL=OFF \
$VTK_OPTION \
-DCMAKE_FIND_ROOT_PATH:STRING=$CMAKE_FIND_ROOT_FOLDER \
-DEigen3_DIR:STRING="$PWD/../../../eigen/build" \
-DWITH_LAPACK:BOOL=OFF \
-DCMAKE_INSTALL_PREFIX:STRING=$INSTALL_FOLDER \
${FREETYPE_OPTIONS[@]} \
../../../
set +x
#-DCMAKE_CXX_FLAGS_RELEASE:STRING=-g0 \
#-DCMAKE_C_FLAGS_RELEASE:STRING=-g0 \
#-DCMAKE_SHARED_LINKER_FLAGS:STRING=-Wl,-dead_strip \
make
cd ..