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'