From adc067ba745cebf2e2a2f9523bc14136ca1d2680 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Mon, 9 Sep 2024 23:22:15 +0200 Subject: fixed win32 CI and nightly builds (refs #5) * The libtool wrapper binaries do not pass down UTF-8 strings correctly, so the Unicode tests failed under some circumstances. * As we aren't actually linking against any locally-built shared libraries, we are passing --disable-shared to libtool which inhibts wrapper generation on win32 and fixes the test suite. * Also use up to date autotools. This didn't fix anything, though. * test suite: try writing an Unicode filename as well * There have been problems doing that on Win32 where UTF-8 was not correctly passed down from the command line and some Windows API calls were only working with ANSI filenames etc. --- .github/workflows/ci.yml | 9 ++++++--- .github/workflows/nightly.yml | 16 +++++++++++----- 2 files changed, 17 insertions(+), 8 deletions(-) (limited to '.github') diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 03474c6..de9274e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -112,16 +112,19 @@ jobs: - name: Install Build Dependencies run: > pacman -S --noconfirm --needed - base-devel autotools mingw-w64-i686-toolchain + base-devel mingw-w64-i686-autotools mingw-w64-i686-toolchain mingw-w64-i686-glib2 mingw-w64-i686-pdcurses groff mingw-w64-i686-doxygen - name: Configure Build env: PDCURSES_CFLAGS: -I/mingw32/include/pdcurses/ + # --disable-shared makes sure that libtool won't create wrapper binaries. + # They are not required and cause problems when running the test suite + # as they don't pass down UTF-8 parameters properly. run: | autoreconf -i - ./configure --with-interface=pdcurses-gui --enable-debug --enable-html-manual + ./configure --with-interface=pdcurses-gui --enable-debug --disable-shared --enable-html-manual - run: make - run: make install @@ -133,7 +136,7 @@ jobs: run: cd doc && make devdoc - name: make distcheck env: - DISTCHECK_CONFIGURE_FLAGS: --with-interface=pdcurses-gui + DISTCHECK_CONFIGURE_FLAGS: --with-interface=pdcurses-gui --disable-shared PDCURSES_CFLAGS: -I/mingw32/include/pdcurses/ run: make distcheck - name: Build Source Tarball diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 1bd9321..2e438ef 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -169,7 +169,7 @@ jobs: - name: Install Build Dependencies run: > pacman -S --noconfirm --needed - base-devel autotools mingw-w64-i686-toolchain + base-devel mingw-w64-i686-autotools mingw-w64-i686-toolchain mingw-w64-i686-glib2 mingw-w64-i686-pdcurses groff @@ -188,14 +188,17 @@ jobs: CFLAGS: -O3 -flto CXXFLAGS: -O3 -flto LDFLAGS: -flto + # --disable-shared makes sure that libtool won't create wrapper binaries. + # They are not required and cause problems when running the test suite + # as they don't pass down UTF-8 parameters properly. run: | autoreconf -i mkdir build-wingui build-wincon (cd build-wingui - ../configure --with-interface=pdcurses-gui --enable-html-manual --program-prefix=g \ + ../configure --with-interface=pdcurses-gui --disable-shared --enable-html-manual --program-prefix=g \ PDCURSES_LIBS="-lpdcurses_wingui -lgdi32 -lcomdlg32 -lwinmm") (cd build-wincon - ../configure --with-interface=pdcurses --enable-html-manual \ + ../configure --with-interface=pdcurses --disable-shared --enable-html-manual \ PDCURSES_LIBS="-lpdcurses_wincon -lgdi32 -lwinmm") - name: make @@ -263,7 +266,7 @@ jobs: - name: Install Build Dependencies run: > pacman -S --noconfirm --needed - base-devel autotools mingw-w64-i686-toolchain + base-devel mingw-w64-i686-autotools mingw-w64-i686-toolchain mingw-w64-i686-glib2 mingw-w64-i686-gtk3 groff @@ -273,9 +276,12 @@ jobs: CFLAGS: -O3 -flto CXXFLAGS: -O3 -flto LDFLAGS: -flto + # --disable-shared makes sure that libtool won't create wrapper binaries. + # They are not required and cause problems when running the test suite + # as they don't pass down UTF-8 parameters properly. run: | autoreconf -i - ./configure --with-interface=gtk --enable-html-manual + ./configure --with-interface=gtk --disable-shared --enable-html-manual - name: make run: make -j 2 -- cgit v1.2.3