From 30cbe6158de1ddc0546d55e4edc1fe264e1b86ef Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Fri, 19 Oct 2018 22:04:56 +0200 Subject: [PATCH 1/3] Use O_BINARY instead of _O_BINARY Cygwin does not seem to have the later --- src/hb-blob.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/hb-blob.cc b/src/hb-blob.cc index edee67300..368491c05 100644 --- a/src/hb-blob.cc +++ b/src/hb-blob.cc @@ -487,8 +487,8 @@ hb_blob_t::try_make_writable (void) #if defined(_WIN32) || defined(__CYGWIN__) # include #else -# ifndef _O_BINARY -# define _O_BINARY 0 +# ifndef O_BINARY +# define O_BINARY 0 # endif #endif @@ -540,7 +540,7 @@ hb_blob_create_from_file (const char *file_name) hb_mapped_file_t *file = (hb_mapped_file_t *) calloc (1, sizeof (hb_mapped_file_t)); if (unlikely (!file)) return hb_blob_get_empty (); - int fd = open (file_name, O_RDONLY | _O_BINARY, 0); + int fd = open (file_name, O_RDONLY | O_BINARY, 0); if (unlikely (fd == -1)) goto fail_without_close; struct stat st; From cf92cb7e002f479505fed8c2c55ab12dcbea2d83 Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Fri, 19 Oct 2018 22:21:39 +0200 Subject: [PATCH 2/3] Use g_strdup instead of strdup Cygwin does not seem to have strdup. --- util/options.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/options.hh b/util/options.hh index 3749b99be..dd628590e 100644 --- a/util/options.hh +++ b/util/options.hh @@ -586,7 +586,7 @@ struct output_options_t : option_group_t if (output_format) { output_format++; /* skip the dot */ - output_format = strdup (output_format); + output_format = g_strdup (output_format); } } From d084719ff5a9e0e363bf352037f85b884bff11a7 Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Sat, 20 Oct 2018 00:18:36 +0200 Subject: [PATCH 3/3] Add Cygwin CI build Fixes https://github.com/harfbuzz/harfbuzz/issues/1274 --- appveyor.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/appveyor.yml b/appveyor.yml index f10078fdd..bf982199b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -28,9 +28,19 @@ environment: MINGW_CHOST: i686-w64-mingw32 MSYS2_ARCH: i686 + - compiler: cygwin + CYGWIN_PREFIX: C:\Cygwin64 + CYGWIN_ARCH: x86_64 + # Lots of test failures here! + #- compiler: cygwin + # CYGWIN_PREFIX: C:\Cygwin + # CYGWIN_ARCH: x86 + + install: - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "pacman --force --noconfirm -Sy && pacman --noconfirm --force -S pacman-mirrors && pacman --force -Syu --noconfirm"' - C:\msys64\usr\bin\bash -lc "pacman --noconfirm -S mingw-w64-x86_64-ragel" + - 'if "%compiler%"=="cygwin" %CYGWIN_PREFIX%\setup-%CYGWIN_ARCH%.exe -g -q -P cygwin-devel,libfreetype-devel,libcairo-devel,libicu-devel,gcc,gcc-g++,gobject-introspection,libglib2.0-devel,libgraphite2-devel,pkg-config,python2' build_script: - 'if "%compiler%"=="msvc" if not "%platform%"=="ARM" vcpkg install glib:%triplet% freetype:%triplet% cairo:%triplet%' @@ -49,8 +59,13 @@ build_script: - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "curl https://raw.githubusercontent.com/mirror/mingw-w64/023eb04c396d4e8d8fcf604cfababc53dae13398/mingw-w64-headers/include/dwrite_1.h > %MINGW_PREFIX%/%MINGW_CHOST%/include/dwrite_1.h"' - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "cd $APPVEYOR_BUILD_FOLDER; PATH=$PATH:/mingw64/bin:/mingw32/bin; ./autogen.sh --with-uniscribe --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2 --with-directwrite --build=%MINGW_CHOST% --host=%MINGW_CHOST% --prefix=%MINGW_PREFIX%; make; make check || .ci/fail.sh"' + - 'if "%compiler%"=="cygwin" set PATH=%PATH%;c:\msys64\mingw64\bin' # msys2 is added just for having "ragel" on PATH + - 'if "%compiler%"=="cygwin" curl https://raw.githubusercontent.com/mirror/mingw-w64/023eb04c396d4e8d8fcf604cfababc53dae13398/mingw-w64-headers/include/dwrite_1.h -o %CYGWIN_PREFIX%\usr\include\dwrite_1.h' + - 'if "%compiler%"=="cygwin" %CYGWIN_PREFIX%\bin\bash -lc "cd $APPVEYOR_BUILD_FOLDER; ./autogen.sh --with-uniscribe --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2 --with-directwrite; make; make check || .ci/fail.sh"' + cache: - c:\tools\vcpkg\installed\ + - '%CYGWIN_PREFIX%\var\cache\setup' notifications: - provider: Email