v8 0.5.5

High-level bindings to V8, the Javascript engine
sudo: true
dist: trusty
language: rust

addons:
  apt:
    sources:
      - sourceline: 'ppa:pinepain/libv8-5.4'
      - ubuntu-toolchain-r-test
    packages:
      # Modern compilers
      - gcc-6
      - g++-6
      # The V8 version that we want to bind
      - libv8-5.4-dev
      - libicu-dev
      # Dependencies for travis-cargo and for coverage
      - libcurl4-openssl-dev
      - libelf-dev
      - libdw-dev
      - binutils-dev

env:
  global:
    - CC=gcc-6
    - CXX=g++-6

matrix:
  include:
    - env: FEATURES=""
    - env: FEATURES="--features=shared"

before_script:
  - |
      pip install 'travis-cargo<0.2' --user &&
      export PATH=$HOME/.local/bin:$PATH

script:
  - |
      travis-cargo build -- $FEATURES &&
      travis-cargo test -- $FEATURES &&
      travis-cargo bench -- $FEATURES

after_success:
  - |
    if [ -z "$FEATURES" ]; then travis-cargo doc; travis-cargo doc-upload; fi
    wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz &&
    tar xzf master.tar.gz &&
    cd kcov-master &&
    mkdir build &&
    cd build &&
    cmake .. &&
    make &&
    sudo make install &&
    cd ../.. &&
    rm -rf kcov-master &&
    cargo test $FEATURES --no-run &&
    for file in target/debug/v8-*
    do
        kcov --exclude-pattern=/.cargo,/usr/lib --verify "target/cov" "$file"
    done &&
    bash <(curl -s https://codecov.io/bash) &&
    echo "Uploaded code coverage"