aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github/workflows
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2021-06-06 23:32:28 +0200
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2021-06-08 18:45:32 +0200
commit0507d6a8b2bc590faf97c5f7d406218d1980470b (patch)
treef8e4cfc0072313e944bfc577dfe4fc1b88ba45f7 /.github/workflows
parent0267b68570cc53d8c23e1454d2e8aa375ed50a51 (diff)
downloadsciteco-0507d6a8b2bc590faf97c5f7d406218d1980470b.tar.gz
added nightly builds for Windows 32-bit PDCurses
* These builds generally work, but function keys appear to be broken. This does not happen when building with the latest PDCursesMod on my machine. * <EC> appears to be broken. * We try to link everything statically since MSYS provides actually working static libglib builds. Unfortunately, their gspawn helper executables are still linked normally, so we have to pull in most DLLs anyway. Considering that GTK cannot be linked statically, we should perhaps simply link the Curses builds dynamically as well.
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/nightly.yml73
1 files changed, 73 insertions, 0 deletions
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index 67c7233..f6e6ca0 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -60,3 +60,76 @@ jobs:
with:
name: SciTECO nightly packages on ${{ steps.date.outputs.date }} (${{ matrix.os }}, ncurses and GTK+ 3)
path: debian-temp/*.deb
+
+ win32-curses:
+ 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-pdcurses
+ groff
+
+ - name: Configure Build
+ env:
+ PDCURSES_CFLAGS: -I/mingw32/include/pdcurses/
+ # The additional Windows libraries are for Win32a:
+ PDCURSES_LIBS: -lpdcurses -lgdi32 -lcomdlg32
+ LIBGLIB_LIBS: -lglib-2.0 -lintl -liconv -lpcre -lole32 -lws2_32
+ # FIXME: Once there is an --enable-lto, we should use that.
+ CFLAGS: -g -O3 -flto -DGLIB_STATIC_COMPILATION
+ CXXFLAGS: -g -O3 -flto
+ LDFLAGS: -flto
+ run: |
+ autoreconf -i
+ ./configure --with-interface=pdcurses --enable-html-manual --enable-static-executables
+
+ - 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 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 /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/
+ # 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/
+ - 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)
+ path: temp-bin/*