language: cpp

compiler:
 - clang
 - gcc

env:
  global:
   - secure: "jA29KvTCTR7q4BMzPPUBGazjJwrIWa7k4fo5ZSMlyxh2NbztZTKQYwodgDcXBoptCd1KJ9H3FXwBnNdMNVnTkvoPL9uWnN4K/3D1D20FCag1kmlBwnaVqVei5cRiZ9TOMuaxhjkdg8pcrQLTlXEEdMZf6A2OW0VgoBGDVSX9nYc="

branches:
  only:
    - master

git:
  submodules: false

before_install:
  - echo "yes" | sudo apt-key adv --fetch-keys http://repos.codelite.org/CodeLite.asc
  - echo "yes" | sudo apt-add-repository 'deb http://repos.codelite.org/wx3.0/ubuntu/ precise universe'
# Add later version of Clang, apt from llvm.org. the repository link is for development version.
  - echo "yes" | sudo add-apt-repository 'deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu precise main'
  - echo "yes" | sudo add-apt-repository 'deb http://llvm.org/apt/precise/ llvm-toolchain-precise-3.6 main'
  - wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -;
# And the libstdc++4.8 of GCC from ppa
  - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
  - sudo apt-get update
  - sudo apt-get install libwxgtk3.0-dev libopenal-dev freeglut3-dev libglew-dev libc6-dev
  - sudo apt-get install aria2 -qq
  - download_extract() { aria2c -x 16 $1 -o $2 && tar -xf $2; }
  - if [ "$CXX" = "g++" ]; then
      sudo apt-get install -qq g++-4.8;
      export CXX="g++-4.8" CC="gcc-4.8";
    else
      sudo apt-get install -qq --allow-unauthenticated llvm-3.6 llvm-3.6-dev clang-3.6 libstdc++-4.8-dev;
      export CXX="clang++-3.6" CC="clang-3.6";
    fi;
# Travis uses CMake 2.8.7. We require 2.8.8. Grab latest
  - sudo apt-get install lib32stdc++6 -qq &&
    aria2c -x 16 http://www.cmake.org/files/v3.0/cmake-3.0.0-Linux-i386.sh &&
    chmod a+x cmake-3.0.0-Linux-i386.sh &&
    sudo ./cmake-3.0.0-Linux-i386.sh --skip-license --prefix=/usr;
# Add coverall for C++ so coverall.io could be triggered. Even it should be --coverage and gcov.
  - sudo pip install cpp-coveralls

before_script:
 - git submodule update --init asmjit ffmpeg llvm
 - cd llvm_build
 - cmake -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TOOLS=OFF -DLLVM_INCLUDE_UTILS=OFF -DWITH_POLLY=OFF ../llvm
 - make -j 4
 - sudo make install
 - cd ..
 - mkdir build
 - cd build
 - cmake ..

addons:
  coverity_scan:
    project:
      name: "DHrpcs3/rpcs3"
      description: "PS3 emulator/debugger"
    notification_email: raul.tambre@gmail.com
    build_command_prepend: ""
    build_command:   "make -j 4"
    branch_pattern: coverity_scan

# These modifys are from https://github.com/devernay/cminpack/blob/master/.travis.yml
# It passed but when coverall it failed.
script:
# Add a command to show all the variables now. maybe only useful for debugging travis.
 - echo "--Shell Export Lists START--" ; export -p; echo "--Shell Export Lists STOP--";
# And to ensure the versions of toolchain
 - echo "--CXX version?"; "$CXX" --version; echo "--CXX version confirmed";
# From https://github.com/devernay/cminpack/blob/master/.travis.yml: that is $COVERITY_SCAN_BRANCH not ${COVERITY_SCAN_BRANCH}
 - if [ "$COVERITY_SCAN_BRANCH" != 1 ]; then make -j 4; fi
after_success:
 - if [ "$COVERITY_SCAN_BRANCH" != 1 ]; then coveralls --extension .c --extension .cpp --extension .h; fi