Skip to content

Commit ee93f48

Browse files
committed
Simplify build script.
1 parent 2ea54b3 commit ee93f48

3 files changed

Lines changed: 9 additions & 64 deletions

File tree

Dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
FROM eclipse-temurin:25-jdk-alpine AS builder
1+
FROM maven:3.9.12-eclipse-temurin-25-alpine AS builder
22
COPY quantlib-version /tmp/quantlib-version
33
COPY build.sh /tmp/build.sh
4-
COPY test.scala /tmp/test.scala
54
RUN sh /tmp/build.sh
65

76
FROM scratch AS export

build.sh

Lines changed: 8 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -3,45 +3,17 @@
33
set -exo pipefail
44

55
export CPUS="$(nproc)"
6-
export BOOST_VERSION=1.90.0
7-
export MAVEN_VERSION=3.9.12
6+
export BOOST_VERSION=1.84.0
87
export QUANTLIB_VERSION="$(cat /tmp/quantlib-version)"
9-
export SWIG_VERSION=4.4.1
8+
unset MAVEN_CONFIG
109

11-
apk add --no-cache --update --virtual .build-dependencies \
12-
automake autoconf bison build-base cmake curl git jq libtool linux-headers ninja-build pcre2-dev
10+
apk add --no-cache --update --virtual .build-dependencies "boost${BOOST_VERSION%.*}-dev" build-base cmake git ninja-build swig
1311

1412
export PATH="$PATH:/usr/lib/ninja-build/bin"
13+
export SWIG_VERSION_REGEX='^SWIG Version (.*)$'
14+
export SWIG_VERSION="$(swig --version | grep -E "$SWIG_VERSION_REGEX" | sed -E "s/$SWIG_VERSION_REGEX/\1/")"
1515

16-
export BUILD_DIR="/tmp/build"
17-
mkdir -p "$BUILD_DIR"
18-
cd "$BUILD_DIR"
19-
20-
# Build boost
21-
BOOST_DIR="boost-$BOOST_VERSION"
22-
wget "https://github.com/boostorg/boost/releases/download/boost-$BOOST_VERSION/$BOOST_DIR-b2-nodocs.tar.xz"
23-
tar -xf "$BOOST_DIR-b2-nodocs.tar.xz"
24-
cd "$BOOST_DIR"
25-
./bootstrap.sh
26-
./b2 --without-python --prefix=/usr -j "$CPUS" link=shared runtime-link=shared install
27-
cd "$BUILD_DIR"
28-
29-
# Build swig
30-
SWIG_DIR="swig-$SWIG_VERSION"
31-
wget "https://github.com/swig/swig/archive/refs/tags/v$SWIG_VERSION.tar.gz" -O "$SWIG_DIR.tar.gz"
32-
tar -xzf "$SWIG_DIR.tar.gz"
33-
cd "$SWIG_DIR"
34-
./autogen.sh
35-
./configure --prefix=/usr
36-
make -j "$CPUS"
37-
make install
38-
cd "$BUILD_DIR"
39-
40-
# Install maven
41-
MAVEN_DIR="apache-maven-$MAVEN_VERSION"
42-
wget "https://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/$MAVEN_DIR-bin.tar.gz"
43-
tar -xzf "$MAVEN_DIR-bin.tar.gz"
44-
ln -s "$MAVEN_DIR/bin/mvn /usr/bin/mvn"
16+
cd /tmp
4517

4618
# Build quantlib_for_maven
4719
git clone --revision "v$QUANTLIB_VERSION" --recurse-submodules --jobs "$CPUS" https://github.com/ralfkonrad/quantlib_for_maven.git
@@ -60,28 +32,15 @@ index 68ecd0e..626616b 100644
6032
6133
<name>QuantLib module</name>
6234
" | git apply
63-
cmake --preset release -L
35+
cmake --preset release -DQL_MVN_BOOST_VERSION="$BOOST_VERSION" -DQL_MVN_SWIG_VERSION="$SWIG_VERSION" -L
6436
cmake --build --preset release -v --parallel "$CPUS"
6537
cd java
6638
./mvnw install
6739
mkdir /build
6840
MAVEN_PREFIX="/root/.m2/repository/io/github/ralfkonrad/quantlib_for_maven/quantlib/$QUANTLIB_VERSION/quantlib-$QUANTLIB_VERSION"
6941
mv "$MAVEN_PREFIX.jar" "$MAVEN_PREFIX.pom" /build/
7042

71-
# Install scala-cli
72-
scalaCliJar="$BUILD_DIR/scala-cli.jar"
73-
scalaCliVersion="$(curl -s 'https://api.github.com/repos/VirtusLab/scala-cli/releases/latest' | jq -r '.tag_name' | sed -E 's/^v?//')"
74-
curl -o "$scalaCliJar" "https://repo1.maven.org/maven2/org/virtuslab/scala-cli/cliBootstrapped/$scalaCliVersion/cliBootstrapped-$scalaCliVersion.jar"
75-
76-
# Test quantlib jar with scala-cli
77-
java -jar "$scalaCliJar" \
78-
--server=false \
79-
-S 3.8.2 \
80-
--classpath "/build/quantlib-$QUANTLIB_VERSION.jar" \
81-
--dep org.slf4j:slf4j-api:2.0.17 \
82-
/tmp/test.scala
83-
8443
# Clean up
8544
cd
86-
rm -rf "$BUILD_DIR"
45+
rm -rf /tmp/quantlib_for_maven
8746
apk del .build-dependencies

test.scala

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)