Skip to content
Snippets Groups Projects
build.sh 1.22 KiB
Newer Older
  • Learn to ignore specific revisions
  • Kali Kaneko's avatar
    Kali Kaneko committed
    #!/bin/bash
    set -e
    
    
    XBUILD=${XBUILD-no}
    WIN64="win64"
    GO=`which go`
    
    PROJECT=bitmask.pro
    TARGET_GOLIB=lib/libgoshim.a
    SOURCE_GOLIB=gui/backend.go
    
    
    if [ "$XBUILD" == "$WIN64" ]
    then
        # TODO allow to override vars
        QMAKE="`pwd`/../mxe/usr/x86_64-w64-mingw32.static/qt5/bin/qmake"
        PATH="`pwd`/../mxe/usr/bin"/:$PATH
        CC=x86_64-w64-mingw32.static-gcc
    else
        QMAKE=`which qmake`
    fi
    
    
    function init {
        mkdir -p lib
    }
    
    function buildGoLib {
        echo "[+] Using go in" $GO "[`go version`]"
        if [ "$XBUILD" == "no" ]
        then
            echo "[+] Building Go library with standard Go compiler"
            CGO_ENABLED=1 go build -buildmode=c-archive -o $TARGET_GOLIB $SOURCE_GOLIB
        fi
        if [ "$XBUILD" == "$WIN64" ]
        then
            echo "[+] Building Go library with mxe"
            echo ">> using cc:" $CC
            CC=$CC CGO_ENABLED=1 GOOS=windows GOARCH=amd64 go build -buildmode=c-archive -o $TARGET_GOLIB $SOURCE_GOLIB
        fi
    }
    
    function buildQmake {
        echo "[+] Now building Qml app with Qt qmake"
        echo ">> using qmake:" $QMAKE
        mkdir -p qtbuild
        $QMAKE -o qtbuild/Makefile "CONFIG-=debug CONFIG+=release" $PROJECT
    }
    
    
    Kali Kaneko's avatar
    Kali Kaneko committed
    
    buildGoLib
    buildQmake
    make -C qtbuild clean
    make -C qtbuild -j4 all