ci: here comes ninja!
authorMarcel Hollerbach <mail@marcel-hollerbach.de>
Wed, 7 Nov 2018 16:06:10 +0000 (17:06 +0100)
committerHermet Park <hermetpark@gmail.com>
Wed, 5 Dec 2018 05:37:06 +0000 (14:37 +0900)
this updates the scripts in order to make ninja all / ninja test work as
expected. For now there are 2 new jobs options-enabled and
options-disabled. mingw and osx will follow in another commit.
Benchmarks are disabled for now, as the eina benchmark does not seem to
terminate.

Differential Revision: https://phab.enlightenment.org/D7255

.ci/ci-configure.sh
.ci/ci-make-benchmark.sh
.ci/ci-make-check.sh
.ci/ci-make-checkbuild.sh
.ci/ci-make-distcheck.sh
.ci/ci-make-examples.sh
.ci/ci-make-install.sh
.ci/ci-make.sh
.ci/ci-osx-deps.sh
.travis.yml

index 01e7be8..bd434d3 100755 (executable)
@@ -4,108 +4,148 @@ set -e
 
 . .ci/travis.sh
 
-CI_BUILD_TYPE="$1"
-
-DEFAULT_LINUX_COPTS="--prefix=/usr/ --with-tests=regular --disable-cxx-bindings --disable-dependency-tracking -C"
-
-WAYLAND_LINUX_COPTS=" --enable-wayland --enable-elput --enable-drm \
---enable-wayland-ivi-shell --enable-gl-drm --with-opengl=es --enable-egl"
-
-ENABLED_LINUX_COPTS=" --enable-harfbuzz --enable-liblz4 --enable-image-loader-webp --enable-xinput22 \
---enable-multisense --enable-lua-old --enable-xpresent --enable-hyphen \
---enable-pixman --enable-pixman-font --enable-pixman-rect --enable-pixman-line \
---enable-pixman-poly --enable-pixman-image --enable-pixman-image-scale-sample \
---enable-image-loader-generic --enable-libuv --enable-tile-rotate --enable-vnc-server \
---enable-fb --enable-v4l2 --enable-cserve \
---enable-ecore-wayland --enable-ecore-drm --enable-cancel-ok --with-crypto=gnutls \
---enable-debug --disable-gstreamer1 --enable-gstreamer"
-
-# Not compatible with Open GL ES and thus the wayland options. Need to think about having different
-# jobs for the different supported GL flavours.
-#--enable-sdl
-
-DISABLED_LINUX_COPTS=" --disable-neon --disable-libeeze --disable-systemd --disable-magic-debug \
---disable-valgrind --disable-gstreamer1 \
---disable-fontconfig --disable-fribidi --disable-poppler --disable-spectre --disable-libraw \
---disable-librsvg --disable-xcf --disable-libmount --disable-tslib --disable-audio \
---disable-pulseaudio --disable-avahi --disable-xinput2 --disable-xim --disable-scim \
---disable-ibus --disable-physics --disable-quick-launch --disable-elua"
-
-RELEASE_READY_LINUX_COPTS=" --with-profile=release"
-
-MINGW_COPTS=" --prefix=/root/EFL/ewpi_64 --host=x86_64-w64-mingw32 --with-eolian-gen=/usr/bin/eolian_gen \
---with-edje-cc=/usr/bin/edje_cc --with-eet-eet=/usr/bin/eet --with-bin-elm-prefs-cc=/usr/bin/elm_prefs_cc \
---disable-static --with-tests=regular --with-crypto=openssl --disable-gstreamer1 \
---disable-libmount --disable-valgrind --disable-avahi --disable-spectre --disable-libraw \
---disable-librsvg --disable-pulseaudio --disable-cxx-bindings \
---disable-physics --disable-image-loader-tiff"
-
-patch -p1 < .ci/efl.m4.diff
-sed -i.orig 's/AC_INIT\(.*\)efl_version-[a-zA-Z0-9]\+/AC_INIT\1efl_version/g' configure.ac
-
-if [ "$DISTRO" != "" ] ; then
-  # Normal build test of all targets
-  OPTS="$DEFAULT_LINUX_COPTS"
-
-  if [ "$1" = "options-enabled" ]; then
-    OPTS="$OPTS $ENABLED_LINUX_COPTS $WAYLAND_LINUX_COPTS"
-  fi
+if [ "$BUILDSYSTEM" = "ninja" ] ; then
+  if [ "$DISTRO" != "" ] ; then
+    # Normal build test of all targets
+    OPTS=" -Decore-imf-loaders-disabler=scim,ibus -Davahi=false -Dmono=false -Dcxx=false"
 
-  if [ "$1" = "options-disabled" ]; then
-    OPTS="$OPTS $DISABLED_LINUX_COPTS"
-  fi
+    WAYLAND_LINUX_COPTS=" -Dwl=true -Ddrm=true -Dopengl=es-egl"
 
-  if [ "$1" = "release-ready" ]; then
-    OPTS="$OPTS $RELEASE_READY_LINUX_COPTS"
-  fi
+    ENABLED_LINUX_COPTS=" -Dharfbuzz=true -Dhyphen=true"
 
-  if [ "$1" = "mingw" ]; then
-    OPTS="$OPTS $MINGW_COPTS"
-    docker exec $(cat $HOME/cid) sh -c 'rm -f /src/config.cache'
-  fi
-  docker exec $(cat $HOME/cid) sh -c 'rm -f ~/.ccache/ccache.conf'
-  travis_fold autoreconf autoreconf
-  if [ "$1" = "mingw" ]; then
-    docker exec $(cat $HOME/cid) sh -c 'rm -f /src/config.cache'
-    docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 --env CFLAGS="-pipe" --env CXXFLAGS="-pipe" \
-      --env CPPFLAGS="-I/root/EFL/ewpi_64/include -DECORE_WIN32_WIP_POZEFLKSD" --env LDFLAGS="-L/root/EFL/ewpi_64/lib/" --env PKG_CONFIG_PATH="/root/EFL/ewpi_64/lib/pkgconfig/" \
-      $(cat $HOME/cid) sh -c "autoreconf -iv"
-  else
+    DISABLED_LINUX_COPTS=" -Dsystemd=false"
+
+    RELEASE_READY_LINUX_COPTS=" --buildtype=release"
+
+    if [ "$1" = "options-enabled" ]; then
+      OPTS="$OPTS $ENABLED_LINUX_COPTS $WAYLAND_LINUX_COPTS"
+    fi
+
+    if [ "$1" = "options-disabled" ]; then
+      OPTS="$OPTS $DISABLED_LINUX_COPTS"
+    fi
+
+    if [ "$1" = "release-ready" ]; then
+      OPTS="$OPTS $RELEASE_READY_LINUX_COPTS"
+    fi
     docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 --env CC="ccache gcc" \
-      --env CXX="ccache g++" --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \
-      --env LD="ld.gold" $(cat $HOME/cid) sh -c "LIBTOOLIZE_OPTIONS='--no-warn' autoreconf -iv"
-  fi
-  travis_endfold autoreconf
-  travis_fold configure "configure $OPTS"
-  if [ "$1" = "mingw" ]; then
-    docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 --env CFLAGS="-pipe" --env CXXFLAGS="-pipe" \
-      --env CPPFLAGS="-I/root/EFL/ewpi_64/include -DECORE_WIN32_WIP_POZEFLKSD" --env LDFLAGS="-L/root/EFL/ewpi_64/lib/" --env PKG_CONFIG_PATH="/root/EFL/ewpi_64/lib/pkgconfig/" \
-      $(cat $HOME/cid) sh -c ".ci/configure.sh $OPTS"
+        --env CXX="ccache g++" --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \
+        --env LD="ld.gold" $(cat $HOME/cid) sh -c "mkdir build && meson build $OPTS"
   else
-    docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 --env CC="ccache gcc" \
-      --env CXX="ccache g++" --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \
-      --env LD="ld.gold" $(cat $HOME/cid) sh -c ".ci/configure.sh $OPTS"
+    # Prepare OSX env for build
+    mkdir -p ~/Library/LaunchAgents
+    ln -sfv /usr/local/opt/d-bus/*.plist ~/Library/LaunchAgents
+    launchctl load ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist
+    export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
+
+    export CFLAGS="-I/usr/local/opt/openssl/include -frewrite-includes $CFLAGS"
+    export LDFLAGS="-L/usr/local/opt/openssl/lib $LDFLAGS"
+    export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"
+    mkdir build && meson build -Decore-imf-loaders-disabler=scim,ibus -Dx11=false -Davahi=false -Dmono=false -Dcxx=false -Deeze=false -Dsystemd=false -Dnls=false -Dcocoa=true -Demotion-loaders-disabler=gstreamer,gstreamer1,libvlc,xine
   fi
-  travis_endfold configure
 else
-  OSX_COPTS="--disable-cxx-bindings --with-tests=regular --disable-dependency-tracking -C"
-
-  # Prepare OSX env for build
-  mkdir -p ~/Library/LaunchAgents
-  ln -sfv /usr/local/opt/d-bus/*.plist ~/Library/LaunchAgents
-  launchctl load ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist
-  export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
-
-  export CFLAGS="-I/usr/local/opt/openssl/include -frewrite-includes $CFLAGS"
-  export LDFLAGS="-L/usr/local/opt/openssl/lib $LDFLAGS"
-  export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"
-
-  # Normal build test of all targets
-  rm -f ~/.ccache/ccache.conf
-  travis_fold autoreconf autoreconf
-  LIBTOOLIZE_OPTIONS='--no-warn' autoreconf -iv
-  travis_endfold autoreconf
-  travis_fold configure "configure $OSX_COPTS"
-  .ci/configure.sh $OSX_COPTS
-  travis_endfold configure
+  CI_BUILD_TYPE="$1"
+
+  DEFAULT_LINUX_COPTS="--prefix=/usr/ --with-tests=regular --disable-cxx-bindings --disable-dependency-tracking -C"
+
+  WAYLAND_LINUX_COPTS=" --enable-wayland --enable-elput --enable-drm \
+  --enable-wayland-ivi-shell --enable-gl-drm --with-opengl=es --enable-egl"
+
+  ENABLED_LINUX_COPTS=" --enable-harfbuzz --enable-liblz4 --enable-image-loader-webp --enable-xinput22 \
+  --enable-multisense --enable-lua-old --enable-xpresent --enable-hyphen \
+  --enable-pixman --enable-pixman-font --enable-pixman-rect --enable-pixman-line \
+  --enable-pixman-poly --enable-pixman-image --enable-pixman-image-scale-sample \
+  --enable-image-loader-generic --enable-libuv --enable-tile-rotate --enable-vnc-server \
+  --enable-fb --enable-v4l2 --enable-cserve \
+  --enable-ecore-wayland --enable-ecore-drm --enable-cancel-ok --with-crypto=gnutls \
+  --enable-debug --disable-gstreamer1 --enable-gstreamer"
+
+  # Not compatible with Open GL ES and thus the wayland options. Need to think about having different
+  # jobs for the different supported GL flavours.
+  #--enable-sdl
+
+  DISABLED_LINUX_COPTS=" --disable-neon --disable-libeeze --disable-systemd --disable-magic-debug \
+  --disable-valgrind --disable-gstreamer1 \
+  --disable-fontconfig --disable-fribidi --disable-poppler --disable-spectre --disable-libraw \
+  --disable-librsvg --disable-xcf --disable-libmount --disable-tslib --disable-audio \
+  --disable-pulseaudio --disable-avahi --disable-xinput2 --disable-xim --disable-scim \
+  --disable-ibus --disable-physics --disable-quick-launch --disable-elua"
+
+  RELEASE_READY_LINUX_COPTS=" --with-profile=release"
+
+  MINGW_COPTS=" --prefix=/root/EFL/ewpi_64 --host=x86_64-w64-mingw32 --with-eolian-gen=/usr/bin/eolian_gen \
+  --with-edje-cc=/usr/bin/edje_cc --with-eet-eet=/usr/bin/eet --with-bin-elm-prefs-cc=/usr/bin/elm_prefs_cc \
+  --disable-static --with-tests=regular --with-crypto=openssl --disable-gstreamer1 \
+  --disable-libmount --disable-valgrind --disable-avahi --disable-spectre --disable-libraw \
+  --disable-librsvg --disable-pulseaudio --disable-cxx-bindings \
+  --disable-physics --disable-image-loader-tiff"
+
+  patch -p1 < .ci/efl.m4.diff
+  sed -i.orig 's/AC_INIT\(.*\)efl_version-[a-zA-Z0-9]\+/AC_INIT\1efl_version/g' configure.ac
+
+  if [ "$DISTRO" != "" ] ; then
+    # Normal build test of all targets
+    OPTS="$DEFAULT_LINUX_COPTS"
+
+    if [ "$1" = "options-enabled" ]; then
+      OPTS="$OPTS $ENABLED_LINUX_COPTS $WAYLAND_LINUX_COPTS"
+    fi
+
+    if [ "$1" = "options-disabled" ]; then
+      OPTS="$OPTS $DISABLED_LINUX_COPTS"
+    fi
+
+    if [ "$1" = "release-ready" ]; then
+      OPTS="$OPTS $RELEASE_READY_LINUX_COPTS"
+    fi
+
+    if [ "$1" = "mingw" ]; then
+      OPTS="$OPTS $MINGW_COPTS"
+      docker exec $(cat $HOME/cid) sh -c 'rm -f /src/config.cache'
+    fi
+    docker exec $(cat $HOME/cid) sh -c 'rm -f ~/.ccache/ccache.conf'
+    travis_fold autoreconf autoreconf
+    if [ "$1" = "mingw" ]; then
+      docker exec $(cat $HOME/cid) sh -c 'rm -f /src/config.cache'
+      docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 --env CFLAGS="-pipe" --env CXXFLAGS="-pipe" \
+        --env CPPFLAGS="-I/root/EFL/ewpi_64/include -DECORE_WIN32_WIP_POZEFLKSD" --env LDFLAGS="-L/root/EFL/ewpi_64/lib/" --env PKG_CONFIG_PATH="/root/EFL/ewpi_64/lib/pkgconfig/" \
+        $(cat $HOME/cid) sh -c "autoreconf -iv"
+    else
+      docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 --env CC="ccache gcc" \
+        --env CXX="ccache g++" --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \
+        --env LD="ld.gold" $(cat $HOME/cid) sh -c "LIBTOOLIZE_OPTIONS='--no-warn' autoreconf -iv"
+    fi
+    travis_endfold autoreconf
+    travis_fold configure "configure $OPTS"
+    if [ "$1" = "mingw" ]; then
+      docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 --env CFLAGS="-pipe" --env CXXFLAGS="-pipe" \
+        --env CPPFLAGS="-I/root/EFL/ewpi_64/include -DECORE_WIN32_WIP_POZEFLKSD" --env LDFLAGS="-L/root/EFL/ewpi_64/lib/" --env PKG_CONFIG_PATH="/root/EFL/ewpi_64/lib/pkgconfig/" \
+        $(cat $HOME/cid) sh -c ".ci/configure.sh $OPTS"
+    else
+      docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 --env CC="ccache gcc" \
+        --env CXX="ccache g++" --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \
+        --env LD="ld.gold" $(cat $HOME/cid) sh -c ".ci/configure.sh $OPTS"
+    fi
+  else
+    OSX_COPTS="--disable-cxx-bindings --with-tests=regular --disable-dependency-tracking -C"
+
+    # Prepare OSX env for build
+    mkdir -p ~/Library/LaunchAgents
+    ln -sfv /usr/local/opt/d-bus/*.plist ~/Library/LaunchAgents
+    launchctl load ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist
+    export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
+
+    export CFLAGS="-I/usr/local/opt/openssl/include -frewrite-includes $CFLAGS"
+    export LDFLAGS="-L/usr/local/opt/openssl/lib $LDFLAGS"
+    export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"
+
+    # Normal build test of all targets
+    rm -f ~/.ccache/ccache.conf
+    travis_fold autoreconf autoreconf
+    LIBTOOLIZE_OPTIONS='--no-warn' autoreconf -iv
+    travis_endfold autoreconf
+    travis_fold configure "configure $OSX_COPTS"
+    .ci/configure.sh $OSX_COPTS
+  fi
+    travis_endfold configure
 fi
index d835717..9f297a5 100755 (executable)
@@ -6,10 +6,14 @@ if [ "$1" = "release-ready" ] ; then
   exit 0
 fi
 travis_fold benchmark "make benchmark"
-if [ "$DISTRO" != "" ] ; then
-  docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make benchmark
+if [ "$BUILDSYSTEM" = "ninja" ] ; then
+  echo "Nothing to do here, the benchmarks don't seem to terminate"
 else
-  export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
-  make benchmark
+  if [ "$DISTRO" != "" ] ; then
+    docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make benchmark
+  else
+    export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
+    make benchmark
+  fi
 fi
 travis_endfold benchmark
index 6813ea7..1744b48 100755 (executable)
@@ -17,21 +17,32 @@ fi
 NUM_TRIES=5
 
 travis_fold check "make check-TESTS"
-if [ "$DISTRO" != "" ] ; then
-  for tries in $(seq 1 ${NUM_TRIES}); do
-    (docker exec --env EINA_LOG_BACKTRACE="0" --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make -j2 -C src/ check-TESTS) && break
-    docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) cat src/test-suite.log
-    if [ $tries != ${NUM_TRIES} ] ; then echo "tests failed, trying again!" ; fi
-    false
-  done
-#else
-  #export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
-  #for tries in 1 2 3 ; do
-    #make -j2 -C src/ check-TESTS && break
-    #cat src/test-suite.log
-    #if [ $tries != 3 ] ; then echo "tests failed, trying again!" ; fi
-    #false
-  #done
+if [ "$BUILDSYSTEM" = "ninja" ] ; then
+   if [ "$DISTRO" != "" ] ; then
+     for tries in $(seq 1 ${NUM_TRIES}); do
+          (docker exec --env EINA_LOG_BACKTRACE="0" --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) ninja -C build test) && break
+          docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) cat src/test-suite.log
+          if [ $tries != ${NUM_TRIES} ] ; then echo "tests failed, trying again!" ; fi
+          false
+      done
+   fi
+else
+  if [ "$DISTRO" != "" ] ; then
+    for tries in $(seq 1 ${NUM_TRIES}); do
+      (docker exec --env EINA_LOG_BACKTRACE="0" --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make -j2 -C src/ check-TESTS) && break
+      docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) cat src/test-suite.log
+      if [ $tries != ${NUM_TRIES} ] ; then echo "tests failed, trying again!" ; fi
+      false
+    done
+  #else
+    #export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
+    #for tries in 1 2 3 ; do
+      #make -j2 -C src/ check-TESTS && break
+      #cat src/test-suite.log
+      #if [ $tries != 3 ] ; then echo "tests failed, trying again!" ; fi
+      #false
+    #done
+  fi
 fi
 ret=$?
 travis_endfold check
index 0fb77b1..88ca687 100755 (executable)
@@ -9,10 +9,14 @@ if [ "$1" = "mingw" ] ; then
   exit 0
 fi
 travis_fold check-build "make check-build"
-if [ "$DISTRO" != "" ] ; then
-  docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make check-build
+if [ "$BUILDSYSTEM" = "ninja" ] ; then
+  echo "Nothing to do here"
 else
-  export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
-  make check-build
+  if [ "$DISTRO" != "" ] ; then
+    docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make check-build
+  else
+    export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
+    make check-build
+  fi
 fi
 travis_endfold check-build
index 83541ba..59b096a 100755 (executable)
@@ -6,14 +6,27 @@ if [ "$1" != "release-ready" ] ; then
   exit 0
 fi
 travis_fold distcheck "make distcheck"
+if [ "$BUILDSYSTEM" = "ninja" ] ; then
 if [ "$DISTRO" != "" ] ; then
-  docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 --env CC="ccache gcc" \
-    --env CXX="ccache g++" \
-    --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \
-    --env LD="ld.gold" $(cat $HOME/cid) bash -c .ci/distcheck.sh || \
-    (sudo cat efl-*/_build/sub/src/test-suite.log; false)
+    docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 --env CC="ccache gcc" \
+      --env CXX="ccache g++" \
+      --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \
+      --env LD="ld.gold" $(cat $HOME/cid) dbus-launch ninja -C build dist || \
+      (sudo cat efl-*/_build/sub/src/test-suite.log; false)
+  else
+    export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
+    ninja -C build dist
+  fi
 else
-  export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
-  make
+  if [ "$DISTRO" != "" ] ; then
+    docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 --env CC="ccache gcc" \
+      --env CXX="ccache g++" \
+      --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \
+      --env LD="ld.gold" $(cat $HOME/cid) bash -c .ci/distcheck.sh || \
+      (sudo cat efl-*/_build/sub/src/test-suite.log; false)
+  else
+    export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
+    make
+  fi
 fi
 travis_endfold distcheck
index 6a59898..ae8aa73 100755 (executable)
@@ -6,10 +6,14 @@ if [ "$1" = "release-ready" ] ; then
   exit 0
 fi
 travis_fold examples "make examples"
-if [ "$DISTRO" != "" ] ; then
-  docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make examples
+if [ "$BUILDSYSTEM" = "ninja" ] ; then
+  echo "TODO"
 else
-  export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
-  make examples
+  if [ "$DISTRO" != "" ] ; then
+    docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make examples
+  else
+    export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
+    make examples
+  fi
 fi
 travis_endfold examples
index 48f311b..e855ba9 100755 (executable)
@@ -6,10 +6,19 @@ if [ "$1" = "release-ready" ] ; then
   exit 0
 fi
 travis_fold install "make install"
-if [ "$DISTRO" != "" ] ; then
-  docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make install
+if [ "$BUILDSYSTEM" = "ninja" ] ; then
+  if [ "$DISTRO" != "" ] ; then
+    docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) ninja -C build install
+  else
+    export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
+    ninja -C build install
+  fi
 else
-  export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
-  make install
+  if [ "$DISTRO" != "" ] ; then
+    docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make install
+  else
+    export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
+    make install
+  fi
 fi
 travis_endfold install
index dbe1ab4..2cc6ee8 100755 (executable)
@@ -6,10 +6,19 @@ if [ "$1" = "release-ready" ] ; then
   exit 0
 fi
 travis_fold make make
-if [ "$DISTRO" != "" ] ; then
-  docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make
+if [ "$BUILDSYSTEM" = "ninja" ] ; then
+  if [ "$DISTRO" != "" ] ; then
+    docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) ninja -C build
+  else
+    export PATH="$(brew --prefix gettext)/bin:$PATH"
+    ninja -C build
+  fi
 else
-  export PATH="$(brew --prefix gettext)/bin:$PATH"
-  make
+  if [ "$DISTRO" != "" ] ; then
+    docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make
+  else
+    export PATH="$(brew --prefix gettext)/bin:$PATH"
+    make
+  fi
 fi
 travis_endfold make
index 95872f8..2267260 100755 (executable)
@@ -2,4 +2,5 @@
 
 brew update
 brew unlink python
-brew install gettext check bullet dbus fontconfig freetype fribidi gst-plugins-good gstreamer luajit openssl webp libsndfile glib libspectre libraw librsvg poppler lz4 pulseaudio ccache
+brew install gettext check bullet dbus fontconfig freetype fribidi gst-plugins-good gstreamer luajit openssl webp libsndfile glib libspectre libraw librsvg poppler lz4 pulseaudio ccache ninja python3
+pip3 install meson
index dd92528..22a43a9 100644 (file)
@@ -24,6 +24,16 @@ jobs:
       - os: linux
       - DISTRO=Fedora28
       - CI_BUILD_TYPE=options-enabled
+      - BUILDSYSTEM=ninja
+    - env:
+      - os: linux
+      - DISTRO=Fedora28
+      - CI_BUILD_TYPE=options-disabled
+      - BUILDSYSTEM=ninja
+    - env:
+      - os: linux
+      - DISTRO=Fedora28
+      - CI_BUILD_TYPE=options-enabled
     - env:
       - os: linux
       - DISTRO=Fedora28
@@ -45,6 +55,22 @@ jobs:
       env:
         - os: linux
         - DISTRO=Debian91
+    - if: type = cron
+      env:
+        - os: linux
+        - DISTRO=Ubuntu1804
+        - BUILDSYSTEM=ninja
+    - if: type = cron
+      env:
+        - os: linux
+        - DISTRO=Fedora28
+        - CI_BUILD_TYPE=release-ready
+        - BUILDSYSTEM=ninja
+    - if: type = cron
+      env:
+        - os: linux
+        - DISTRO=Debian91
+        - BUILDSYSTEM=ninja
   exclude:
     - os: linux