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.
 
 
 
 
 
 

95 lines
2.7 KiB

#!/bin/bash
set -e
# Parse arguments to see if --cuda was passed and equals 1 or --master was passed and equals 1
while [[ $# -gt 0 ]]; do
key="$1"
case $key in
--cuda)
CUDA="$2"
shift
shift
;;
--master)
MASTER="$2"
shift
shift
;;
--user_id)
USER_ID="$2"
shift
shift
;;
--group_id)
GROUP_ID="$2"
shift
shift
;;
*)
echo "Unknown argument: $key"
exit 1
;;
esac
done
if [[ "$CUDA" == "1" ]]; then
echo "Building with CUDA support"
EIGEN_BUILD_ARG="-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/"
OPENMVS_BUILD_ARG="-DOpenMVS_USE_CUDA=ON -DCMAKE_LIBRARY_PATH=/usr/local/cuda/lib64/stubs/ -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/ -DCUDA_INCLUDE_DIRS=/usr/local/cuda/include/ -DCUDA_CUDART_LIBRARY=/usr/local/cuda/lib64 -DCUDA_NVCC_EXECUTABLE=/usr/local/cuda/bin/"
else
echo "Building without CUDA support"
EIGEN_BUILD_ARG=""
OPENMVS_BUILD_ARG="-DOpenMVS_USE_CUDA=OFF"
fi
if [[ "$MASTER" == "1" ]]; then
echo "Pulling from master branch"
else
echo "Pulling from develop branch"
fi
apt-get update -yq
apt-get -yq install build-essential git cmake libpng-dev libjpeg-dev libtiff-dev libglu1-mesa-dev libglew-dev libglfw3-dev
# Eigen
git clone https://gitlab.com/libeigen/eigen --branch 3.4
mkdir eigen_build
cd eigen_build &&\
cmake . ../eigen $EIGEN_BUILD_ARG &&\
make && make install &&\
cd .. && rm -rf eigen_build eigen
# Boost
apt-get -y install libboost-iostreams-dev libboost-program-options-dev libboost-system-dev libboost-serialization-dev
# OpenCV
DEBIAN_FRONTEND=noninteractive apt-get install -yq libopencv-dev
# CGAL
apt-get -yq install libcgal-dev libcgal-qt5-dev
# VCGLib
git clone https://github.com/cdcseacave/VCG.git vcglib
# Build from stable openMVS release or the latest commit from the develop branch
if [[ "$MASTER" == "1" ]]; then
git clone https://github.com/cdcseacave/openMVS.git --branch master
else
git clone https://github.com/cdcseacave/openMVS.git --branch develop
fi
mkdir openMVS_build
cd openMVS_build &&\
cmake . ../openMVS -DCMAKE_BUILD_TYPE=Release -DVCG_ROOT=/vcglib $OPENMVS_BUILD_ARG
# Install OpenMVS library
make -j4 &&\
make install &&\
cd .. && rm -rf openMVS_build vcglib
# Set permissions such that the output files can be accessed by the current user (optional)
echo "Setting permissions for user $USER_ID:$GROUP_ID"
addgroup --gid $GROUP_ID user &&\
adduser --disabled-password --gecos '' --uid $USER_ID --gid $GROUP_ID user