diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index aba6692a18..3a2101c20c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -99,7 +99,7 @@ jobs: uses: actions/checkout@v4 - name: Install dependencies - run: build/osx-x64/install.dependencies.sh + run: build/macos-x64/install.dependencies.sh - name: Install Magick.Native run: 'build/shared/install.Magick.Native.sh "dlemstra" "${{ secrets.GITHUB_TOKEN }}" macos x64' @@ -110,6 +110,27 @@ jobs: - name: Test run: build/shared/test.Magick.NET.sh + macos_arm64: + name: 'MacOS (Q8/Q16/Q16-HDRI, arm64)' + runs-on: macos-14 + + steps: + + - name: Checkout + uses: actions/checkout@v4 + + - name: Install dependencies + run: build/macos-x64/install.dependencies.sh + + - name: Install Magick.Native + run: 'build/shared/install.Magick.Native.sh "dlemstra" "${{ secrets.GITHUB_TOKEN }}" macos arm64' + + - name: Build + run: build/shared/build.Magick.NET.sh + + - name: Test + run: build/shared/test.Magick.NET.sh + windows: name: Windows runs-on: windows-2022 diff --git a/Magick.NET.sln b/Magick.NET.sln index aa62b7cb2d..45f302331c 100644 --- a/Magick.NET.sln +++ b/Magick.NET.sln @@ -150,9 +150,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{EE5A8EB5 src\Magick.Native\build\Debug-Q8-x86.cmd = src\Magick.Native\build\Debug-Q8-x86.cmd EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "osx-x64", "osx-x64", "{8BAE93F7-10BB-409F-8823-52D0F766E44D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "macos-x64", "macos-x64", "{8BAE93F7-10BB-409F-8823-52D0F766E44D}" ProjectSection(SolutionItems) = preProject - build\osx-x64\install.dependencies.sh = build\osx-x64\install.dependencies.sh + build\macos-x64\install.dependencies.sh = build\macos-x64\install.dependencies.sh EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{3A8414CC-62A7-4E38-B6AC-75ED9D276971}" @@ -210,6 +210,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "linux-x64", "linux-x64", "{ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Magick.NET.SourceGenerator", "src\Magick.NET.SourceGenerator\Magick.NET.SourceGenerator.csproj", "{6179CA65-2469-492B-BFED-5B25E2E2FEF9}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "macos-arm64", "macos-arm64", "{0A65931C-E3BE-4648-ACF4-3629A5AD732F}" + ProjectSection(SolutionItems) = preProject + build\macos-arm64\install.dependencies.sh = build\macos-arm64\install.dependencies.sh + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -1445,6 +1450,7 @@ Global {3318785C-365D-49C9-AEC5-25C014B80698} = {F6E20621-E266-4314-ADE0-A899270F2312} {CA0B3C1A-0C4D-4329-8C6F-4C097E916221} = {A5315407-FA73-469B-99BB-7DFD5E043A92} {6179CA65-2469-492B-BFED-5B25E2E2FEF9} = {61345F8D-8813-4CA8-B037-2DE221FFB5D2} + {0A65931C-E3BE-4648-ACF4-3629A5AD732F} = {F6E20621-E266-4314-ADE0-A899270F2312} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4F6887AA-E540-48B3-BDC0-068B342ABEBE} diff --git a/build/osx-x64/install.dependencies.sh b/build/macos-arm64/install.dependencies.sh old mode 100755 new mode 100644 similarity index 100% rename from build/osx-x64/install.dependencies.sh rename to build/macos-arm64/install.dependencies.sh diff --git a/build/macos-x64/install.dependencies.sh b/build/macos-x64/install.dependencies.sh new file mode 100644 index 0000000000..28f61c36e1 --- /dev/null +++ b/build/macos-x64/install.dependencies.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -e + +export HOMEBREW_NO_AUTO_UPDATE=1 + +brew install fontconfig +fc-list + +downloadUrl=$(curl 'https://evermeet.cx/ffmpeg/info/ffmpeg/6.0' -fsS| jq -rc '.download.zip.url') +curl -f -L -# --compressed -A 'https://github.com/eugeneware/ffmpeg-static binaries download script' -o "ffmpeg-darwin-x64.zip" "$downloadUrl" +unzip -o -d /usr/local/bin -j ffmpeg-darwin-x64.zip ffmpeg diff --git a/src/Magick.Native/install.sh b/src/Magick.Native/install.sh index 12ae1a38d5..544156a60e 100755 --- a/src/Magick.Native/install.sh +++ b/src/Magick.Native/install.sh @@ -43,6 +43,10 @@ copyToTestProjects() { copyToTestProject $runtime $platform "Q16" "" copyToTestProject $runtime $platform "Q16-HDRI" "" + if [ "$runtime" = "macos" ] && [ "$platform" = "arm64" ]; then + return + fi + copyToTestProject $runtime $platform "Q8" "-OpenMP" copyToTestProject $runtime $platform "Q16" "-OpenMP" copyToTestProject $runtime $platform "Q16-HDRI" "-OpenMP"