This commit is contained in:
Rod Sheeter 2018-02-16 06:01:41 -08:00
commit be0a01a676
5 changed files with 20 additions and 8 deletions

View File

@ -9,7 +9,7 @@ jobs:
- checkout
- run: apt update && apt install -y ninja-build binutils libtool autoconf automake make cmake gcc g++ pkg-config ragel gtk-doc-tools libfreetype6-dev libglib2.0-dev libcairo2-dev libicu-dev libgraphite2-dev python python-pip
- run: pip install fonttools
- run: ./autogen.sh && (make distcheck || (cd harfbuzz-* && ../.collect_logs && false)) && rm -rf harfbuzz-*
- run: ./autogen.sh && (make distcheck || (cd harfbuzz-* && ../.ci/collect-logs.sh && false)) && rm -rf harfbuzz-*
- run: make distdir && cd harfbuzz-* && cmake -DHB_CHECK=ON -Bbuild -H. -GNinja && ninja -Cbuild && CTEST_OUTPUT_ON_FAILURE=1 ninja -Cbuild test && ninja -Cbuild install
alpine:
@ -19,7 +19,7 @@ jobs:
- checkout
- run: apk update && apk add ragel make pkgconfig libtool autoconf automake gettext gcc g++ glib-dev freetype-dev cairo-dev
- run: ./autogen.sh
- run: make && (make check || (./.collect_logs && false))
- run: make && (make check || (.ci/collect-logs.sh && false))
archlinux:
docker:
@ -28,7 +28,7 @@ jobs:
- checkout
- run: pacman --noconfirm -Syu freetype2 cairo icu gettext gobject-introspection gcc gcc-libs glib2 graphite pkg-config ragel python
- run: ./autogen.sh --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2
- run: make && (make check || (./.collect_logs && false))
- run: make && (make check || (.ci/collect-logs.sh && false))
fedora-outoftreebuild:
docker:
@ -37,7 +37,7 @@ jobs:
- checkout
- run: dnf install -y pkg-config ragel gcc gcc-c++ automake autoconf libtool make which glib2-devel freetype-devel cairo-devel libicu-devel gobject-introspection-devel graphite2-devel redhat-rpm-config python || true
- run: NOCONFIGURE=1 ./autogen.sh --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2
- run: mkdir build && cd build && ../configure && make && (make check || (./.collect_logs && false))
- run: mkdir build && cd build && ../configure && make && (make check || (.ci/collect-logs.sh && false))
cmake-gcc:
docker:

View File

@ -27,7 +27,7 @@ matrix:
- ./autogen.sh
- ./configure $CONFIGURE_OPTS --enable-gtk-doc
- make
- make check || (./.collect_logs && false)
- make check || (.ci/collect-logs.sh && false)
after_success:
- bash .ci/run-coveralls.sh # for coveralls.io code coverage tracking
- bash .ci/deploy-docs.sh
@ -43,7 +43,7 @@ matrix:
- ./autogen.sh
- ./configure $CONFIGURE_OPTS
- make
- make check || (./.collect_logs && false)
- make check || (.ci/collect-logs.sh && false)
- os: osx
compiler: clang
@ -59,7 +59,7 @@ matrix:
- ./autogen.sh
- ./configure $CONFIGURE_OPTS --with-coretext
- make
- make check || (./.collect_logs && false)
- make check || (.ci/collect-logs.sh && false)
notifications:
irc: "irc.freenode.org#harfbuzz"

View File

@ -44,7 +44,7 @@ build_script:
- 'if "%compiler%"=="msvc" if not "%platform%"=="ARM" ctest --output-on-failure -C %configuration%'
- 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "pacman --noconfirm -S mingw-w64-$MSYS2_ARCH-{freetype,cairo,icu,gettext,gobject-introspection,gcc,gcc-libs,glib2,graphite2,pkg-config,python2}"'
- '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 --build=%MINGW_CHOST% --host=%MINGW_CHOST% --prefix=%MINGW_PREFIX%; make; make check || (./.collect_logs && false)"'
- '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 --build=%MINGW_CHOST% --host=%MINGW_CHOST% --prefix=%MINGW_PREFIX%; make; make check || (.ci/collect-logs.sh && false)"'
cache:
- c:\tools\vcpkg\installed\

View File

@ -51,6 +51,9 @@
#include <stdio.h>
#include <stdarg.h>
#if defined(_MSC_VER)
#include <intrin.h>
#endif
#define HB_PASTE1(a,b) a##b
#define HB_PASTE(a,b) HB_PASTE1(a,b)
@ -352,6 +355,10 @@ _hb_bit_storage (unsigned int number)
{
#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__OPTIMIZE__)
return likely (number) ? (sizeof (unsigned int) * 8 - __builtin_clz (number)) : 0;
#elif defined(_MSC_VER) && defined(__OPTIMIZE__)
unsigned long where;
if (_BitScanReverse(&where, number)) return 1 + where;
return 0;
#else
unsigned int n_bits = 0;
while (number) {
@ -368,6 +375,11 @@ _hb_ctz (unsigned int number)
{
#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__OPTIMIZE__)
return likely (number) ? __builtin_ctz (number) : 0;
#elif defined(_MSC_VER) && defined(__OPTIMIZE__)
unsigned long where;
if (_BitScanForward(&where, n)) return where;
return 0;
}
#else
unsigned int n_bits = 0;
if (unlikely (!number)) return 0;