mirror of
https://github.com/livebook-dev/livebook.git
synced 2025-02-22 22:05:03 +08:00
103 lines
2.4 KiB
Bash
103 lines
2.4 KiB
Bash
#!/bin/bash
|
|
set -e pipefail
|
|
|
|
main() {
|
|
export MAKEFLAGS=-j$(getconf _NPROCESSORS_ONLN)
|
|
|
|
wxwidgets_repo="${wxwidgets_repo:-wxWidgets/wxWidgets}"
|
|
wxwidgets_ref="${wxwidgets_ref:-v3.1.7}"
|
|
otp_repo="${otp_repo:-wojtekmach/otp}"
|
|
otp_ref="${otp_ref:-wm-WX_MACOS_NON_GUI_APP}"
|
|
|
|
mkdir -p tmp/cache
|
|
|
|
openssl_dir=$(brew --prefix openssl@1.1)
|
|
|
|
otp_dir="$PWD/tmp/cache/${otp_repo}-${otp_ref}"
|
|
if [ ! -d $otp_dir ]; then
|
|
wxwidgets_dir="$PWD/tmp/cache/${wxwidgets_repo}-${wxwidgets_ref}"
|
|
if [ ! -d $wxwidgets_dir ]; then
|
|
build_wxwidgets $wxwidgets_repo $wxwidgets_ref $wxwidgets_dir
|
|
fi
|
|
|
|
export PATH="${wxwidgets_dir}/bin:$PATH"
|
|
echo "checking wx"
|
|
file `which wxrc`
|
|
wx-config --version
|
|
echo "wx ok"
|
|
echo
|
|
build_otp $otp_repo $otp_ref $openssl_dir $otp_dir
|
|
fi
|
|
|
|
export PATH="${otp_dir}/bin:$PATH"
|
|
echo "checking otp"
|
|
cd $otp_dir
|
|
./Install -sasl $PWD
|
|
erl -noshell -eval 'io:format("root_dir=~p~n", [code:root_dir()]), halt().'
|
|
erl -noshell -eval 'io:format("~s", [erlang:system_info(system_version)]), halt().'
|
|
erl -noshell -eval 'io:format("~s~n", [erlang:system_info(system_architecture)]), halt().'
|
|
erl -noshell -eval 'ok = crypto:start(), io:format("crypto ok~n"), halt().'
|
|
erl -noshell -eval '{wx_ref,_,_,_} = wx:new(), io:format("wx ok~n"), halt().'
|
|
cd - > /dev/null
|
|
echo "otp ok"
|
|
echo
|
|
}
|
|
|
|
# build_wxwidgets $repo $ref $dest_dir
|
|
build_wxwidgets() {
|
|
repo=$1
|
|
ref=$2
|
|
dest_dir=$3
|
|
src_dir=tmp/$repo-$ref-src
|
|
|
|
if [ ! -d $src_dir ]; then
|
|
echo cloning $repo $ref
|
|
git clone --branch $ref --depth 1 --recursive https://github.com/$repo $src_dir
|
|
fi
|
|
|
|
cd $src_dir
|
|
./configure \
|
|
--disable-shared \
|
|
--prefix=$dest_dir \
|
|
--with-cocoa \
|
|
--with-macosx-version-min=10.15 \
|
|
--disable-sys-libs
|
|
make
|
|
make install
|
|
cd - > /dev/null
|
|
}
|
|
|
|
|
|
# build_otp $repo $ref $openssl_dir $dest_dir
|
|
build_otp() {
|
|
repo=$1
|
|
ref=$2
|
|
openssl_dir=$3
|
|
dest_dir=$4
|
|
|
|
src_dir=tmp/otp-$repo-$ref-src
|
|
if [ ! -d $src_dir ]; then
|
|
echo cloning $repo $ref
|
|
git clone --branch $ref --depth 1 --recursive https://github.com/$repo $src_dir
|
|
fi
|
|
|
|
export RELEASE_ROOT=$dest_dir
|
|
|
|
cd $src_dir
|
|
export ERL_TOP=`pwd`
|
|
export ERLC_USE_SERVER=true
|
|
./otp_build configure \
|
|
--disable-dynamic-ssl-lib \
|
|
--with-ssl=$openssl_dir \
|
|
--without-odbc
|
|
|
|
./otp_build boot -a
|
|
./otp_build release -a $RELEASE_ROOT
|
|
|
|
if [ -z "$skip_docs" ]; then
|
|
make release_docs DOC_TARGETS=chunks
|
|
fi
|
|
cd - > /dev/null
|
|
}
|
|
|
|
main
|