Skip to content

Commit

Permalink
ci/azure: test build on Linux, MinGW and macOS
Browse files Browse the repository at this point in the history
  • Loading branch information
illwieckz committed Jun 24, 2024
1 parent b3ff8db commit 6f58b19
Show file tree
Hide file tree
Showing 2 changed files with 96 additions and 3 deletions.
6 changes: 3 additions & 3 deletions .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ skip_branch_with_pr: true
only_commits:
files:
- .appveyor.yml
- example1/
- example2/
- example3/
# The rest of this list should stay in sync with azure-pipelines.yml
- crunch/
- crnlib/
- inc/
- example1/
- example2/
- example3/
- cmake/
- CMakeLists.txt

Expand Down
93 changes: 93 additions & 0 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Documentation: https://wiki.unvanquished.net/wiki/Continuous_integration

trigger:
branches:
include:
- master

pr:
branches:
include:
- '*'
paths:
include:
- azure-pipelines.yml
# The rest of this list should stay in sync with .appveyor.yml
- crunch/
- crnlib/
- inc/
- example1/
- example2/
- example3/
- cmake/
- CMakeLists.txt

strategy:
matrix:
Linux GCC:
VM_IMAGE: 'ubuntu-20.04'
CMAKE_GENERATOR: Ninja
C_COMPILER: gcc-8
CXX_COMPILER: g++-8
APT_PACKAGES: ninja-build gcc-8 g++-8
NPROC_TOOL: nproc
BUILD_EXAMPLES: OFF
Linux Clang:
VM_IMAGE: 'ubuntu-20.04'
CMAKE_GENERATOR: Ninja
C_COMPILER: clang
CXX_COMPILER: clang++
APT_PACKAGES: ninja-build gcc-8 g++-8
NPROC_TOOL: nproc
BUILD_EXAMPLES: OFF
MinGW amd64:
VM_IMAGE: 'ubuntu-20.04'
CMAKE_GENERATOR: Ninja
C_COMPILER: x86_64-w64-mingw32-gcc
CXX_COMPILER: x86_64-w64-mingw32-g++
TOOLCHAIN_FILE: cmake/cross-toolchain-mingw64.cmake
INSTALL_TOOL: apt
APT_PACKAGES: ninja-build gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64-x86-64-dev
SETUP_COMMANDS: sudo update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix ; sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
NPROC_TOOL: nproc
BUILD_EXAMPLES: ON
MinGW i686:
VM_IMAGE: 'ubuntu-20.04'
CMAKE_GENERATOR: Ninja
C_COMPILER: i686-w64-mingw32-gcc
CXX_COMPILER: i686-w64-mingw32-g++
TOOLCHAIN_FILE: cmake/cross-toolchain-mingw64.cmake
INSTALL_TOOL: apt
APT_PACKAGES: ninja-build gcc-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64-i686-dev
SETUP_COMMANDS: sudo update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix ; sudo update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix
NPROC_TOOL: nproc
BUILD_EXAMPLES: ON
Mac:
VM_IMAGE: 'macOS-12'
CMAKE_GENERATOR: Unix Makefile
C_COMPILER: clang
CXX_COMPILER: clang++
NPROC_TOOL: sysctl -n hw.logicalcpu
BUILD_EXAMPLES: OFF

pool:
vmImage: $(VM_IMAGE)

steps:
- bash: |
set -xe
[ -n "${APT_PACKAGES:-}" ] && sudo apt-get update \
&& sudo apt-get -y -q --no-install-recommends install ${APT_PACKAGES}
[ -n "${SETUP_COMMANDS:-}" ] && ${SETUP_COMMANDS}
displayName: 'Setup'
- bash: |
set -xe
export CMAKE_BUILD_PARALLEL_LEVEL="$(${NPROC_TOOL})"
echo "${CMAKE_BUILD_PARALLEL_LEVEL}"
cmake -S. -Bbuild \
-G${CMAKE_GENERATOR} \
-DCMAKE_C_COMPILER=${C_COMPILER} -DCMAKE_CXX_COMPILER=${CXX_COMPILER} \
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \
-DBUILD_CRUNCH=ON -DBUILD_SHARED_LIBCRN=ON -DBUILD_EXAMPLES=${BUILD_EXAMPLES}
cmake --build build --config Release -- -k 0
displayName: 'Build'

0 comments on commit 6f58b19

Please sign in to comment.