jobs:
- oracledeveloperstudio:
+ distcheck:
docker:
- - image: fedora
+ - image: dockcross/base
steps:
- checkout
- - run: dnf install -y gcc ragel cmake make which glib2-devel freetype-devel cairo-devel libicu-devel graphite2-devel wget tar bzip2 python || true
- - run: wget http://$ODSUSER:$ODSPASS@behdad.org/harfbuzz-private/OracleDeveloperStudio12.6-linux-x86-bin.tar.bz2 && tar xf OracleDeveloperStudio12.6-linux-x86-bin.tar.bz2 --owner root --group root --no-same-owner
- - run: CC=/root/project/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/suncc CXX=/root/project/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/sunCC cmake -DHB_HAVE_GRAPHITE2=ON -DHB_BUILTIN_UCDN=ON -DHB_HAVE_GLIB=ON -DHB_HAVE_ICU=ON -DHB_HAVE_FREETYPE=ON -Bbuild -H.
- - run: make -Cbuild
- - run: make -Cbuild test
- - run: make -Cbuild install
+ - run: apt update && apt install -y pkg-config ragel gtk-doc-tools libfreetype6-dev libglib2.0-dev libcairo2-dev libicu-dev libgraphite2-dev
+ - run: ./autogen.sh && make distcheck
+ - run: make distdir && cd harfbuzz-* && cmake -DDHB_CHECK=ON -Bbuild -H. -GNinja && ninja -Cbuild && CTEST_OUTPUT_ON_FAILURE=1 ninja -Cbuild test && ninja -Cbuild install
- fedora-out-of-tree:
+ alpine:
docker:
- - image: fedora
+ - image: alpine
steps:
- 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 || 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
+ - 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
archlinux:
docker:
- run: ./autogen.sh --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2
- run: make && make check
- freebsd9:
+ fedora-outoftreebuild:
docker:
- - image: donbowman/freebsd-cross-build
+ - image: fedora
steps:
- checkout
- - run: apt update && apt install -y pkg-config ragel
- - run: ./autogen.sh --prefix=/freebsd --host=x86_64-pc-freebsd9
- - run: make
+ - 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 || 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
- base:
+ cmake-gcc:
docker:
- image: dockcross/base
steps:
- run: ninja -Cbuild test
- run: ninja -Cbuild install
- distcheck:
+ cmake-oracledeveloperstudio:
docker:
- - image: dockcross/base
+ - image: fedora
steps:
- checkout
- - run: apt update && apt install -y pkg-config ragel gtk-doc-tools libfreetype6-dev libglib2.0-dev libcairo2-dev libicu-dev libgraphite2-dev
- - run: ./autogen.sh && make distcheck
- - run: make distdir && cd harfbuzz-* && cmake -DDHB_CHECK=ON -Bbuild -H. -GNinja && ninja -Cbuild && CTEST_OUTPUT_ON_FAILURE=1 ninja -Cbuild test && ninja -Cbuild install
+ - run: dnf install -y gcc ragel cmake make which glib2-devel freetype-devel cairo-devel libicu-devel graphite2-devel wget tar bzip2 python || true
+ - run: wget http://$ODSUSER:$ODSPASS@behdad.org/harfbuzz-private/OracleDeveloperStudio12.6-linux-x86-bin.tar.bz2 && tar xf OracleDeveloperStudio12.6-linux-x86-bin.tar.bz2 --owner root --group root --no-same-owner
+ - run: CC=/root/project/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/suncc CXX=/root/project/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/sunCC cmake -DHB_HAVE_GRAPHITE2=ON -DHB_BUILTIN_UCDN=ON -DHB_HAVE_GLIB=ON -DHB_HAVE_ICU=ON -DHB_HAVE_FREETYPE=ON -Bbuild -H.
+ - run: make -Cbuild
+ - run: make -Cbuild test
+ - run: make -Cbuild install
+
+ crosscompile-notest-djgpp:
+ docker:
+ - image: quay.io/ebraminio/djgpp
+ steps:
+ - checkout
+ - run: apt update && apt install -y ragel pkg-config libtool autoconf
+ - run: CFLAGS="-Wno-attributes" CXXFLAGS="-Wno-attributes" ./autogen.sh --prefix=/usr/local/djgpp --host=i586-pc-msdosdjgpp
+ - run: make
- psvita:
+ crosscompile-notest-freebsd9:
+ docker:
+ - image: donbowman/freebsd-cross-build
+ steps:
+ - checkout
+ - run: apt update && apt install -y pkg-config ragel
+ - run: ./autogen.sh --prefix=/freebsd --host=x86_64-pc-freebsd9
+ - run: make
+
+ crosscompile-notest-psvita:
docker:
- image: dockcross/base
steps:
- run: ./autogen.sh --prefix=/usr/local/vitasdk/arm-vita-eabi --host=arm-vita-eabi
- run: make
- android-arm:
+ crosscompile-cmake-notest-android-arm:
docker:
- image: dockcross/android-arm
steps:
- run: cmake -Bbuild -H. -GNinja
- run: ninja -Cbuild
- browser-asmjs:
+ crosscompile-cmake-notest-browser-asmjs:
docker:
- image: dockcross/browser-asmjs
steps:
- run: cmake -Bbuild -H. -GNinja
- run: ninja -Cbuild
- linux-arm64:
+ crosscompile-cmake-notest-linux-arm64:
docker:
- image: dockcross/linux-arm64
steps:
- run: cmake -Bbuild -H. -GNinja
- run: ninja -Cbuild
- linux-mips:
+ crosscompile-cmake-notest-linux-mips:
docker:
- image: dockcross/linux-mips
steps:
- run: cmake -Bbuild -H. -GNinja
- run: ninja -Cbuild
- windows-x64:
+ crosscompile-cmake-notest-windows-x64:
docker:
- image: dockcross/windows-x64
steps:
- run: cmake -Bbuild -H. -GNinja
- run: ninja -Cbuild
- alpine:
- docker:
- - image: alpine
- steps:
- - 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
-
- dos:
- docker:
- - image: quay.io/ebraminio/djgpp
- steps:
- - checkout
- - run: apt update && apt install -y ragel pkg-config libtool autoconf
- - run: CFLAGS="-Wno-attributes" CXXFLAGS="-Wno-attributes" ./autogen.sh --prefix=/usr/local/djgpp --host=i586-pc-msdosdjgpp
- - run: make
-
workflows:
version: 2
build:
jobs:
- #- oracledeveloperstudio
- #- fedora-out-of-tree
- - archlinux
- - freebsd9
- - base
+ # both autotools and cmake
- distcheck
- - psvita
- - android-arm
- - browser-asmjs
- - linux-arm64
- - linux-mips
- - windows-x64
+
+ # autotools based builds
- alpine
- - dos
+ - archlinux
+ - fedora-outoftreebuild
+
+ # cmake based builds
+ - cmake-gcc
+ - cmake-oracledeveloperstudio
+
+ # crosscompiles
+ # they can't be test thus are without tests
+ ## autotools
+ - crosscompile-notest-djgpp
+ - crosscompile-notest-freebsd9
+ - crosscompile-notest-psvita
+
+ ## cmake
+ - crosscompile-cmake-notest-android-arm
+ - crosscompile-cmake-notest-browser-asmjs
+ - crosscompile-cmake-notest-linux-arm64
+ - crosscompile-cmake-notest-linux-mips
+ - crosscompile-cmake-notest-windows-x64
include (CheckIncludeFile)
macro (check_funcs) # Similar to AC_CHECK_FUNCS of autotools
foreach (func_name ${ARGN})
- set (RESULT OFF)
- check_function_exists(${func_name} RESULT)
- if (${RESULT})
- string(TOUPPER ${func_name} definiton_to_add)
+ string(TOUPPER ${func_name} definiton_to_add)
+ check_function_exists(${func_name} HAVE_${definiton_to_add})
+ if (${HAVE_${definiton_to_add}})
add_definitions(-DHAVE_${definiton_to_add})
endif ()
endforeach ()
endmacro ()
-check_funcs(atexit mprotect sysconf getpagesize mmap isatty newlocale strtod_l)
+check_funcs(atexit mprotect sysconf mmap strtod_l) #TODO: getpagesize newlocale isatty
check_include_file(unistd.h HAVE_UNIST_H)
if (${HAVE_UNIST_H})
add_definitions(-DHAVE_UNIST_H)
endif ()
-#check_include_file(sys/mman.h HAVE_SYS_MMAN_H) enable this sometime
-#if (${HAVE_SYS_MMAN_H})
-# add_definitions(-DHAVE_SYS_MMAN_H)
-#endif ()
+check_include_file(sys/mman.h HAVE_SYS_MMAN_H)
+if (${HAVE_SYS_MMAN_H})
+ add_definitions(-DHAVE_SYS_MMAN_H)
+endif ()
check_include_file(xlocale.h HAVE_XLOCALE_H)
if (${HAVE_XLOCALE_H})
add_definitions(-DHAVE_XLOCALE_H)