mirror of https://github.com/oxen-io/lokinet
macos CI fixes
- Split up mac.sh into a configure + build scripts (like Windows). - Don't attempt to build the 'package' target in CI: apparently you have to have a logged in user at the GUI in order to build a .dmg because being obtuse is the Apple way. - Upload the raw Lokinet unsigned app in a .tar.xz, rather than dmg, because of the above. - make mac.sh respect JOBS (pun not intended (but still good))
This commit is contained in:
parent
1f9779cdcd
commit
616f559761
|
@ -278,7 +278,13 @@ local mac_builder(name,
|
|||
// basic system headers. WTF apple:
|
||||
'export SDKROOT="$(xcrun --sdk macosx --show-sdk-path)"',
|
||||
'ulimit -n 1024', // because macos sets ulimit to 256 for some reason yeah idk
|
||||
'./contrib/mac.sh ' + ci_mirror_opts + (if build_type == 'Debug' then ' -DWARN_DEPRECATED=OFF ' else '') + codesign,
|
||||
'./contrib/mac-configure.sh ' + ci_mirror_opts + (if build_type == 'Debug' then ' -DWARN_DEPRECATED=OFF ' else '') + codesign,
|
||||
'cd build-mac',
|
||||
// We can't use the 'package' target here because making a .dmg requires an active logged in
|
||||
// macos gui to invoke Finder to invoke the partitioning tool to create a partitioned (!)
|
||||
// disk image. Most likely the GUI is required because if you lose sight of how pretty the
|
||||
// surface of macOS is you might see how ugly the insides are.
|
||||
'ninja -j' + jobs + ' assemble_gui',
|
||||
] + extra_cmds,
|
||||
},
|
||||
],
|
||||
|
|
|
@ -51,8 +51,9 @@ elif [ -e build-docs ]; then
|
|||
cp -av build-docs/docs/mkdocs.yml build-docs/docs/markdown "$base"
|
||||
tar cJvf "$archive" "$base"
|
||||
elif [ -e build-mac ]; then
|
||||
archive="$base.dmg"
|
||||
mv build-mac/Lokinet*.dmg "$archive"
|
||||
archive="$base.tar.xz"
|
||||
mv build-mac/Lokinet*/ "$base"
|
||||
tar cJvf "$archive" "$base"
|
||||
else
|
||||
cp -av daemon/lokinet daemon/lokinet-vpn "$base"
|
||||
cp -av ../contrib/bootstrap/mainnet.signed "$base/bootstrap.signed"
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -x
|
||||
|
||||
if ! [ -f LICENSE ] || ! [ -d llarp ]; then
|
||||
echo "You need to run this as ./contrib/mac.sh from the top-level lokinet project directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p build-mac
|
||||
cd build-mac
|
||||
cmake \
|
||||
-G Ninja \
|
||||
-DBUILD_STATIC_DEPS=ON \
|
||||
-DBUILD_LIBLOKINET=OFF \
|
||||
-DWITH_TESTS=OFF \
|
||||
-DWITH_BOOTSTRAP=OFF \
|
||||
-DNATIVE_BUILD=OFF \
|
||||
-DWITH_LTO=ON \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DMACOS_SYSTEM_EXTENSION=ON \
|
||||
-DCODESIGN=ON \
|
||||
-DBUILD_PACKAGE=ON \
|
||||
"$@" \
|
||||
..
|
||||
|
||||
echo "cmake build configured in build-mac"
|
|
@ -11,27 +11,14 @@ set -e
|
|||
set -x
|
||||
|
||||
if ! [ -f LICENSE ] || ! [ -d llarp ]; then
|
||||
echo "You need to run this as ./contrib/mac.sh from the top-level lokinet project directory"
|
||||
echo "You need to run this as ./contrib/mac.sh from the top-level lokinet project directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p build-mac
|
||||
cd build-mac
|
||||
cmake \
|
||||
-G Ninja \
|
||||
-DBUILD_STATIC_DEPS=ON \
|
||||
-DBUILD_LIBLOKINET=OFF \
|
||||
-DWITH_TESTS=OFF \
|
||||
-DWITH_BOOTSTRAP=OFF \
|
||||
-DNATIVE_BUILD=OFF \
|
||||
-DWITH_LTO=ON \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DMACOS_SYSTEM_EXTENSION=ON \
|
||||
-DCODESIGN=ON \
|
||||
-DBUILD_PACKAGE=ON \
|
||||
"$@" \
|
||||
..
|
||||
ninja -j1 package
|
||||
./contrib/mac-configure.sh "$@"
|
||||
|
||||
cd build-mac
|
||||
ninja -j${JOBS:-1} package
|
||||
cd ..
|
||||
|
||||
echo -e "Build complete, your app is here:\n"
|
||||
|
|
Loading…
Reference in New Issue