aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/sandbox_w64.yml
blob: 498b690d0b9f1becd5d1933f0e75e87ac29f2cc9 (plain) (blame)
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
93
94
95
96
97
98
99
100
101
102
103
104
105
env:
    QT_VERSION: '5.15.2'
    SQLITE_VERSION: '3400000'
    SQLITE_RELEASE_YEAR: '2022'
    QT_ARCH: 'win32_mingw81'
    PYTHON_VERSION: '3.9'
    QT_BIN_DIR: ../Qt/5.15.2/mingw81_32/bin

name: Sandbox/playground

on:
    workflow_dispatch:
        inputs:

jobs:
    win:
        runs-on: windows-2019

        steps:
            - name: Set up MinGW
              uses: egor-tensin/setup-mingw@v2
              with:
                platform: x86

            - name: Cache Qt
              id: cache-qt
              uses: actions/cache@v3
              with:
                path: ${{ github.workspace }}\..\Qt
                key: ${{ runner.os }}-${{ env.QT_VERSION }}-Qt-Cache
                
            - name: Install Qt
              uses: jurplel/install-qt-action@v3
              with:
                cache: true
                version: ${{ env.QT_VERSION }}
                host: 'windows'
                arch: ${{ env.QT_ARCH }}
                # jurplel/install-qt-action has a bug due to which we cannot use ${{ github.workspace }} for the "dir" property, because it will fail.
                dir: 'D:/'
                setup-python: 'false'

            - uses: actions/setup-python@v4
              with:
                python-version: ${{ env.PYTHON_VERSION }}
                architecture: 'x86'
                
            - name: Clone repo
              uses: actions/checkout@v3
              with:
                ref: ${{ github.event.client_payload.branch }}

            - name: Install dependencies
              shell: bash
              run: |
                7z x -o".." win_deps/win32_deps.zip
                echo "../lib" >> $GITHUB_PATH
 
            - name: Find zlib
              shell: bash
              run: |
                find ../../ -name "zlib.h"
 
            - name: Install SQLite3
              shell: bash
              run: |
                cd ..
                curl -L http://sqlite.org/$SQLITE_RELEASE_YEAR/sqlite-amalgamation-$SQLITE_VERSION.zip --output sqlite-amalgamation-$SQLITE_VERSION.zip
                7z x sqlite-amalgamation-$SQLITE_VERSION.zip
                cd sqlite-amalgamation-$SQLITE_VERSION
                gcc.exe sqlite3.c -Os -fpic -DWIN32 -m32 -I. -shared -o sqlite3.dll \
                    -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT \
                    -DSQLITE_ENABLE_DBSTAT_VTAB \
                    -DSQLITE_ENABLE_BYTECODE_VTAB \
                    -DSQLITE_ENABLE_COLUMN_METADATA \
                    -DSQLITE_ENABLE_EXPLAIN_COMMENTS \
                    -DSQLITE_ENABLE_FTS3 \
                    -DSQLITE_ENABLE_FTS4 \
                    -DSQLITE_ENABLE_FTS5 \
                    -DSQLITE_ENABLE_GEOPOLY \
                    -DSQLITE_ENABLE_JSON1 \
                    -DSQLITE_ENABLE_RTREE \
                    -DSQLITE_ENABLE_MATH_FUNCTIONS
                cp -f sqlite3.dll ../lib/
                cp -f sqlite3.h ../include/
                cp -f sqlite3ext.h ../include/
                                
            - name: Compile additional SQLite3 extensions
              shell: bash
              run: |
                cd ..
                mkdir ext
                curl -L http://sqlite.org/$SQLITE_RELEASE_YEAR/sqlite-src-$SQLITE_VERSION.zip --output sqlite-src-$SQLITE_VERSION.zip
                7z x sqlite-src-$SQLITE_VERSION.zip
                cd sqlite-src-$SQLITE_VERSION/ext
                FLAGS="-shared -Os -fpic -DWIN32 -m32 -Imisc -I../../include -L../../lib -lsqlite3"
                for f in compress; do
                    echo "gcc.exe misc/$f.c $FLAGS -lzlib1 -o ../../ext/$f.dll"
                    gcc.exe misc/$f.c $FLAGS -lzlib1 -o ../../ext/$f.dll
                done
                for f in csv decimal eval ieee754 percentile rot13 series uint uuid zorder; do
                    echo "gcc.exe misc/$f.c $FLAGS -o ../../ext/$f.dll"
                    gcc.exe misc/$f.c $FLAGS -o ../../ext/$f.dll
                done
                ls -l ../../ext/