# Build Configuration for Travis
dist: trusty

language: cpp

env:
  global:
    - CPPFLAGS=""
    - CFLAGS="-Werror --coverage"
    - CXXFLAGS="-Werror -Wno-deprecated-register --coverage" # glib uses register and clang raises a warning
    - LDFLAGS="--coverage"
    - CONFIGURE_OPTS="--with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2"
    - NOCONFIGURE=1
    # COVERITY_SCAN_TOKEN
    - secure: "Vw1UUHsAr4t3xuvOqqBsFAORptmNcQRrcGJnzSX7jDODBIRNfnU2LIBTagrPNKfSUhyQgCHqt1gX9iWNWvVfy3sDOXr2MXZeoqmF6Y1mS35J0rA/EPJgRHsdkxygkmFnXVeQkEuI55BINkaSoOpAeunmXKJNw1p9JVw368Fm/tU="

matrix:
  include:
    - os: linux
      compiler: gcc
      script:
        # Remove these two lines when Travis updated its distro
        - wget http://download.savannah.gnu.org/releases/freetype/freetype-2.9.tar.bz2 && tar xf freetype-2.9.tar.bz2 && cd freetype-2.9 && ./autogen.sh && ./configure && make -j4 && cd ..
        - export LD_LIBRARY_PATH="$PWD/freetype-2.9/objs/.libs"

        - ./autogen.sh
        - ./configure $CONFIGURE_OPTS --enable-gtk-doc
        - make
        - make check || .ci/fail.sh
      after_success:
        - bash .ci/run-coveralls.sh # for coveralls.io code coverage tracking
        - bash .ci/deploy-docs.sh
        - bash .ci/trigger-coverity.sh

    - os: linux
      compiler: clang
      script:
        # Remove these two lines when Travis updated its distro
        - wget http://download.savannah.gnu.org/releases/freetype/freetype-2.9.tar.bz2 && tar xf freetype-2.9.tar.bz2 && cd freetype-2.9 && ./autogen.sh && ./configure && make -j4 && cd ..
        - export LD_LIBRARY_PATH="$PWD/freetype-2.9/objs/.libs"

        - ./autogen.sh
        - ./configure $CONFIGURE_OPTS
        - make
        - make check || .ci/fail.sh

    - os: osx
      compiler: clang
      install:
          # https://github.com/harfbuzz/harfbuzz/issues/345
        - export CXXFLAGS="$CXXFLAGS -Wno-deprecated-declarations"
        - brew update;
          # Workaround Travis/brew bug
        - brew uninstall libtool && brew install libtool
        - brew install ragel freetype glib gobject-introspection cairo icu4c graphite2
        - brew link --force icu4c # icu4c is keg-only
      script:
        - ./autogen.sh
        - ./configure $CONFIGURE_OPTS --with-coretext
        - make
        - make check || .ci/fail.sh

notifications:
  irc: "irc.freenode.org#harfbuzz"
  email: harfbuzz-bots-chatter@googlegroups.com

addons:
  apt:
    packages:
      - pkg-config # for autogen.sh
      - ragel
      - gtk-doc-tools
      - libfreetype6-dev # for font function
      - libglib2.0-dev # for font functions / tests / utils
      - libcairo2-dev # for utils
      - libicu-dev # for extra unicode functions
      - libgraphite2-dev # for extra shapers
      #- libgirepository1.0-dev # for gobject-introspection

  coverity_scan:
    project:
      name: HarfBuzz
      version: 1.0
      description: HarfBuzz OpenType text shaping engine
    notification_email: harfbuzz-bots-chatter@googlegroups.com
    build_command_prepend: ./autogen.sh --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2
    build_command: make
    branch_pattern: coverity_scan
