Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
.gitlab-ci.yml 5.16 KiB
variables:
  CCACHE_COMPILERCHECK: content
  CCACHE_DIR: "${CI_PROJECT_DIR}/.ccache"
  # prevent configure tzdata hanging apt install commands
  DEBIAN_FRONTEND: noninteractive

build-gcc7:
  stage: build
  image: ubuntu:16.04
  tags: [docker]
  variables:
    CXX: g++-7
    CC: gcc-7
    QT_PKG: 510
    TRAVIS_OS_NAME: linux
  before_script:
    - apt-get update
    - apt-get install -y software-properties-common
    - add-apt-repository ppa:ubuntu-toolchain-r/test -y
    - add-apt-repository ppa:beineri/opt-qt-5.10.1-xenial -y
    - apt-get update && apt-get -y install --no-install-recommends g++-7 build-essential ninja-build qt${QT_PKG}{base,declarative,tools,multimedia,script,quickcontrols2,svg} liblmdb-dev libgl1-mesa-dev libssl-dev git ccache
    # need recommended deps for wget
    - apt-get -y install wget
    - wget https://github.com/Kitware/CMake/releases/download/v3.19.0/cmake-3.19.0-Linux-x86_64.sh && sh cmake-3.19.0-Linux-x86_64.sh  --skip-license  --prefix=/usr/local
    - /usr/sbin/update-ccache-symlinks
    - update-alternatives --install /usr/bin/gcc gcc "/usr/bin/${CC}" 10
    - update-alternatives --install /usr/bin/g++ g++ "/usr/bin/${CXX}" 10
    - update-alternatives --set gcc "/usr/bin/${CC}"
    - update-alternatives --set g++ "/usr/bin/${CXX}"
  script:
    - export PATH="/usr/lib/ccache:${PATH}"
    - export CMAKE_BUILD_PARALLEL_LEVEL=$(cat /proc/cpuinfo | awk '/^processor/{print $3}' | wc -l)
    - export PATH="/usr/local/bin/:${PATH}"
    - . "/opt/qt${QT_PKG}/bin/qt${QT_PKG}-env.sh" || true
    - mkdir -p .deps/usr .hunter
    - mkdir -p build
    - cmake -GNinja -H. -Bbuild
        -DCMAKE_INSTALL_PREFIX=.deps/usr
        -DHUNTER_ROOT=".hunter"
        -DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF
        -DCMAKE_BUILD_TYPE=Release -DHUNTER_CONFIGURATION_TYPES=Release
        -DCI_BUILD=ON
    - cmake --build build
  cache:
    key: "$CI_JOB_NAME"
    paths:
      - .hunter/
      - .ccache

build-macos:
  stage: build
  tags: [macos]
  before_script:
    - brew update
    - brew bundle --file=./.ci/macos/Brewfile
  script:
    - export PATH=/usr/local/opt/qt/bin/:${PATH}
    - export CMAKE_PREFIX_PATH=/usr/local/opt/qt5
    - cmake -GNinja -H. -Bbuild
        -DCMAKE_BUILD_TYPE=RelWithDebInfo
        -DCMAKE_INSTALL_PREFIX=.deps/usr
        -DHUNTER_ROOT=".hunter"
        -DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF
        -DCMAKE_BUILD_TYPE=RelWithDebInfo -DHUNTER_CONFIGURATION_TYPES=RelWithDebInfo
        -DUSE_BUNDLED_OPENSSL=ON
        -DUSE_BUNDLED_BOOST=ON
        -DCI_BUILD=ON
    - cmake --build build
  cache:
    key: "${CI_JOB_NAME}"