relpipe-data/examples/release-v0.16.sh
author František Kučera <franta-hg@frantovo.cz>
Mon, 21 Feb 2022 01:21:22 +0100
branchv_0
changeset 330 70e7eb578cfa
parent 324 3cbce8bb28c3
permissions -rw-r--r--
Added tag relpipe-v0.18 for changeset 5bc2bb8b7946

# Install dependencies as root:
apt install g++ make cmake mercurial pkg-config
apt install libxerces-c-dev       # needed only for relpipe-in-xml module
apt install guile-2.2-dev         # needed only for relpipe-tr-guile module
apt install gawk                  # needed only for relpipe-tr-awk module
apt install libxml++2.6-dev       # needed only for relpipe-in-xmltable module
apt install unixodbc-dev          # needed only for relpipe-tr-sql module
apt install libsqliteodbc         # needed only for relpipe-tr-sql module if used with SQLite
apt install odbc-postgresql       # needed only for relpipe-tr-sql module if used with PostgreSQL
apt install libjack-jackd2-dev    # needed only for relpipe-in-jack module

# Run rest of installation as a non-root user:
export RELPIPE_VERSION="v0.16"
export RELPIPE_SRC=~/src
export RELPIPE_BUILD=~/build
export RELPIPE_INSTALL=~/install
export PKG_CONFIG_PATH="$RELPIPE_INSTALL/lib/pkgconfig/:$PKG_CONFIG_PATH"
export PATH="$RELPIPE_INSTALL/bin:$PATH"

rm -rf "$RELPIPE_BUILD"/relpipe-*
mkdir -p "$RELPIPE_SRC" "$RELPIPE_BUILD" "$RELPIPE_INSTALL"

# Helper functions:
relpipe_download() { for m in "$@"; do cd "$RELPIPE_SRC" && ([[ -d "relpipe-$m.cpp" ]] && hg pull -R "relpipe-$m.cpp" && hg update -R "relpipe-$m.cpp" "$RELPIPE_VERSION" || hg clone -u "$RELPIPE_VERSION" https://hg.globalcode.info/relpipe/relpipe-$m.cpp) || break; done; }
relpipe_install()  { for m in "$@"; do cd "$RELPIPE_BUILD" && mkdir -p relpipe-$m.cpp && cd relpipe-$m.cpp && cmake -DCMAKE_INSTALL_PREFIX:PATH="$RELPIPE_INSTALL" "$RELPIPE_SRC/relpipe-$m.cpp" && make && make install || break; done; }

# Download all sources:
relpipe_download lib-common lib-reader lib-writer lib-cli lib-xmlwriter in-cli in-fstab in-xml in-xmltable in-csv in-filesystem in-recfile out-gui.qt out-nullbyte out-ods out-tabular out-xml out-csv out-asn1 out-recfile tr-cut tr-grep tr-python tr-sed tr-validator tr-guile tr-awk tr-sql in-jack

# Optional: At this point, we have all dependencies and sources downloaded, so we can disconnect this computer from the internet in order to verify that our build process is sane, deterministic and does not depend on any external resources.

# Build and install libraries:
relpipe_install lib-common lib-reader lib-writer lib-cli lib-xmlwriter

# Build and install tools:
relpipe_install in-fstab in-cli in-fstab in-xml in-xmltable in-csv in-recfile tr-cut tr-grep tr-sed tr-guile tr-awk tr-sql out-nullbyte out-ods out-tabular out-xml out-csv out-asn1 out-recfile in-filesystem in-jack

# Load Bash completion scripts:
for c in "$RELPIPE_SRC"/relpipe-*/bash-completion.sh ; do . "$c"; done

# Enable streamlet examples:
export RELPIPE_IN_FILESYSTEM_STREAMLET_PATH="$RELPIPE_SRC"/relpipe-in-filesystem.cpp/streamlet-examples/

# Clean-up:
unset -f relpipe_install
unset -f relpipe_download
unset -v RELPIPE_VERSION
unset -v RELPIPE_SRC
unset -v RELPIPE_BUILD
unset -v RELPIPE_INSTALL

# List configured ODBC data sources:
relpipe-in-sql --list-data-sources | relpipe-out-tabular
# n.b. since v0.18 there is a boolean parameter i.e. --list-data-sources true