#!/bin/bash
FOX_VERSION=1.6.59
JUPEDSIM_VERSION=1.3.1
if [[ "$(uname)" == "Darwin" ]]; then
ID="macOS"
else
source /etc/os-release
fi
SCRIPT_DIR=$(dirname $0)
case "$ID" in
macOS)
brew update && brew bundle --file=$SCRIPT_DIR/Brewfile --no-upgrade
SUDO=sudo
;;
ubuntu|debian)
export DEBIAN_FRONTEND=noninteractive
apt-get -qq update
apt-get -y install $(cat $SCRIPT_DIR/build_req_deb.txt)
curl -LO https://packages.apache.org/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
apt-get -y install ./apache-arrow-apt-source-latest-*.deb
rm ./apache-arrow-apt-source-latest-*.deb
apt-get -qq update
apt-get -y install libarrow-dev libparquet-dev
;;
centos)
if [[ "$VERSION_ID" == "7" ]]; then
yum install -y epel-release
yum-config-manager --add-repo=https://download.opensuse.org/repositories/science:/dlr/CentOS_7/
yum install -y --nogpgcheck ccache libxerces-c-devel proj-devel fox16-devel bzip2-devel gl2ps-devel swig3 eigen3-devel geos-devel
yum install -y https://packages.apache.org/artifactory/arrow/centos/7/apache-arrow-release-latest.rpm
yum install -y arrow-devel parquet-devel
else
echo "CentOS version other than 7 detected: $VERSION_ID"
fi
;;
almalinux)
dnf install -y epel-release
dnf -y update
dnf install -y ccache xerces-c-devel proj-devel bzip2-devel gl2ps-devel swig gdal-devel eigen3-devel geos-devel
dnf install -y libX11-devel libXft-devel libXcursor-devel libXrandr-devel libXinerama-devel mesa-libGL-devel mesa-libGLU-devel freetype-devel fontconfig-devel libjpeg-turbo-devel libpng-devel
dnf install -y https://packages.apache.org/artifactory/arrow/almalinux/$(echo $VERSION_ID | cut -f1 -d.)/apache-arrow-release-latest.rpm
dnf install -y arrow-devel parquet-devel
cd /opt
curl -LO http://www.fox-toolkit.org/ftp/fox-$FOX_VERSION.tar.gz
tar xf fox-$FOX_VERSION.tar.gz
cd fox-$FOX_VERSION
./configure --disable-static --enable-shared
make -j$(nproc)
make install
cd ..
rm -rf fox-$FOX_VERSION.tar.gz fox-$FOX_VERSION
;;
*)
echo "Unknown or unsupported OS: $ID"
;;
esac
curl -LO https://github.com/PedestrianDynamics/jupedsim/archive/refs/tags/v$JUPEDSIM_VERSION.tar.gz
tar xf v$JUPEDSIM_VERSION.tar.gz
cmake -B jupedsim-build -DCMAKE_BUILD_TYPE=Release jupedsim-$JUPEDSIM_VERSION
cmake --build jupedsim-build -j2
$SUDO cmake --install jupedsim-build
rm -rf v$JUPEDSIM_VERSION.tar.gz jupedsim-$JUPEDSIM_VERSION jupedsim-build
if [[ "$ID" != "macOS" ]]; then
pipx install -f patchelf==0.16.1.0
fi