180 lines
5.8 KiB
YAML
180 lines
5.8 KiB
YAML
version: 0.0.0.{build}
|
|
|
|
|
|
image:
|
|
- Visual Studio 2017
|
|
- Ubuntu
|
|
- macos
|
|
|
|
|
|
environment:
|
|
PYTHON_BINDINGS: 1
|
|
JAVA_BINDINGS: 1
|
|
PERL_BINDINGS: 1
|
|
|
|
|
|
platform: x64
|
|
|
|
|
|
configuration: Release
|
|
|
|
|
|
for:
|
|
-
|
|
matrix:
|
|
only:
|
|
- image: Visual Studio 2017
|
|
install:
|
|
- cmd: |
|
|
echo Building on Windows!
|
|
echo Python: %PYTHON_BINDINGS%
|
|
echo Java: %JAVA_BINDINGS%
|
|
echo Perl: %PERL_BINDINGS%
|
|
- ps: |
|
|
$env:PYTHON_VERSION=37
|
|
$env:MSVC_VERSION=15
|
|
- ps: |
|
|
if ($env:PLATFORM -eq "x86") {
|
|
echo "Architecture set to 32 bit."
|
|
$env:CMAKE_GENERATOR="Visual Studio $env:MSVC_VERSION"
|
|
$env:PYTHON_PATH="C:/Python$env:PYTHON_VERSION"
|
|
} elseif ($env:PLATFORM -eq "x64") {
|
|
echo "Architecture set to 64 bit."
|
|
$env:CMAKE_GENERATOR="Visual Studio $env:MSVC_VERSION Win64"
|
|
$env:PYTHON_PATH="C:/Python$env:PYTHON_VERSION-x64"
|
|
} else {
|
|
echo "No architecture set. Build will be canceled."
|
|
}
|
|
# Install SWIG by Choco
|
|
choco install -y --no-progress swig --version 4.0.1
|
|
choco install -y --no-progress openjdk
|
|
# Install Strawberry Perl and put before any other Perls in %PATH%
|
|
if ($env:PLATFORM -eq "x86") {
|
|
choco install -y --no-progress --forcex86 strawberryperl
|
|
} elseif ($env:PLATFORM -eq "x64") {
|
|
choco install -y --no-progress strawberryperl
|
|
} else {
|
|
echo "No architecture set. Build will be canceled."
|
|
}
|
|
$env:PATH="C:\strawberry\perl\bin;C:\strawberry\perl\site\bin;C:\strawberry\c\bin;$env:PATH"
|
|
$env:PERL_VERSION=$(perl -e 'print $^V')
|
|
|
|
before_build:
|
|
- mkdir build
|
|
- cd build
|
|
- cmake -G "%CMAKE_GENERATOR%" ../ -DBUILD_BINDINGS_PYTHON=%DEPLOY_PYTHON_BINDINGS% -DPYTHON_LIBRARY="%PYTHON_PATH%/libs/python%PYTHON_VERSION%.lib" -DBUILD_BINDINGS_JAVA=%DEPLOY_JAVA_BINDINGS% -DBUILD_BINDINGS_CSHARP=%DEPLOY_CSHARP_BINDINGS%
|
|
- cd ../
|
|
- ps: |
|
|
if ($Env:PERL_BINDINGS -eq "1") {
|
|
mkdir build-perl
|
|
cd build-perl
|
|
# Need to use Unix Makefiles because Strawberry Perl is a MinGW environment
|
|
cmake -G "Unix Makefiles" ../ -DBUILD_BINDINGS_PERL=$Env:PERL_BINDINGS
|
|
if ($LastExitCode -ne 0) { throw "Perl bindings: cmake failed with exit code $LastExitCode" }
|
|
cd ../
|
|
}
|
|
- ps: $env:CORE_VERSION = Get-Content -Path ./version.txt
|
|
- ps: $env:UNDERSCORED_CORE_VERSION = $env:CORE_VERSION.Replace(".", "_")
|
|
- ps: echo "Core version is $env:CORE_VERSION"
|
|
# TODO: use the core version to update appveyor version here
|
|
# - ps: $env:BUILD_VERSION = "0.0.1." + $env:APPVEYOR_BUILD_NUMBER
|
|
# - ps: echo update build version to $env:BUILD_VERSION
|
|
# - ps: Update-AppveyorBuild -Version $env:BUILD_VERSION
|
|
|
|
build_script:
|
|
- cd build
|
|
- msbuild /p:configuration=Release /v:m ALL_BUILD.vcxproj
|
|
- cd ../
|
|
- ps: |
|
|
if ($Env:PERL_BINDINGS -eq "1") {
|
|
cd build-perl
|
|
gmake
|
|
if ($LastExitCode -ne 0) { throw "Perl bindings: gmake failed with exit code $LastExitCode" }
|
|
cd ../
|
|
}
|
|
|
|
test_script:
|
|
- "build\\core\\release\\test_core.exe"
|
|
|
|
-
|
|
matrix:
|
|
only:
|
|
- image: Ubuntu
|
|
install:
|
|
- sh: |
|
|
echo Building on Ubuntu!
|
|
echo Python: $PYTHON_BINDINGS
|
|
echo Java: $JAVA_BINDINGS
|
|
echo Perl: $PERL_BINDINGS
|
|
- exit 0
|
|
- sh: |
|
|
sudo add-apt-repository ppa:deadsnakes/ppa
|
|
sudo apt-get update
|
|
sudo apt-get install -qq swig
|
|
if [[ "$PYTHON_BINDINGS" == "1" ]]; then
|
|
sudo apt-get -y install python3.5
|
|
sudo apt-get -y install python3.5-dev
|
|
alias python="/usr/bin/python3.5"
|
|
python --version
|
|
fi
|
|
if [[ "$JAVA_BINDINGS" == "1" ]]; then
|
|
#installing Java not required, as image already comes with Java 9
|
|
#sudo apt-get install openjdk-8-jdk
|
|
javac -version
|
|
fi
|
|
if [[ "$PERL_BINDINGS" == "1" ]]; then
|
|
#installing Perl not required, as image already comes with Perl 5
|
|
#sudo apt-get install perl
|
|
#alias perl="/usr/bin/perl"
|
|
perl --version
|
|
fi
|
|
build_script:
|
|
- sh: |
|
|
mkdir build
|
|
cd build
|
|
cmake -DBUILD_BINDINGS_PERL=$PERL_BINDINGS -DBUILD_BINDINGS_PYTHON=$PYTHON_BINDINGS -DPYTHON_VERSION=3.5 -DBUILD_BINDINGS_JAVA=$JAVA_BINDINGS ..
|
|
make
|
|
test_script:
|
|
- sh: |
|
|
./core/test_core
|
|
-
|
|
matrix:
|
|
only:
|
|
- image: macos
|
|
install:
|
|
- sh: |
|
|
# Java bindings are currently disabled because JNI cannot be found by CMake
|
|
JAVA_BINDINGS=0
|
|
- sh: |
|
|
echo Building on Mac OS!
|
|
echo Python: $PYTHON_BINDINGS
|
|
echo Java: $JAVA_BINDINGS
|
|
echo Perl: $PERL_BINDINGS
|
|
- exit 0
|
|
- sh: |
|
|
HOMEBREW_NO_AUTO_UPDATE=1 brew install swig
|
|
brew link --force swig
|
|
if [[ "$JAVA_BINDINGS" == "1" ]]; then
|
|
HOMEBREW_NO_AUTO_UPDATE=1 brew install openjdk
|
|
fi
|
|
if [[ "$PERL_BINDINGS" == "1" ]]; then
|
|
# installing Perl not required, as image already comes with Perl 5
|
|
#HOMEBREW_NO_AUTO_UPDATE=1 brew install perl
|
|
perl --version
|
|
fi
|
|
|
|
build_script:
|
|
- sh: |
|
|
mkdir build
|
|
cd build
|
|
cmake -DBUILD_BINDINGS_PERL=$PERL_BINDINGS -DBUILD_BINDINGS_PYTHON=$PYTHON_BINDINGS -DPYTHON_VERSION=3.6 -DBUILD_BINDINGS_JAVA=$JAVA_BINDINGS ..
|
|
make
|
|
test_script:
|
|
- sh: |
|
|
./core/test_core
|
|
|
|
|
|
build_script:
|
|
- echo ERROR - Empty default script was executed!
|
|
- exit 1
|