lexilla/.github/workflows/build-check-win32.yml
zufuliu e8a26430b3 #308 Add ARM64 as second build to win32 workflow.
Since this is cross-compiling for ARM64, the tests can't run there so are omitted using the TEST
environment variable. The CheckLexilla step can't run so is exceluded.
An extra artifact lexilla-arm64.dll is uploaded although it should be renamed to lexilla.dll for use.
2025-03-23 11:02:24 +11:00

63 lines
1.9 KiB
YAML

name: "Build and check Lexilla on Win32 with Visual C++"
on: [push]
jobs:
# Compile for amd64 and cross-compile for arm64. Tests run only for amd64.
build:
runs-on: windows-latest
strategy:
matrix:
arch:
- amd64
- amd64_arm64
env:
TEST: ${{ matrix.arch == 'amd64' && 'test' || '' }}
steps:
- uses: actions/checkout@v4
- name: Preparing nmake
uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{ matrix.arch }}
- name: Install Scintilla source
run: |
pwd
cd ..
curl -O https://www.scintilla.org/scintilla500.zip
ls
7z x scintilla500.zip
cd lexilla
- name: Unit Test
run: |
cd test/unit
nmake -f test.mak DEBUG=1 $env:TEST
cd ../..
- name: Build Lexilla
run: |
cd src
nmake -f lexilla.mak DEBUG=1
cd ..
- uses: actions/upload-artifact@v4
with:
name: lexilla${{ matrix.arch == 'amd64_arm64' && '-arm64' || '' }}.dll
path: bin/lexilla.dll
- name: Test lexing and folding
run: |
cd test
nmake -f testlexers.mak DEBUG=1 $env:TEST
cd ..
- name: CheckLexilla C Example
if: matrix.arch == 'amd64'
run: |
cd examples/CheckLexilla
cl -MP CheckLexilla.c -I ../../include -Fe: CheckLexilla
.\CheckLexilla.exe
cd ../..
- name: SimpleLexer Example
run: |
cd examples/SimpleLexer
cl -MP -std:c++17 -EHsc -LD -I ../../../scintilla/include -I ../../include -I ../../lexlib SimpleLexer.cxx ../../lexlib/*.cxx
cd ../..