33set -exo pipefail
44
55export CPUS=" $( nproc) "
6- export BOOST_VERSION=1.90.0
7- export MAVEN_VERSION=3.9.12
6+ export BOOST_VERSION=1.84.0
87export 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
1412export 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
4719git 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
6436cmake --build --preset release -v --parallel " $CPUS "
6537cd java
6638./mvnw install
6739mkdir /build
6840MAVEN_PREFIX=" /root/.m2/repository/io/github/ralfkonrad/quantlib_for_maven/quantlib/$QUANTLIB_VERSION /quantlib-$QUANTLIB_VERSION "
6941mv " $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
8544cd
86- rm -rf " $BUILD_DIR "
45+ rm -rf /tmp/quantlib_for_maven
8746apk del .build-dependencies
0 commit comments