diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2021-06-06 23:32:28 +0200 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2021-06-08 18:45:32 +0200 |
commit | 0507d6a8b2bc590faf97c5f7d406218d1980470b (patch) | |
tree | f8e4cfc0072313e944bfc577dfe4fc1b88ba45f7 /.github/workflows/nightly.yml | |
parent | 0267b68570cc53d8c23e1454d2e8aa375ed50a51 (diff) | |
download | sciteco-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/nightly.yml')
-rw-r--r-- | .github/workflows/nightly.yml | 73 |
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/* |