changeset 10:340f02ddaabf

build script for Debian stable
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 14 Jun 2019 08:13:01 +0200
parents c46ed3cd5ddc
children 798951e457f3
files Resources/debian-stable-compile.sh Resources/debian-stable-internal.sh
diffstat 2 files changed, 69 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Resources/debian-stable-compile.sh	Fri Jun 14 08:13:01 2019 +0200
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+##
+## This script compiles the plugin for Debian stable, in static
+## mode. The resulting binaries can be used in the Docker images of
+## Orthanc, as those are also based on Debian stable:
+## https://github.com/jodogne/OrthancDocker/blob/master/orthanc/Dockerfile
+##
+
+set -ex
+
+if [ "$1" != "Debug" -a "$1" != "Release" ]; then
+    echo "Please provide build type: Debug or Release"
+    exit -1
+fi
+
+if [ -t 1 ]; then
+    # TTY is available => use interactive mode
+    DOCKER_FLAGS='-i'
+fi
+
+ROOT_DIR=`dirname $(readlink -f $0)`/..
+
+# Always make sure we use the latest version of Debian stable
+docker pull debian:stable
+
+mkdir -p ${ROOT_DIR}/debian-stable
+
+docker run -t ${DOCKER_FLAGS} --rm \
+    -v ${ROOT_DIR}:/source:ro \
+    -v ${ROOT_DIR}/debian-stable:/target:rw \
+    debian:stable \
+    bash /source/Resources/debian-stable-internal.sh $1 $(id -u) $(id -g)
+
+ls -l ${ROOT_DIR}/debian-stable/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Resources/debian-stable-internal.sh	Fri Jun 14 08:13:01 2019 +0200
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+set -ex
+
+BUILD_TYPE=$1
+USER_ID=$2
+GROUP_ID=$3
+
+# Create the same user and group than the one who is running the
+# "./debian-stable-compile.sh" script on the hosting system (*)
+groupadd -g ${GROUP_ID} -r orthanc
+useradd -u ${USER_ID} -r -g orthanc orthanc
+
+# Static build using the root user
+apt-get update
+apt-get install -y cmake build-essential unzip
+
+mkdir /tmp/build
+cd /tmp/build
+
+cp -r /source /tmp/source-writeable
+cmake /tmp/source-writeable \
+    -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
+    -DSTATIC_BUILD=ON \
+    -DORTHANC_FRAMEWORK_SOURCE=web \
+    -DCMAKE_INSTALL_PREFIX=/target 
+
+make -j`nproc`
+
+# Copy the installation to the host filesystem, using the
+# newly-created user "orthanc" (*) that corresponds to the user who is
+# running "./debian-stable-compile.sh" script. This allows to avoid
+# files owned by the "root" user on the host filesystem.
+su -c "cp /tmp/build/libOrthancGoogleCloudPlatform.so /target" orthanc