[cmake] Another try on making sure feature testing is working (#691)

This commit is contained in:
Ebrahim Byagowi 2018-01-10 23:51:56 +03:30 committed by GitHub
parent 746a37d5bd
commit e24bea8e91
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 91 additions and 81 deletions

View File

@ -2,7 +2,54 @@ version: 2
jobs: jobs:
oracledeveloperstudio: distcheck:
docker:
- image: dockcross/base
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
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
archlinux:
docker:
- image: base/devel
steps:
- checkout
- run: pacman --noconfirm -Syu freetype2 cairo icu gettext gobject-introspection gcc gcc-libs glib2 graphite pkg-config ragel
- run: ./autogen.sh --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2
- run: make && make check
fedora-outoftreebuild:
docker:
- image: fedora
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
cmake-gcc:
docker:
- image: dockcross/base
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: cmake -DHB_HAVE_FREETYPE=ON -DHB_HAVE_GRAPHITE2=ON -DHB_BUILTIN_UCDN=ON -DHB_HAVE_GLIB=ON -DHB_HAVE_ICU=ON -DHB_BUILD_UTILS=ON -Bbuild -H. -GNinja
- run: ninja -Cbuild
- run: ninja -Cbuild test
- run: ninja -Cbuild install
cmake-oracledeveloperstudio:
docker: docker:
- image: fedora - image: fedora
steps: steps:
@ -14,25 +61,16 @@ jobs:
- run: make -Cbuild test - run: make -Cbuild test
- run: make -Cbuild install - run: make -Cbuild install
fedora-out-of-tree: crosscompile-notest-djgpp:
docker: docker:
- image: fedora - image: quay.io/ebraminio/djgpp
steps: steps:
- checkout - 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: apt update && apt install -y ragel pkg-config libtool autoconf
- run: NOCONFIGURE=1 ./autogen.sh --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2 - run: CFLAGS="-Wno-attributes" CXXFLAGS="-Wno-attributes" ./autogen.sh --prefix=/usr/local/djgpp --host=i586-pc-msdosdjgpp
- run: mkdir build && cd build && ../configure && make && make check - run: make
archlinux: crosscompile-notest-freebsd9:
docker:
- image: base/devel
steps:
- checkout
- run: pacman --noconfirm -Syu freetype2 cairo icu gettext gobject-introspection gcc gcc-libs glib2 graphite pkg-config ragel
- run: ./autogen.sh --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2
- run: make && make check
freebsd9:
docker: docker:
- image: donbowman/freebsd-cross-build - image: donbowman/freebsd-cross-build
steps: steps:
@ -41,27 +79,7 @@ jobs:
- run: ./autogen.sh --prefix=/freebsd --host=x86_64-pc-freebsd9 - run: ./autogen.sh --prefix=/freebsd --host=x86_64-pc-freebsd9
- run: make - run: make
base: crosscompile-notest-psvita:
docker:
- image: dockcross/base
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: cmake -DHB_HAVE_FREETYPE=ON -DHB_HAVE_GRAPHITE2=ON -DHB_BUILTIN_UCDN=ON -DHB_HAVE_GLIB=ON -DHB_HAVE_ICU=ON -DHB_BUILD_UTILS=ON -Bbuild -H. -GNinja
- run: ninja -Cbuild
- run: ninja -Cbuild test
- run: ninja -Cbuild install
distcheck:
docker:
- image: dockcross/base
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
psvita:
docker: docker:
- image: dockcross/base - image: dockcross/base
steps: steps:
@ -71,7 +89,7 @@ jobs:
- run: ./autogen.sh --prefix=/usr/local/vitasdk/arm-vita-eabi --host=arm-vita-eabi - run: ./autogen.sh --prefix=/usr/local/vitasdk/arm-vita-eabi --host=arm-vita-eabi
- run: make - run: make
android-arm: crosscompile-cmake-notest-android-arm:
docker: docker:
- image: dockcross/android-arm - image: dockcross/android-arm
steps: steps:
@ -80,7 +98,7 @@ jobs:
- run: cmake -Bbuild -H. -GNinja - run: cmake -Bbuild -H. -GNinja
- run: ninja -Cbuild - run: ninja -Cbuild
browser-asmjs: crosscompile-cmake-notest-browser-asmjs:
docker: docker:
- image: dockcross/browser-asmjs - image: dockcross/browser-asmjs
steps: steps:
@ -89,7 +107,7 @@ jobs:
- run: cmake -Bbuild -H. -GNinja - run: cmake -Bbuild -H. -GNinja
- run: ninja -Cbuild - run: ninja -Cbuild
linux-arm64: crosscompile-cmake-notest-linux-arm64:
docker: docker:
- image: dockcross/linux-arm64 - image: dockcross/linux-arm64
steps: steps:
@ -98,7 +116,7 @@ jobs:
- run: cmake -Bbuild -H. -GNinja - run: cmake -Bbuild -H. -GNinja
- run: ninja -Cbuild - run: ninja -Cbuild
linux-mips: crosscompile-cmake-notest-linux-mips:
docker: docker:
- image: dockcross/linux-mips - image: dockcross/linux-mips
steps: steps:
@ -107,7 +125,7 @@ jobs:
- run: cmake -Bbuild -H. -GNinja - run: cmake -Bbuild -H. -GNinja
- run: ninja -Cbuild - run: ninja -Cbuild
windows-x64: crosscompile-cmake-notest-windows-x64:
docker: docker:
- image: dockcross/windows-x64 - image: dockcross/windows-x64
steps: steps:
@ -116,39 +134,32 @@ jobs:
- run: cmake -Bbuild -H. -GNinja - run: cmake -Bbuild -H. -GNinja
- run: ninja -Cbuild - 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: workflows:
version: 2 version: 2
build: build:
jobs: jobs:
#- oracledeveloperstudio # both autotools and cmake
#- fedora-out-of-tree
- archlinux
- freebsd9
- base
- distcheck - distcheck
- psvita
- android-arm # autotools based builds
- browser-asmjs
- linux-arm64
- linux-mips
- windows-x64
- alpine - 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

View File

@ -94,24 +94,23 @@ include (CheckFunctionExists)
include (CheckIncludeFile) include (CheckIncludeFile)
macro (check_funcs) # Similar to AC_CHECK_FUNCS of autotools macro (check_funcs) # Similar to AC_CHECK_FUNCS of autotools
foreach (func_name ${ARGN}) 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}) add_definitions(-DHAVE_${definiton_to_add})
endif () endif ()
endforeach () endforeach ()
endmacro () 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) check_include_file(unistd.h HAVE_UNIST_H)
if (${HAVE_UNIST_H}) if (${HAVE_UNIST_H})
add_definitions(-DHAVE_UNIST_H) add_definitions(-DHAVE_UNIST_H)
endif () endif ()
#check_include_file(sys/mman.h HAVE_SYS_MMAN_H) enable this sometime check_include_file(sys/mman.h HAVE_SYS_MMAN_H)
#if (${HAVE_SYS_MMAN_H}) if (${HAVE_SYS_MMAN_H})
# add_definitions(-DHAVE_SYS_MMAN_H) add_definitions(-DHAVE_SYS_MMAN_H)
#endif () endif ()
check_include_file(xlocale.h HAVE_XLOCALE_H) check_include_file(xlocale.h HAVE_XLOCALE_H)
if (${HAVE_XLOCALE_H}) if (${HAVE_XLOCALE_H})
add_definitions(-DHAVE_XLOCALE_H) add_definitions(-DHAVE_XLOCALE_H)