annotate Resources/holy-build-box-compile.sh @ 256:8b01b05e2fee OrthancWebViewer-2.6

OrthancWebViewer-2.6
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 26 May 2020 09:12:07 +0200
parents 8f30b077cdb8
children 07bc649bade7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
224
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 #!/bin/bash
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 ##
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 ## This script compiles cross-distribution Linux binaries thanks to
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5 ## Holy Build Box: https://github.com/phusion/holy-build-box
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 ##
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 ## The ideal solution would be to use Linux Standard Base
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 ## (LSB). Unfortunately, the LSB C++ compiler is a pre-4.8 gcc that
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 ## does not feature full C++11 capabilities, which prevents compiling
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 ## GDCM >= 3.0.
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 ##
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 set -ex
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 if [ "$1" != "Debug" -a "$1" != "Release" ]; then
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 echo "Please provide build type: Debug or Release"
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 exit -1
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 fi
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20 if [ -t 1 ]; then
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21 # TTY is available => use interactive mode
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 DOCKER_FLAGS='-i'
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23 fi
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25 ROOT_DIR=`dirname $(readlink -f $0)`/..
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27 mkdir -p ${ROOT_DIR}/holy-build-box
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29 docker run -t ${DOCKER_FLAGS} --rm \
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30 --user $(id -u):$(id -g) \
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
31 -v ${ROOT_DIR}:/source:ro \
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32 -v ${ROOT_DIR}/holy-build-box:/target:rw \
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33 phusion/holy-build-box-64:2.0.1 \
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34 bash /source/Resources/holy-build-box-internal.sh $1
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35
8f30b077cdb8 compilation using holy-build-box
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36 ls -lR ${ROOT_DIR}/holy-build-box/