summaryrefslogtreecommitdiffstats
path: root/packaging/macos/210-inkscape_build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/macos/210-inkscape_build.sh')
-rwxr-xr-xpackaging/macos/210-inkscape_build.sh90
1 files changed, 90 insertions, 0 deletions
diff --git a/packaging/macos/210-inkscape_build.sh b/packaging/macos/210-inkscape_build.sh
new file mode 100755
index 0000000..52a555a
--- /dev/null
+++ b/packaging/macos/210-inkscape_build.sh
@@ -0,0 +1,90 @@
+#!/usr/bin/env bash
+#
+# SPDX-FileCopyrightText: 2021 René de Hesselle <dehesselle@web.de>
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+### description ################################################################
+
+# Build and install Inkscape. For non-CI builds, this will build Inkscape
+# master branch. Installation prefix is VER_DIR.
+
+### shellcheck #################################################################
+
+# Nothing here.
+
+### dependencies ###############################################################
+
+source "$(dirname "${BASH_SOURCE[0]}")"/jhb/etc/jhb.conf.sh
+
+source "$(dirname "${BASH_SOURCE[0]}")"/src/ink.sh
+
+bash_d_include error
+bash_d_include lib
+
+### variables ##################################################################
+
+# Nothing here.
+
+### functions ##################################################################
+
+# Nothing here.
+
+### main #######################################################################
+
+error_trace_enable
+
+#----------------------------------------------------------- (re-) configure jhb
+
+# Rerun configuration to adapt to the current system. This will
+# - allow Inkscape to be build against a different SDK than the toolset has
+# been built with
+# - setup ccache
+
+jhb configure
+
+#---------------------------------------------------------------- build Inkscape
+
+# If we're not running in Inkscape CI, use either an existing source directory
+# or clone the sources there.
+if [ "$CI_PROJECT_NAME" != "inkscape" ]; then
+
+ if [ -d "$INK_DIR" ]; then # Sourcecode directory already there?
+ echo_i "using existing source $INK_DIR"
+ else
+ git clone \
+ --branch "$INK_BRANCH" \
+ --depth 10 \
+ --recurse-submodules \
+ --single-branch \
+ "$INK_URL" "$INK_DIR"
+ fi
+
+ # Ensure a clean build by removing files from a previous one if they exist.
+ if [ -d "$INK_BLD_DIR" ]; then
+ rm -rf "$INK_BLD_DIR"
+ fi
+fi
+
+mkdir -p "$INK_BLD_DIR"
+cd "$INK_BLD_DIR" || exit 1
+
+cmake \
+ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
+ -DCMAKE_C_COMPILER_LAUNCHER=ccache \
+ -DCMAKE_PREFIX_PATH="$VER_DIR" \
+ -DCMAKE_INSTALL_PREFIX="$VER_DIR" \
+ -GNinja \
+ "$INK_DIR"
+
+ninja
+ninja install
+
+#----------------------------------- make libraries work for unpackaged Inkscape
+
+# Most libraries are linked to with their fully qualified paths, a few have been
+# linked to using '@rpath'. The Inkscape binary only provides an LC_RPATH
+# setting for its custom library path 'lib/inkscape' at this point, so we need
+# to add the common library path 'lib'.
+
+lib_add_rpath @loader_path/../lib "$BIN_DIR"/inkscape