aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2021-06-07 18:23:23 +0200
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2021-06-08 19:10:03 +0200
commitb6de523a77149b0262403721ede2ee57c0d3716e (patch)
tree45e608581b1e021bf347d14e8518fbc75e406836 /.github
parent073f5f28b835d3bda5e8771383c26d78d9740768 (diff)
downloadsciteco-b6de523a77149b0262403721ede2ee57c0d3716e.tar.gz
added nightly builds for GTK+ 3 on Win32 (currently broken)
* turns out that we need icon themes and pixbuf loaders as well * GTK assumes an UNIX like hierarchy, so we package sciteco.exe and all DLLs into a bin/ subdir. * The SciTECO icons probably shouldn't be in bin/. If we installed them into the hicolor icon theme, GTK might pick them up automatically. This would work under Windows and UNIX. * The GTK builds are still broken. I do really need a real system (MSYS installation) to play around.
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/nightly.yml108
1 files changed, 96 insertions, 12 deletions
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index 1582119..d17016a 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -43,14 +43,6 @@ jobs:
- name: Build Debian/Ubuntu Packages
run: ./distribute.mk debian-binary
- # FIXME: For doing Windows builds, we need a few manually built packages
- # (PDCurses, Glib...).
- # Perhaps they can be uploaded to Sourceforge and simply downloaded here.
- # Alternatively, we could manually prepare a Docker container image or
- # even build them from scratch here.
-# - name: Build Windows Bundle
-# run: ./distribute.mk mingw-binary
-
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
@@ -115,21 +107,113 @@ jobs:
run: |
mkdir temp-bin/
cp /mingw32/bin/{sciteco.exe,grosciteco.tes,tedoc.tes} temp-bin/
- cp -r /mingw32/share/sciteco/{lib,*.teco_ini,*.tmac} temp-bin/
+ cp -r /mingw32/share/sciteco/{lib,*.tmac} temp-bin/
cp /mingw32/share/sciteco/sample.teco_ini temp-bin/.teco_ini
cp -r /mingw32/share/doc/sciteco/* temp-bin/
cp COPYING ChangeLog temp-bin/
- cp /mingw32/bin/gspawn-win32-helper-console.exe temp-bin/
+ cp /mingw32/bin/gspawn-win32-helper*.exe temp-bin/
# FIXME: Even though MSYS provides working statically-linked
# Glib libraries, the g_spawn() helpers still depend on the DLL.
# This could perhaps be avoided by downloading our own self-built
# executable from somewhere.
- cp /mingw32/bin/libglib-2.0-0.dll temp-bin/
+ # Else, there is little sense in linking the Curses builds statically
+ # as only libstdc++-6.dll is missing.
+ cp /mingw32/bin/{libglib-2.0-0,libpcre-1,libintl-8,libiconv-2,libwinpthread-1,libgcc_s_dw2-1}.dll temp-bin/
- name: Get Current Date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Archive Windows Distribution (PDCurses)
uses: actions/upload-artifact@v2
with:
- name: SciTECO nightly packages on ${{ steps.date.outputs.date }} (win32, PDCurses)
+ name: SciTECO nightly packages on ${{ steps.date.outputs.date }} (Win32, PDCurses)
+ path: temp-bin/*
+
+ # NOTE: There is a lot of redundancy with win32-curses.
+ # However we link the Curses version statically, while Gtk+3 cannot be
+ # linked statically on Windows (at least MSYS does not provide
+ # static libraries) and would draw in libglib, libintl, libiconv etc. anyway.
+ # On the other hand we currently have to package all sorts of libraries only
+ # for gspawn-win32-helper-console.exe - if this situation persists, we can
+ # just as well unify the two jobs.
+ win32-gtk:
+ runs-on: windows-latest
+
+ defaults:
+ run:
+ shell: bash.exe --login -eo pipefail "{0}"
+ env:
+ MSYSTEM: MINGW32
+ CHERE_INVOKING: 1
+
+ steps:
+
+ - name: Recursive Git Clone
+ uses: actions/checkout@v2
+ with:
+ submodules: recursive
+
+ - name: Set Up Shell
+ run: echo C:\msys64\usr\bin\ | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
+ shell: pwsh
+
+ - name: Install Build Dependencies
+ run: >
+ pacman -S --noconfirm --needed
+ base-devel mingw-w64-i686-toolchain
+ mingw-w64-i686-glib2 mingw-w64-i686-gtk3
+ groff
+
+ - name: Configure Build
+ env:
+ # FIXME: Once there is an --enable-lto, we should use that.
+ CFLAGS: -g -O3 -flto
+ CXXFLAGS: -g -O3 -flto
+ LDFLAGS: -flto
+ run: |
+ autoreconf -i
+ ./configure --with-interface=gtk --enable-html-manual
+
+ - name: make
+ run: make -j 2
+ - run: make install-strip
+ # NOTE: The test suite must be run in verbose mode because if it fails
+ # we won't be able to analyze testsuite.log.
+# - name: Run Test Suite
+# run: make check TESTSUITEFLAGS="--verbose"
+
+ - name: Prepare Distribution Directory
+ run: |
+ mkdir -p temp-bin/bin
+ cp /mingw32/bin/{sciteco.exe,grosciteco.tes,tedoc.tes} temp-bin/bin/
+ cp -r /mingw32/share/sciteco/{lib,*.tmac,*.png} temp-bin/bin/
+ cp /mingw32/share/sciteco/sample.teco_ini temp-bin/bin/.teco_ini
+ cp /mingw32/share/sciteco/fallback.css temp-bin/bin/.teco_css
+ mkdir -p temp-bin/doc
+ cp -r /mingw32/share/doc/sciteco/* temp-bin/doc/
+ cp COPYING ChangeLog temp-bin/doc/
+ cp /mingw32/bin/gspawn-win32-helper*.exe temp-bin/bin/
+ cp /mingw32/bin/{libglib-2.0-0,libpcre-1,libintl-8,libiconv-2,libwinpthread-1,libgcc_s_dw2-1}.dll temp-bin/bin/
+ cp /mingw32/bin/{libgtk-3-0,libgdk-3-0,libgdk_pixbuf-2.0-0,libatk-1.0-0}.dll temp-bin/bin/
+ cp /mingw32/bin/{libgobject-2.0-0,libgmodule-2.0-0,libgio-2.0-0,libffi-7}.dll temp-bin/bin/
+ cp /mingw32/bin/{libpango-1.0-0,libpangocairo-1.0-0,libpangowin32-1.0-0,libpangoft2-1.0-0}.dll temp-bin/bin/
+ cp /mingw32/bin/{libthai-0,libdatrie-1,libharfbuzz-0,libgraphite2,libfribidi-0,libepoxy-0}.dll temp-bin/bin/
+ cp /mingw32/bin/{libfontconfig-1,libexpat-1}.dll temp-bin/bin/
+ cp /mingw32/bin/{libfreetype-6,libpng16-16,libbrotlidec,libbrotlicommon,libbz2-1,zlib1}.dll temp-bin/bin/
+ cp /mingw32/bin/{libcairo-2,libcairo-gobject-2,libpixman-1-0,libstdc++-6}.dll temp-bin/bin/
+ #mkdir -p temp-bin/share
+ #cp /mingw32/share/loader.cache temp-bin/share/
+ #glib-compile-schemas /mingw32/share/glib-2.0/schemas
+ #mkdir -p temp-bin/share/glib-2.0
+ #cp /mingw32/share/glib-2.0/gschemas.compiled temp-bin/share/glib-2.0/
+ mkdir -p temp-bin/share/icons/Adwaita
+ cp -r /mingw32/share/icons/Adwaita/{scalable,icon-theme.cache,index.theme} temp-bin/share/icons/Adwaita/
+ mkdir -p temp-bin/lib/gdk-pixbuf-2.0/2.10.0/loaders/
+ cp /mingw32/lib/gdk-pixbuf-2.0/2.10.0/loaders/{libpixbufloader-svg.dll,libpixbufloader-png.dll} temp-bin/lib/gdk-pixbuf-2.0/2.10.0/loaders/
+ - name: Get Current Date
+ id: date
+ run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
+ - name: Archive Windows Distribution (GTK+ 3)
+ uses: actions/upload-artifact@v2
+ with:
+ name: SciTECO nightly packages on ${{ steps.date.outputs.date }} (Win32, GTK+ 3)
path: temp-bin/*