summaryrefslogtreecommitdiffstats
path: root/godot-update
blob: 3711af5f0dafbcae6de380b7c4dfe7cb700f85e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#! /bin/sh

RED="\033[0;31m"
RESET="\033[0m"

DST=$HOME/bin
DST_EXPORT=$DST/godot-export

FORCE=0
CLEAN=0
ANDROID=0

for I in  $@
do
    case $I in
        f)
        FORCE=1
        ;;
        a)
        ANDROID=1
        ;;
        c)
        CLEAN=1
        ;;
    esac
done


function build()
{

    J=$((`nproc`))

    export CXX=/usr/lib/ccache/bin/clang++
    export CC=/usr/lib/ccache/bin/clang

    rm ./bin/*
    [ $CLEAN -eq 1 ] && scons platform=x11 --clean

    # https://docs.godotengine.org/en/3.1/development/compiling/compiling_for_x11.html
    target=release_debug
    echo -e "build : ${RED}x11$RESET target=$RED$target$RESET"
    time scons -j$J platform=x11 target=$target tools=yes colored=yes pulseaudio=no bits=64 warnings=no
    # scons -j$J platform=x11 target=$target tools=no colored=yes pulseaudio=no bits=64 warnings=no
    # scons -j$J platform=x11 target=$target tools=no colored=yes pulseaudio=no bits=32 warnings=no
    cp ./bin/godot*tools* $DST/godot

    if [ $ANDROID -eq 1 ]
    then
        export ANDROID_HOME=/opt/android-sdk
        export ANDROID_NDK_ROOT=/opt/android-ndk
        [ ! -d $DST_EXPORT ] && mkdir $DST_EXPORT

        [ $CLEAN -eq 1 ] && scons platform=android --clean
        # https://docs.godotengine.org/en/3.1/development/compiling/compiling_for_android.html
        ndk_platform=android-29
        for arch in arm64v8 armv7; #x86_6
        do
            for target in release_debug;
            do
                echo -e "build : ${RED}android$RESET android_arch=$RED$arch$RESET target=$RED$target$RESET ndk_platform=$RED$ndk_platform$RESET"
                time scons -j$J platform=android target=$target android_arch=$arch ndk_platform=$ndk_platform tools=no disable_3d=true
            done
        done

        echo "${RED}gradlew build$RESET"
        pushd platform/android/java && ./gradlew build --build-cache -Dandroid_ndk=$ndk_platform && popd
        cp platform/android/java/app/build/outputs/apk/debug/android_debug.apk $DST_EXPORT/android_debug.apk
        cp platform/android/java/app/build/outputs/apk/release/android_release.apk $DST_EXPORT/android_release.apk
    fi
}

pushd ./godot

    [ $CLEAN -eq 1 ] && find -name \*.o -delete

    HEAD_PREV=$(git log HEAD~1.. --pretty=format:'%H' | head -n1)
    echo -e "current HEAD : $RED$HEAD_PREV$RESET"
    git pull
    HEAD_NOW=$(git log HEAD~1.. --pretty=format:'%H' | head -n1)
    echo -e "updated HEAD : $RED$HEAD_NOW$RESET"

    if [ $FORCE = 1 -o "$HEAD_PREV" != "$HEAD_NOW" ]
    then
        build
        git log $HEAD_PREV..
        ls -l bin/
    fi

popd

# godot-git ~/usr/git/castle_itter/project.godot