2017-05-18 16:50:52 +02:00
|
|
|
# Version format
|
2020-12-21 09:15:25 +01:00
|
|
|
version: 'git.{build}'
|
2017-05-18 16:50:52 +02:00
|
|
|
|
|
|
|
|
# Skip Github tags
|
|
|
|
|
skip_tags: true
|
|
|
|
|
|
2021-02-03 12:31:11 -01:00
|
|
|
|
2017-05-18 16:50:52 +02:00
|
|
|
# Environment variables
|
|
|
|
|
environment:
|
2019-03-08 22:21:25 +08:00
|
|
|
NINJA_URL: https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip
|
2019-09-30 12:31:40 +08:00
|
|
|
VSVARSALLPATH2017: 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat'
|
|
|
|
|
VSVARSALLPATH2019: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat'
|
2022-01-14 18:36:08 +08:00
|
|
|
VSVARSALLPATH2022: 'C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat'
|
2017-12-02 16:42:47 +01:00
|
|
|
|
2017-05-18 16:50:52 +02:00
|
|
|
matrix:
|
2019-03-08 22:21:25 +08:00
|
|
|
# VS2017 64
|
|
|
|
|
- builder: vs2017_64
|
2026-01-11 21:36:02 +08:00
|
|
|
PYTHON: 'C:\\Python310'
|
2019-10-04 16:07:48 +08:00
|
|
|
INNO_SETUP: 'C:\\Program Files (x86)\\Inno Setup 5'
|
2019-09-30 12:31:40 +08:00
|
|
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
2020-04-06 20:40:40 +08:00
|
|
|
RUN_TESTS: false
|
2023-09-26 05:06:40 +05:30
|
|
|
TEST_INCLUDE_HEADERS_CPP: false
|
2022-01-14 18:36:08 +08:00
|
|
|
# VS2022 64
|
|
|
|
|
- builder: vs2022_64
|
2019-11-29 00:50:49 -06:00
|
|
|
PYTHON: 'C:\\Python38-x64'
|
2019-10-04 16:07:48 +08:00
|
|
|
INNO_SETUP: 'C:\\Program Files (x86)\\Inno Setup 6'
|
2022-01-14 18:36:08 +08:00
|
|
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
|
2020-04-06 20:40:40 +08:00
|
|
|
RUN_TESTS: true
|
2023-09-26 05:06:40 +05:30
|
|
|
TEST_INCLUDE_HEADERS_CPP: true
|
2019-03-08 22:21:25 +08:00
|
|
|
# VS2017 64 (Dynamic linking)
|
|
|
|
|
- builder: vs2017_64_dyn
|
2026-01-11 21:36:02 +08:00
|
|
|
PYTHON: 'C:\\Python310'
|
2019-10-04 16:07:48 +08:00
|
|
|
INNO_SETUP: 'C:\\Program Files (x86)\\Inno Setup 5'
|
2019-09-30 12:31:40 +08:00
|
|
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
2020-04-06 20:40:40 +08:00
|
|
|
RUN_TESTS: false
|
2023-09-26 05:06:40 +05:30
|
|
|
TEST_INCLUDE_HEADERS_CPP: false
|
2019-08-16 07:10:00 +03:00
|
|
|
# Clang-cl 64 (Dynamic linking)
|
|
|
|
|
- builder: clang_cl_64_dyn
|
2019-11-29 00:50:49 -06:00
|
|
|
PYTHON: 'C:\\Python38'
|
|
|
|
|
INNO_SETUP: 'C:\\Program Files (x86)\\Inno Setup 6'
|
|
|
|
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
2020-04-06 20:40:40 +08:00
|
|
|
RUN_TESTS: true
|
2023-09-26 05:06:40 +05:30
|
|
|
TEST_INCLUDE_HEADERS_CPP: false
|
2020-04-06 20:40:40 +08:00
|
|
|
|
2021-02-15 16:01:53 +01:00
|
|
|
only_commits:
|
|
|
|
|
files:
|
|
|
|
|
- '**/*.c'
|
|
|
|
|
- '**/*.h'
|
|
|
|
|
- '**/*.in'
|
|
|
|
|
- '**/*.inc'
|
|
|
|
|
- '**/meson.build'
|
|
|
|
|
- 'subprojects/'
|
2021-02-17 19:37:47 +08:00
|
|
|
- 'test/'
|
2021-02-15 16:01:53 +01:00
|
|
|
- '.appveyor.yml'
|
|
|
|
|
|
2017-05-18 16:50:52 +02:00
|
|
|
# Init
|
|
|
|
|
init:
|
2019-06-18 13:13:08 +08:00
|
|
|
# Build dependent custom commands
|
2017-05-18 16:50:52 +02:00
|
|
|
- cmd: "%init_command%"
|
|
|
|
|
|
2019-06-18 13:13:08 +08:00
|
|
|
# Required software for building
|
2017-05-18 16:50:52 +02:00
|
|
|
install:
|
2026-01-11 21:36:02 +08:00
|
|
|
# Install Python 3.10
|
2026-05-07 22:33:46 +08:00
|
|
|
- cmd: if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2017" ( choco install python310 )
|
2017-06-05 11:00:51 +02:00
|
|
|
# Update environment variables
|
2021-08-31 06:18:14 +02:00
|
|
|
- ps: $env:RZ_VERSION = (& (Join-Path $env:PYTHON python.exe) sys\\version.py )
|
2020-10-02 16:09:13 +02:00
|
|
|
- ps: $env:DIST_FOLDER = "rizin-$env:builder-$env:RZ_VERSION"
|
2017-06-05 11:00:51 +02:00
|
|
|
- ps: $env:ARTIFACT_ZIP = "$env:DIST_FOLDER.zip"
|
|
|
|
|
# Download required packages
|
2026-03-28 14:58:31 +08:00
|
|
|
- cmd: if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2017" ( %PYTHON%\python -m pip install --upgrade pip && %PYTHON%\python -m pip install --upgrade certifi pip-system-certs )
|
|
|
|
|
- cmd: "%PYTHON%\\python -m pip install meson ninja PyYAML tomli"
|
|
|
|
|
- cmd: if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2017" ( %PYTHON%\python -m pip install meson==1.10.2 )
|
2017-05-18 16:50:52 +02:00
|
|
|
|
|
|
|
|
# Build scripts
|
|
|
|
|
build_script:
|
2020-10-02 16:09:13 +02:00
|
|
|
- appveyor AddMessage "Compiling rizin %RZ_VERSION% (%builder%)"
|
2017-06-05 11:00:51 +02:00
|
|
|
|
2026-03-27 06:07:57 +08:00
|
|
|
# Meson patched to work around git network issues
|
|
|
|
|
- cmd: if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2017" ( patch %PYTHON%\Lib\site-packages\mesonbuild\utils\universal.py patches\meson-git-retry.patch )
|
|
|
|
|
|
|
|
|
|
- cmd: if %builder% == vs2017_64 ( set "PATH=C:\mingw\bin;C:\mingw\msys\1.0\bin;%PYTHON%;%PATH%" && call "%VSVARSALLPATH2017%" x64 && %PYTHON%\Scripts\meson setup --buildtype=release --prefix="%CD%\%DIST_FOLDER%" --default-library=static -Db_vscrt=static_from_buildtype build && %PYTHON%\Scripts\ninja -C build install && 7z a %ARTIFACT_ZIP% %DIST_FOLDER% )
|
2019-09-30 12:31:40 +08:00
|
|
|
|
2023-04-26 17:21:57 +08:00
|
|
|
- cmd: if %builder% == vs2022_64 ( choco install mingw && refreshenv && set "PATH=C:\mingw\bin;C:\mingw\msys\1.0\bin;%PYTHON%;%PATH%" && call "%VSVARSALLPATH2022%" x64 && %PYTHON%\Scripts\meson setup --buildtype=release --prefix="%CD%\%DIST_FOLDER%" --default-library=static -Db_vscrt=static_from_buildtype build && %PYTHON%\Scripts\ninja -C build install && 7z a %ARTIFACT_ZIP% %DIST_FOLDER% )
|
2017-06-26 14:14:38 +02:00
|
|
|
|
2026-03-27 06:07:57 +08:00
|
|
|
- cmd: if %builder% == vs2017_64_dyn ( set "PATH=C:\mingw\bin;C:\mingw\msys\1.0\bin;%PYTHON%;%PATH%" && call "%VSVARSALLPATH2017%" x64 && %PYTHON%\Scripts\meson setup --buildtype=release --prefix="%CD%\%DIST_FOLDER%" build && %PYTHON%\Scripts\ninja -C build install && 7z a %ARTIFACT_ZIP% %DIST_FOLDER% )
|
2017-12-03 21:26:13 +01:00
|
|
|
|
2023-04-26 17:21:57 +08:00
|
|
|
- cmd: if %builder% == clang_cl_64_dyn ( set "PATH=C:\mingw\bin;C:\mingw\msys\1.0\bin;%PYTHON%;%PATH%" && call "%VSVARSALLPATH2019%" x64 && set CC=clang-cl && %PYTHON%\Scripts\meson setup --buildtype=release --prefix="%CD%\%DIST_FOLDER%" build && %PYTHON%\Scripts\ninja -C build install && 7z a %ARTIFACT_ZIP% %DIST_FOLDER% )
|
2019-08-16 07:10:00 +03:00
|
|
|
|
2020-04-06 20:40:40 +08:00
|
|
|
for:
|
2023-09-26 05:06:40 +05:30
|
|
|
# Run tests only conditionally
|
|
|
|
|
- matrix:
|
|
|
|
|
only:
|
|
|
|
|
- RUN_TESTS: true
|
2020-04-06 20:40:40 +08:00
|
|
|
|
|
|
|
|
test_script:
|
2026-03-27 06:07:57 +08:00
|
|
|
- if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2017" ( call "%VSVARSALLPATH2017%" x64 )
|
2022-01-14 18:36:08 +08:00
|
|
|
- if %builder% == vs2022_64 ( call "%VSVARSALLPATH2022%" x64 )
|
2021-05-02 14:47:17 +02:00
|
|
|
- if %builder% == clang_cl_64_dyn ( call "%VSVARSALLPATH2019%" x64 )
|
2020-06-30 17:41:39 +08:00
|
|
|
- set PATH=%APPVEYOR_BUILD_FOLDER%\%DIST_FOLDER%\bin;C:\Python38-x64;C:\msys64\mingw64\bin;%PATH%
|
2020-04-06 20:40:40 +08:00
|
|
|
- echo %PATH%
|
2020-10-01 16:13:03 +02:00
|
|
|
- where rizin
|
|
|
|
|
- rizin -v
|
2020-06-30 17:41:39 +08:00
|
|
|
- copy C:\Python38-x64\python.exe C:\Python38-x64\python3.exe
|
2020-12-09 09:25:07 +01:00
|
|
|
- python3 -m pip install "git+https://github.com/rizinorg/rz-pipe#egg=rzpipe&subdirectory=python"
|
2024-01-17 12:47:36 +05:30
|
|
|
- python3 -m pip install requests
|
2020-04-06 20:40:40 +08:00
|
|
|
- cd test
|
2022-01-25 17:25:19 +08:00
|
|
|
- git clone -q --depth 1 -c core.symlinks=true https://github.com/rizinorg/rizin-testbins bins
|
2020-12-23 12:16:44 +01:00
|
|
|
- cd ..
|
2022-03-06 16:12:58 +05:30
|
|
|
- "%PYTHON%\\Scripts\\meson test -C build -t 10 --print-errorlogs"
|
2020-12-23 12:16:44 +01:00
|
|
|
- cd test
|
2025-12-11 13:46:31 +08:00
|
|
|
- rz-test -o results.json -e db\esil -L db
|
2020-04-13 21:15:43 +02:00
|
|
|
- cd ..
|
2020-04-06 20:40:40 +08:00
|
|
|
|
2023-09-26 05:06:40 +05:30
|
|
|
# Include header files from C++
|
|
|
|
|
- matrix:
|
|
|
|
|
only:
|
|
|
|
|
- TEST_INCLUDE_HEADERS_CPP: true
|
|
|
|
|
|
|
|
|
|
test_script:
|
2026-03-27 06:07:57 +08:00
|
|
|
- if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2017" ( call "%VSVARSALLPATH2017%" x64 )
|
2023-09-26 05:06:40 +05:30
|
|
|
- if %builder% == vs2022_64 ( call "%VSVARSALLPATH2022%" x64 )
|
|
|
|
|
- if %builder% == clang_cl_64_dyn ( call "%VSVARSALLPATH2019%" x64 )
|
|
|
|
|
- set PATH=%APPVEYOR_BUILD_FOLDER%\%DIST_FOLDER%\bin;C:\Python38-x64;C:\msys64\mingw64\bin;%PATH%
|
|
|
|
|
- echo %PATH%
|
|
|
|
|
- where rizin
|
|
|
|
|
- rizin -v
|
|
|
|
|
- copy C:\Python38-x64\python.exe C:\Python38-x64\python3.exe
|
|
|
|
|
- "%PYTHON%\\Scripts\\meson setup build-cpp-test ./test/unit/cpp"
|
|
|
|
|
- "%PYTHON%\\Scripts\\meson compile -C build-cpp-test"
|
|
|
|
|
- "%PYTHON%\\Scripts\\meson test -C build-cpp-test --print-errorlogs"
|
|
|
|
|
|
2017-05-18 16:50:52 +02:00
|
|
|
# Artifacts
|
|
|
|
|
artifacts:
|
2017-06-05 11:00:51 +02:00
|
|
|
# Binaries
|
|
|
|
|
- path: "%ARTIFACT_ZIP%"
|
2020-11-23 23:43:41 -03:00
|
|
|
# Test results
|
2022-01-09 13:47:38 +08:00
|
|
|
- path: test/results.json
|