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 ../..