Skip to content

Instantly share code, notes, and snippets.

@Higgs1
Created October 31, 2021 06:00
Show Gist options
  • Save Higgs1/2d4c57b5402e1a34de92f216eb393873 to your computer and use it in GitHub Desktop.
Save Higgs1/2d4c57b5402e1a34de92f216eb393873 to your computer and use it in GitHub Desktop.
#!
# https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=armorpaint-git
# npm i -g google-closure-compiler
COMPILER=gcc # clang, gcc
GRAPHICS=opengl # opengl, vulkan (seg faults)
OPTIMIZE=s #0, 1, 2, 3, fast, g, s
DIST_PATH="$HOME/Downloads/armorpaint/dist"
BUILD_PATH="$(mktemp -d)"
SOURCE_PATH="$(mktemp -d)"
trap "rm -rf \"$SOURCE_PATH\" \"$BUILD_PATH\"" EXIT
# Download
[ -d "$SOURCE_PATH/.git" ] ||
git clone --recursive --depth 1 -b master \
https://github.com/armory3d/armorpaint "$SOURCE_PATH"
[ -d "$SOURCE_PATH/armorcore/Libraries/glsl_to_spirv/.git" ] ||
git clone --recursive --depth 1 \
https://github.com/armory3d/glsl_to_spirv "$SOURCE_PATH/armorcore/Libraries/glsl_to_spirv"
# Patch
sed -i 's/proc.stdout.readLine()/"_YIFF"/g' \
"$SOURCE_PATH/Libraries/armorbase/Sources/arm/sys/BuildMacros.hx" &
sed -i 's/cpp11/cpp14/g' \
"$SOURCE_PATH/armorcore/kincfile.js" &
sed -i 's/cpp11/cpp14/g' \
"$SOURCE_PATH/armorcore/Libraries/glsl_to_spirv/kincfile.js" &
sed -i "s/-O[[:alnum:]]*/-O$OPTIMIZE/g" \
"$SOURCE_PATH/armorcore/Kinc/Tools/kincmake/out/Exporters/LinuxExporter.js" &
wait
# Compile
mkdir -p "$DIST_PATH"
{
node "$SOURCE_PATH/armorcore/Tools/khamake/khamake" \
--from "$SOURCE_PATH" \
--to "$BUILD_PATH" \
--graphics "$GRAPHICS"
google-closure-compiler \
--language_out ecmascript_2021 \
--warning_level quiet \
"$BUILD_PATH/krom/krom.js" \
> "$DIST_PATH/krom.js"
cp -r "$BUILD_PATH/krom/data" "$DIST_PATH"
rm -r "$DIST_PATH/data/licenses"
} &
{
LIBRARY_PATH="$LIBRARY_PATH:$SOURCE_PATH/armorcore/v8/libraries/linux/release" \
node "$SOURCE_PATH/armorcore/Kinc/Tools/kincmake/koremake" \
--from "$SOURCE_PATH/armorcore" \
--to "$BUILD_PATH" \
--graphics "$GRAPHICS" \
--compiler "$COMPILER" \
--compile
strip -s "$BUILD_PATH/Release/ArmorPaint" \
-o "$DIST_PATH/ArmorPaint"
} &
wait
# Run
# "$DIST_PATH/ArmorPaint" "$DIST_PATH"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment