language: c

sudo: false

addons:
  apt_packages:
    - binutils-mingw-w64-i686
    - binutils-mingw-w64-x86-64
    - docbook-xsl
    - gcc-mingw-w64-i686
    - gcc-mingw-w64-x86-64
    - libpcsclite-dev
    - mingw-w64
    - wine
    - xsltproc
  coverity_scan:
    project:
      name: "OpenSC/OpenSC"
      description: "Build submitted via Travis CI"
    notification_email: viktor.tarasov@gmail.com
    build_command:   "make -j 4"
    branch_pattern: 0.16.0

env:
  global:
    # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
    #   via the "travis encrypt" command using the project repo's public key
    - secure: "UkHn7wy4im8V1nebCWbAetnDSOLRUbOlF6++ovk/7Bnso1/lnhXHelyzgRxfD/oI68wm9nnRV+RQEZ9+72Ug1CyvHxyyxxkwal/tPeHH4B/L+aGdPi0id+5OZSKIm77VP3m5s102sJMJgH7DFd03+nUd0K26p0tk8ad4j1geV4c="

matrix:
  include:
    - compiler: clang
      os: osx
    - compiler: gcc
      os: osx
    - compiler: clang
      os: linux
      env: ENABLE_DOC=--enable-doc
    - compiler: gcc
      os: linux
      env: ENABLE_DOC=--enable-doc
    - os: linux
      env: HOST=x86_64-w64-mingw32
    - os: linux
      env: HOST=i686-w64-mingw32

before_script:
  - ./bootstrap
  - if [ -z "$HOST" ]; then
    CFLAGS="-Werror" ./configure $ENABLE_DOC --enable-dnie-ui;
    else
      if [ ! -f "$(winepath 'C:/Program Files (x86)/Inno Setup 5/ISCC.exe')" ]; then
        /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16;
        export DISPLAY=:99.0;
        wget http://files.jrsoftware.org/is/5/isetup-5.5.6.exe;
        wine isetup-5.5.6.exe /SILENT /VERYSILENT /SP- /SUPPRESSMSGBOXES /NORESTART;
      fi;
      unset CC;
      unset CXX;
      ./configure --host=$HOST --disable-openssl --disable-readline --disable-zlib --prefix=${TRAVIS_BUILD_DIR}/win32/opensc || cat config.log;
    fi

script:
  - if [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then
      if [ $TRAVIS_OS_NAME == osx ]; then
        ./MacOSX/build;
      else
        make;
      fi;
    fi
  - if [ -z "$HOST" -a "${COVERITY_SCAN_BRANCH}" != 1 ]; then
      make check;
      make dist;
    fi
  - if [ ! -z "$HOST" -a "${COVERITY_SCAN_BRANCH}" != 1 ]; then
      make install;
      wine "C:/Program Files (x86)/Inno Setup 5/ISCC.exe" win32/OpenSC.iss;
    fi

cache: ccache
