[aur-general] PKGBUILD review

Ryan Whited dergottdergrunten at gmail.com
Fri Jan 29 21:53:49 UTC 2016


Greetings,

I've written my first PKGBUILD that I think is acceptable to submit
and while I tried to make sure I followed the guidelines, I wanted to
submit it for review here. You can view it online at
https://github.com/godofgrunts/arch-PKGBUILDs/blob/master/godot-export
if it's easier than email.

# Maintainer: Ryan Whited <dergottdergrunten at gmail dot com>
@god_of_grunts

pkgname=godot-export
_rname=godot
pkgver=1.1
pkgrel=1
pkgdesc="Export templates for the stable release of the Godot engine 1.1"
url="http://www.godotengine.org"
license=('MIT')
arch=('i686' 'x86_64')
makedepends=('scons' 'mingw-w64-binutils' 'mingw-w64-crt'
'mingw-w64-gcc' 'mingw-w64-headers' 'mingw-w64-headers-bootstrap'
'mingw-w64-winpthreads' 'upx') #'emscripten'
depends=('glu' 'libxcursor' 'alsa-lib' 'freetype2' 'mesa')
optdepends=('godot: Cannot export without it')
conflicts=('godot-export-git' 'godot-git')
_arch=''
if test "$CARCH" == x86_64; then
  _arch=('64')
else
  _arch=('32')
fi

tempdir="/home/$USER/.godot/templates/"

source=(
"https://github.com/godotengine/godot/archive/${pkgver}-stable.tar.gz"
        )
md5sums=('87eb2fc3518ce7a27957fada1ba003e9')

build() {
    export MINGW64_PREFIX="x86_64-w64-mingw32-"
    export MINGW32_PREFIX="i686-w64-mingw32-"

    cd "${srcdir}"/${_rname}-${pkgver}-stable

    sed -n '/\/* Copyright/,/IN THE SOFTWARE./p' main/main.cpp | sed
's/\/\*//' | sed 's/\*\///' > LICENSE

    cores=$(nproc)
    bindir=("${srcdir}"/${_rname}-${pkgver}-stable/bin)
    tooldir=("${srcdir}"/${_rname}-${pkgver}-stable/tools)

    mkdir $tempdir || echo $tempdir does not need to be made

    #linux
    if test _arch == '32'; then
        scons -j $cores platform=x11 tools=no target=release bits=32
          #linux_x11_32_release
        scons -j $cores platform=x11 tools=no target=release_debug
bits=32       #linux_x11_32_debug
        cp $bindir/godot.x11.opt.32 $tempdir/linux_x11_32_release
        cp $bindir/godot.x11.opt.debug.32 $tempdir/linux_x11_32_debug
    else
        scons -j $cores platform=x11 tools=no target=release bits=64
          #linux_x11_64_release
        scons -j $cores platform=x11 tools=no target=release_debug
bits=64       #linux_x11_64_debug
        cp $bindir/godot.x11.opt.64 $tempdir/linux_x11_64_release
        cp $bindir/godot.x11.opt.debug.64 $tempdir/linux_x11_64_debug
    fi

    #linux-server
    if test _arch == '32'; then
        scons -j $cores platform=server target=release_debug tools=no
bits=32
        cp $bindir/godot_server.server.opt.debug.32 $tempdir/linux_server_32
    else
        scons -j $cores platform=server target=release_debug tools=no
bits=64
        cp $bindir/godot_server.server.opt.debug.64 $tempdir/linux_server_64
    fi

    #Windows
    export MINGW32_PREFIX="i686-w64-mingw32-"
    export MINGW64_PREFIX="x86_64-w64-mingw32-"

    scons -j $cores platform=windows tools=no target=release bits=32
      #windows_32_release.exe
    scons -j $cores platform=windows tools=no target=release_debug
bits=32   #windows_32_debug.exe
    scons -j $cores platform=windows tools=no target=release bits=64
      #windows_64_release.exe
    scons -j $cores platform=windows tools=no target=release_debug
bits=64   #windows_64_debug.exe

    cp $bindir/godot.windows.opt.64.exe $tempdir/windows_64_release.exe
    cp $bindir/godot.windows.opt.debug.64.exe $tempdir/windows_64_debug.exe
    cp $bindir/godot.windows.opt.32.exe $tempdir/windows_32_release.exe
    cp $bindir/godot.windows.opt.debug.32.exe $tempdir/windows_32_debug.exe

    x86_64-w64-mingw32-strip $tempdir/windows_64_release.exe
    x86_64-w64-mingw32-strip $tempdir/windows_64_debug.exe
    upx $tempdir/windows_32_debug.exe
    upx $tempdir/windows_32_release.exe

    #OS X
    #I'll put code here when
https://github.com/godotengine/godot/wiki/compiling_osx is updated

    #Android
    #Probably should do this yourself, I'm not about to mess with your
Android SDK
    #https://github.com/godotengine/godot/wiki/export_android

    #WinRT
    #Can't do this on Linux sorry

    #Blackberry 10
    #Currently disabled by Godot

    #HTML5
    #Currently broken per https://github.com/godotengine/godot/issues/3510

    #export EMSCRIPTEN_ROOT=/usr/lib/emscripten

    #scons -j $cores platform=javascript tools=no target=release
    #scons -j $cores platform=javascript tools=no target=release_debug

    #cp $bindir/godot.javascript.opt.html $bindir/godot.html
    #cp $bindir/godot.javascript.opt.js $bindir/godot.js
    #cp $tooldir/html_fs/filesystem.js $bindir/filesystem.js

    #zip $tempdir/javascript_release.zip $bindir/godot.html
$bindir/godot.js $bindir/filesystem.js

    #cp $bindir/godot.javascript.opt.debug.html $bindir/godot.html
    #cp $bindir/godot.javascript.opt.debug.js $bindir/godot.js

    #zip $tempdir/javascript_debug.zip $bindir/godot.html
$bindir/godot.js $bindir/filesystem.js

}

package() {

    #Linux
    if test _arch == '32'; then
        upx $tempdir/linux_x11_32_release
        upx $tempdir/linux_x11_32_debug
    else
        upx $tempdir/linux_x11_64_release
        upx $tempdir/linux_x11_64_debug
    fi

    #Linux Server
    if test _arch == '32'; then
        upx $tempdir/linux_server_32
    else
        upx $tempdir/linux_server_64
    fi

    #Windows
    upx $tempdir/windows_32_debug.exe
    upx $tempdir/windows_32_release.exe
    x86_64-w64-mingw32-strip $tempdir/windows_64_release.exe
    x86_64-w64-mingw32-strip $tempdir/windows_64_debug.exe
}


More information about the aur-general mailing list