190 lines
5.8 KiB
YAML
190 lines
5.8 KiB
YAML
strategy:
|
|
matrix:
|
|
linux_focal_gcc8_minimal:
|
|
imageName: 'ubuntu-20.04'
|
|
ccName: gcc-8
|
|
cxxName: g++-8
|
|
buildMinimalSetting: true
|
|
linux_focal_clang_all:
|
|
imageName: 'ubuntu-20.04'
|
|
ccName: clang
|
|
cxxName: clang++
|
|
buildMinimalSetting: false
|
|
linux_focal_gcc8_all:
|
|
imageName: 'ubuntu-20.04'
|
|
ccName: gcc-8
|
|
cxxName: g++-8
|
|
buildMinimalSetting: false
|
|
linux_focal_gcc9_all:
|
|
imageName: 'ubuntu-20.04'
|
|
ccName: gcc-9
|
|
cxxName: g++-9
|
|
buildMinimalSetting: false
|
|
linux_bionic_gcc7_all:
|
|
imageName: 'ubuntu-18.04'
|
|
ccName: gcc-7
|
|
cxxName: g++-7
|
|
buildMinimalSetting: false
|
|
# build is currently broken
|
|
# mac_catalina_gcc8_all:
|
|
# imageName: 'macOS-10.15'
|
|
# ccName: gcc-8
|
|
# cxxName: g++-8
|
|
# buildMinimalSetting: false
|
|
mac_catalina_clang_all:
|
|
imageName: 'macOS-10.15'
|
|
ccName: clang
|
|
cxxName: clang++
|
|
buildMinimalSetting: false
|
|
windows-visualstudio:
|
|
imageName: 'windows-2019'
|
|
buildMinimalSetting: false
|
|
vsBuildSetting: true
|
|
mingwBuildSetting: false
|
|
windows-mingw:
|
|
imageName: 'windows-2019'
|
|
buildMinimalSetting: false
|
|
vsBuildSetting: false
|
|
mingwBuildSetting: true
|
|
|
|
pool:
|
|
vmImage: $(imageName)
|
|
|
|
resources:
|
|
repositories:
|
|
- repository: pdcursesrepo
|
|
type: github
|
|
name: wmcbrine/PDCurses
|
|
ref: refs/heads/master
|
|
endpoint: github.com_barthouse
|
|
|
|
variables:
|
|
buildMinimal: $(buildMinimalSetting)
|
|
mingwBuild: $(mingwBuildSetting)
|
|
vsBuild: $(vsBuildSetting)
|
|
${{ if eq( variables['Agent.OS'], 'Windows_NT') }}:
|
|
NetHackPath: s\NetHack
|
|
${{ if ne( variables['Agent.OS'], 'Windows_NT') }}:
|
|
NetHackPath: s/NetHack
|
|
CC: $(ccName)
|
|
CXX: $(cxxName)
|
|
|
|
steps:
|
|
- bash: |
|
|
echo 'mingwBuildSetting' '$(mingwBuildSetting)'
|
|
echo 'mingwBuild' '$(mingwBuild)'
|
|
echo 'vsBuild' '$(vsBuild)'
|
|
echo 'NetHackPath' '$(NetHackPath)'
|
|
echo 'CC' '$(CC)'
|
|
echo 'CXX' '$(CXX)'
|
|
|
|
- checkout: git://NetHack/NetHack@NetHack-3.7 # $(Agent.BuildDirectory)\s\NetHack
|
|
submodules: true
|
|
path: $(NetHackPath)
|
|
|
|
- checkout: pdcursesrepo
|
|
path: s\NetHack\lib\pdcurses
|
|
condition: and( eq( variables['Agent.OS'], 'Windows_NT' ), eq( variables.mingwBuild, true))
|
|
|
|
- task: DownloadSecureFile@1
|
|
name: storeKey
|
|
displayName: 'Store Key Download'
|
|
inputs:
|
|
secureFile: 'NetHackPackage_StoreKey.pfx'
|
|
condition: eq( variables['Agent.OS'], 'Windows_NT' )
|
|
|
|
- task: CopyFiles@2
|
|
inputs:
|
|
contents: NetHackPackage_StoreKey.pfx
|
|
SourceFolder: $(Agent.TempDirectory)
|
|
TargetFolder: $(Agent.BuildDirectory)\s\NetHack\win\win32\vs
|
|
condition: eq( variables['Agent.OS'], 'Windows_NT' )
|
|
displayName: 'Copying store key'
|
|
|
|
# Temporary need to copy lua files for minGW build
|
|
- task: CopyFiles@2
|
|
inputs:
|
|
SourceFolder: $(Agent.BuildDirectory)\s\NetHack\submodules\lua
|
|
TargetFolder: $(Agent.BuildDirectory)\s\NetHack\lib\lua-5.4.2\src
|
|
condition: and( eq( variables['Agent.OS'], 'Windows_NT' ), eq( variables.mingwBuild, true))
|
|
displayName: 'Copying lua files'
|
|
|
|
- task: MSBuild@1
|
|
inputs:
|
|
solution: $(Agent.BuildDirectory)\s\NetHack\win\win32\vs\NetHack.sln
|
|
platform: Win32
|
|
configuration: Debug
|
|
condition: and( eq( variables['Agent.OS'], 'Windows_NT' ), eq( variables.vsBuild, true))
|
|
displayName: 'Windows MSBuild'
|
|
|
|
- bash: |
|
|
echo '/mingw64/bin'
|
|
ls /mingw64/bin
|
|
echo '/usr/bin'
|
|
ls /usr/bin
|
|
echo 'gcc --version'
|
|
gcc --version
|
|
export ADD_CURSES=Y
|
|
export PDCURSES_TOP=../lib/pdcurses
|
|
export LUA_VERSION=5.4.2
|
|
export TRAVIS_COMPILER=1
|
|
cd NetHack/src
|
|
cp ../sys/winnt/Makefile.gcc ./Makefile
|
|
mingw32-make LUA_VERSION=$LUA_VERSION install
|
|
condition: and( eq( variables['Agent.OS'], 'Windows_NT' ), eq( variables.mingwBuild, true))
|
|
displayName: 'Windows MinGW Build'
|
|
|
|
- bash: |
|
|
sudo apt-get -qq -y update
|
|
sudo apt-get -qq -y install libncurses5-dev
|
|
sudo apt-get -qq -y install libx11-dev libxaw7-dev xfonts-utils qtbase5-dev qtmultimedia5-dev qtbase5-dev-tools
|
|
condition: eq( variables['Agent.OS'], 'Linux' )
|
|
displayName: 'Getting linux build dependencies'
|
|
|
|
- bash: |
|
|
cd NetHack/sys/unix
|
|
sh setup.sh hints/linux-minimal
|
|
cd ../..
|
|
sed -i '/^#define CLIPPING/d' include/config.h
|
|
sed -i '/^#define COMPRESS/d' include/config.h
|
|
#sed -i '/^#define DOAGAIN/d' include/config.h
|
|
sed -i '/^#define DUMPLOG/d' include/config.h
|
|
#sed -i '/^#define GDBPATH/d' include/config.h
|
|
#sed -i '/^#define GREPPATH/d' include/config.h
|
|
sed -i '/^#define INSURANCE/d' include/config.h
|
|
sed -i '/^#define LOGFILE/d' include/config.h
|
|
sed -i '/^#define NEWS/d' include/config.h
|
|
sed -i '/^#define PANICLOG/d' include/config.h
|
|
#sed -i '/^#define STATUS_HILITES/d' include/config.h
|
|
sed -i '/^#define SYSCF/d' include/config.h
|
|
sed -i '/^#define USER_SOUNDS/d' include/config.h
|
|
sed -i '/^#define XLOGFILE/d' include/config.h
|
|
|
|
sed -i '/^#define MAIL/d' include/unixconf.h
|
|
sed -i '/^#define SHELL/d' include/unixconf.h
|
|
sed -i '/^#define SUSPEND/d' include/unixconf.h
|
|
sed -i 's/^#define TEXTCOLOR//' include/unixconf.h
|
|
cat include/config.h
|
|
make fetch-lua
|
|
make WANT_WIN_ALL=1 all
|
|
condition: and(eq( variables['Agent.OS'], 'Linux' ), eq( variables.buildMinimal, true))
|
|
displayName: 'Building linux minimal build'
|
|
|
|
- bash: |
|
|
cd NetHack/sys/unix
|
|
sh setup.sh hints/linux.2020
|
|
cd ../..
|
|
make fetch-lua
|
|
make WANT_WIN_ALL=1 QT_SELECT=5 MOC=moc all
|
|
condition: and(eq( variables['Agent.OS'], 'Linux' ), eq( variables.buildMinimal, false))
|
|
displayName: 'Building linux full build'
|
|
|
|
- bash: |
|
|
cd NetHack/sys/unix
|
|
sh setup.sh hints/macos.2020
|
|
cd ../..
|
|
make fetch-lua
|
|
make all
|
|
condition: eq( variables['Agent.OS'], 'Darwin' )
|
|
displayName: 'Mac Build'
|