Build libavif #21
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build libavif | |
on: | |
workflow_dispatch: | |
inputs: | |
version: | |
description: libavif tag to build | |
required: true | |
php: | |
description: PHP version to build for | |
required: true | |
aom: | |
description: aom version to build | |
required: true | |
defaults: | |
run: | |
shell: cmd | |
jobs: | |
build: | |
strategy: | |
matrix: | |
arch: [x64, x86] | |
runs-on: windows-2022 | |
steps: | |
- name: Checkout winlib-builder | |
uses: actions/checkout@v4 | |
with: | |
path: winlib-builder | |
- name: Checkout libavif | |
uses: actions/checkout@v4 | |
with: | |
path: libavif | |
repository: winlibs/libavif | |
ref: ${{github.event.inputs.version}} | |
- name: Compute virtual inputs | |
id: virtuals | |
run: powershell winlib-builder/scripts/compute-virtuals -version ${{github.event.inputs.php}} -arch ${{matrix.arch}} | |
- name: Checkout aom | |
run: cd libavif\ext && git clone -b ${{github.event.inputs.aom}} --depth 1 https://aomedia.googlesource.com/aom | |
- name: Setup NASM | |
uses: ilammy/setup-nasm@v1 | |
- name: Configure aom for x64 | |
if: matrix.arch == 'x64' | |
run: cd libavif\ext\aom && md build.libavif && cd build.libavif && cmake -G "Visual Studio 17 2022" -A ${{steps.virtuals.outputs.msarch}} -DCMAKE_SYSTEM_VERSION=${{steps.virtuals.outputs.winsdk}} -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DENABLE_NASM=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE4_1=1 -DENABLE_SSE4_2=1 -DENABLE_AVX=1 -DENABLE_AVX2=1 .. | |
- name: Configure aom for x86 | |
if: matrix.arch == 'x86' | |
run: cd libavif\ext\aom && md build.libavif && cd build.libavif && cmake -G "Visual Studio 17 2022" -A ${{steps.virtuals.outputs.msarch}} -DCMAKE_SYSTEM_VERSION=${{steps.virtuals.outputs.winsdk}} -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DENABLE_NASM=1 -DENABLE_SSE2=0 -DENABLE_SSE3=0 -DENABLE_SSSE3=0 -DENABLE_SSE4_1=0 -DENABLE_SSE4_2=0 -DENABLE_AVX=0 -DENABLE_AVX2=0 .. | |
- name: Build aom | |
run: cd libavif\ext\aom\build.libavif && cmake --build . --config Release | |
- name: Install aom | |
run: | | |
cd libavif\ext\aom\build.libavif | |
xcopy Release\*.lib . | |
xcopy Release\aom.lib .\aom_a.lib* | |
xcopy .\aom_a.lib ..\..\..\..\install\lib\ | |
- name: Configure libavif | |
run: cd libavif && cmake -G "Visual Studio 17 2022" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} -DCMAKE_SYSTEM_VERSION=${{steps.virtuals.outputs.winsdk}} -DAVIF_LIBYUV=LOCAL -DAVIF_CODEC_AOM=LOCAL -DAVIF_ENABLE_WERROR=0 -DBUILD_SHARED_LIBS=0 . | |
- name: Build libavif | |
run: cd libavif && cmake --build . --config RelWithDebInfo | |
- name: Install libavif | |
run: | | |
cd libavif | |
cmake --install . --config RelWithDebInfo --prefix ..\install | |
xcopy RelWithDebInfo\avif_a.pdb ..\install\lib\* | |
rmdir /s /q ..\install\lib\pkgconfig | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{github.event.inputs.version}}-${{steps.virtuals.outputs.vs}}-${{matrix.arch}} | |
path: install |