96 lines
2.7 KiB
Bash
Executable File
96 lines
2.7 KiB
Bash
Executable File
#!/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
|