From 6ccec50fb983e01fb789bc3259584fe2cbcf6645 Mon Sep 17 00:00:00 2001 From: "Frank A. Krueger" Date: Mon, 9 Mar 2026 13:43:11 -0700 Subject: [PATCH] Split MAUI into own library --- .github/workflows/build.yaml | 9 +- CrossGraphics.sln | 143 ++++++++++++++++++++++---------- maui/CrossGraphics.Maui.csproj | 49 +++++++++++ {src => maui}/MauiCanvas.cs | 0 {src => maui}/MauiSkiaCanvas.cs | 0 samples/Lols/Lols.csproj | 2 + samples/Lols/MainPage.xaml | 2 +- src/CrossGraphics.csproj | 19 +---- 8 files changed, 158 insertions(+), 66 deletions(-) create mode 100644 maui/CrossGraphics.Maui.csproj rename {src => maui}/MauiCanvas.cs (100%) rename {src => maui}/MauiSkiaCanvas.cs (100%) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ddf1bfb..f27d96c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -18,11 +18,12 @@ jobs: - uses: actions/checkout@v4 - name: Update Versions env: - VERSION_PREFIX: '1.2' + VERSION_PREFIX: '1.3' VERSION_SUFFIX: ${{github.run_number}} run: | VERSION=$VERSION_PREFIX.$VERSION_SUFFIX sed -i bak "s:1.0.0:$VERSION:g" src/CrossGraphics.csproj + sed -i bak "s:1.0.0:$VERSION:g" maui/CrossGraphics.Maui.csproj - name: Setup Xcode uses: maxim-lobanov/setup-xcode@v1 with: @@ -37,6 +38,8 @@ jobs: run: dotnet restore -p:NuGetAudit=false - name: Build Library run: dotnet build -c Release --no-restore src/CrossGraphics.csproj + - name: Build MAUI Library + run: dotnet build -c Release --no-restore maui/CrossGraphics.Maui.csproj - name: Build Test run: dotnet build -c Release --no-restore tests/CrossGraphicsTests.csproj - name: Test @@ -45,7 +48,9 @@ jobs: run: dotnet run -c Release -p:NuGetAudit=false --project atests/CrossGraphicsAcceptanceTests.csproj -- $(pwd) - name: Package if: github.event_name == 'push' - run: dotnet pack -c Release --no-build -o ./artifacts src/CrossGraphics.csproj + run: | + dotnet pack -c Release --no-build -o ./artifacts src/CrossGraphics.csproj + dotnet pack -c Release --no-build -o ./artifacts maui/CrossGraphics.Maui.csproj - name: Upload Package if: github.event_name == 'push' uses: actions/upload-artifact@v4 diff --git a/CrossGraphics.sln b/CrossGraphics.sln index 546ef07..17f2c33 100644 --- a/CrossGraphics.sln +++ b/CrossGraphics.sln @@ -1,45 +1,98 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.31903.59 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CrossGraphics", "src\CrossGraphics.csproj", "{60AE8F54-5095-4FCF-978B-D9A3160E4594}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CrossGraphicsTests", "tests\CrossGraphicsTests.csproj", "{96BC9201-E9B3-40FE-A099-0646C43A193A}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{8A2BAA71-2760-4B79-9D4C-EC614D3F1F53}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lols", "samples\Lols\Lols.csproj", "{73154013-5BF3-4002-8312-50349011EB76}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CrossGraphicsAcceptanceTests", "atests\CrossGraphicsAcceptanceTests.csproj", "{95A67297-9BDF-43EC-9194-46F2FCBBCBD4}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {60AE8F54-5095-4FCF-978B-D9A3160E4594}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {60AE8F54-5095-4FCF-978B-D9A3160E4594}.Debug|Any CPU.Build.0 = Debug|Any CPU - {60AE8F54-5095-4FCF-978B-D9A3160E4594}.Release|Any CPU.ActiveCfg = Release|Any CPU - {60AE8F54-5095-4FCF-978B-D9A3160E4594}.Release|Any CPU.Build.0 = Release|Any CPU - {96BC9201-E9B3-40FE-A099-0646C43A193A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96BC9201-E9B3-40FE-A099-0646C43A193A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96BC9201-E9B3-40FE-A099-0646C43A193A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {96BC9201-E9B3-40FE-A099-0646C43A193A}.Release|Any CPU.Build.0 = Release|Any CPU - {73154013-5BF3-4002-8312-50349011EB76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {73154013-5BF3-4002-8312-50349011EB76}.Debug|Any CPU.Build.0 = Debug|Any CPU - {73154013-5BF3-4002-8312-50349011EB76}.Release|Any CPU.ActiveCfg = Release|Any CPU - {73154013-5BF3-4002-8312-50349011EB76}.Release|Any CPU.Build.0 = Release|Any CPU - {95A67297-9BDF-43EC-9194-46F2FCBBCBD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {95A67297-9BDF-43EC-9194-46F2FCBBCBD4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {95A67297-9BDF-43EC-9194-46F2FCBBCBD4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {95A67297-9BDF-43EC-9194-46F2FCBBCBD4}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {73154013-5BF3-4002-8312-50349011EB76} = {8A2BAA71-2760-4B79-9D4C-EC614D3F1F53} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CrossGraphics", "src\CrossGraphics.csproj", "{60AE8F54-5095-4FCF-978B-D9A3160E4594}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CrossGraphicsTests", "tests\CrossGraphicsTests.csproj", "{96BC9201-E9B3-40FE-A099-0646C43A193A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{8A2BAA71-2760-4B79-9D4C-EC614D3F1F53}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lols", "samples\Lols\Lols.csproj", "{73154013-5BF3-4002-8312-50349011EB76}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CrossGraphicsAcceptanceTests", "atests\CrossGraphicsAcceptanceTests.csproj", "{95A67297-9BDF-43EC-9194-46F2FCBBCBD4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "maui", "maui", "{5358A8DD-221C-A68E-DDFB-CD91B98A505E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CrossGraphics.Maui", "maui\CrossGraphics.Maui.csproj", "{AD6DF014-8272-4052-8974-0A89FE6C726D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {60AE8F54-5095-4FCF-978B-D9A3160E4594}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60AE8F54-5095-4FCF-978B-D9A3160E4594}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60AE8F54-5095-4FCF-978B-D9A3160E4594}.Debug|x64.ActiveCfg = Debug|Any CPU + {60AE8F54-5095-4FCF-978B-D9A3160E4594}.Debug|x64.Build.0 = Debug|Any CPU + {60AE8F54-5095-4FCF-978B-D9A3160E4594}.Debug|x86.ActiveCfg = Debug|Any CPU + {60AE8F54-5095-4FCF-978B-D9A3160E4594}.Debug|x86.Build.0 = Debug|Any CPU + {60AE8F54-5095-4FCF-978B-D9A3160E4594}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60AE8F54-5095-4FCF-978B-D9A3160E4594}.Release|Any CPU.Build.0 = Release|Any CPU + {60AE8F54-5095-4FCF-978B-D9A3160E4594}.Release|x64.ActiveCfg = Release|Any CPU + {60AE8F54-5095-4FCF-978B-D9A3160E4594}.Release|x64.Build.0 = Release|Any CPU + {60AE8F54-5095-4FCF-978B-D9A3160E4594}.Release|x86.ActiveCfg = Release|Any CPU + {60AE8F54-5095-4FCF-978B-D9A3160E4594}.Release|x86.Build.0 = Release|Any CPU + {96BC9201-E9B3-40FE-A099-0646C43A193A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96BC9201-E9B3-40FE-A099-0646C43A193A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96BC9201-E9B3-40FE-A099-0646C43A193A}.Debug|x64.ActiveCfg = Debug|Any CPU + {96BC9201-E9B3-40FE-A099-0646C43A193A}.Debug|x64.Build.0 = Debug|Any CPU + {96BC9201-E9B3-40FE-A099-0646C43A193A}.Debug|x86.ActiveCfg = Debug|Any CPU + {96BC9201-E9B3-40FE-A099-0646C43A193A}.Debug|x86.Build.0 = Debug|Any CPU + {96BC9201-E9B3-40FE-A099-0646C43A193A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96BC9201-E9B3-40FE-A099-0646C43A193A}.Release|Any CPU.Build.0 = Release|Any CPU + {96BC9201-E9B3-40FE-A099-0646C43A193A}.Release|x64.ActiveCfg = Release|Any CPU + {96BC9201-E9B3-40FE-A099-0646C43A193A}.Release|x64.Build.0 = Release|Any CPU + {96BC9201-E9B3-40FE-A099-0646C43A193A}.Release|x86.ActiveCfg = Release|Any CPU + {96BC9201-E9B3-40FE-A099-0646C43A193A}.Release|x86.Build.0 = Release|Any CPU + {73154013-5BF3-4002-8312-50349011EB76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {73154013-5BF3-4002-8312-50349011EB76}.Debug|Any CPU.Build.0 = Debug|Any CPU + {73154013-5BF3-4002-8312-50349011EB76}.Debug|x64.ActiveCfg = Debug|Any CPU + {73154013-5BF3-4002-8312-50349011EB76}.Debug|x64.Build.0 = Debug|Any CPU + {73154013-5BF3-4002-8312-50349011EB76}.Debug|x86.ActiveCfg = Debug|Any CPU + {73154013-5BF3-4002-8312-50349011EB76}.Debug|x86.Build.0 = Debug|Any CPU + {73154013-5BF3-4002-8312-50349011EB76}.Release|Any CPU.ActiveCfg = Release|Any CPU + {73154013-5BF3-4002-8312-50349011EB76}.Release|Any CPU.Build.0 = Release|Any CPU + {73154013-5BF3-4002-8312-50349011EB76}.Release|x64.ActiveCfg = Release|Any CPU + {73154013-5BF3-4002-8312-50349011EB76}.Release|x64.Build.0 = Release|Any CPU + {73154013-5BF3-4002-8312-50349011EB76}.Release|x86.ActiveCfg = Release|Any CPU + {73154013-5BF3-4002-8312-50349011EB76}.Release|x86.Build.0 = Release|Any CPU + {95A67297-9BDF-43EC-9194-46F2FCBBCBD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {95A67297-9BDF-43EC-9194-46F2FCBBCBD4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {95A67297-9BDF-43EC-9194-46F2FCBBCBD4}.Debug|x64.ActiveCfg = Debug|Any CPU + {95A67297-9BDF-43EC-9194-46F2FCBBCBD4}.Debug|x64.Build.0 = Debug|Any CPU + {95A67297-9BDF-43EC-9194-46F2FCBBCBD4}.Debug|x86.ActiveCfg = Debug|Any CPU + {95A67297-9BDF-43EC-9194-46F2FCBBCBD4}.Debug|x86.Build.0 = Debug|Any CPU + {95A67297-9BDF-43EC-9194-46F2FCBBCBD4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {95A67297-9BDF-43EC-9194-46F2FCBBCBD4}.Release|Any CPU.Build.0 = Release|Any CPU + {95A67297-9BDF-43EC-9194-46F2FCBBCBD4}.Release|x64.ActiveCfg = Release|Any CPU + {95A67297-9BDF-43EC-9194-46F2FCBBCBD4}.Release|x64.Build.0 = Release|Any CPU + {95A67297-9BDF-43EC-9194-46F2FCBBCBD4}.Release|x86.ActiveCfg = Release|Any CPU + {95A67297-9BDF-43EC-9194-46F2FCBBCBD4}.Release|x86.Build.0 = Release|Any CPU + {AD6DF014-8272-4052-8974-0A89FE6C726D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD6DF014-8272-4052-8974-0A89FE6C726D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD6DF014-8272-4052-8974-0A89FE6C726D}.Debug|x64.ActiveCfg = Debug|Any CPU + {AD6DF014-8272-4052-8974-0A89FE6C726D}.Debug|x64.Build.0 = Debug|Any CPU + {AD6DF014-8272-4052-8974-0A89FE6C726D}.Debug|x86.ActiveCfg = Debug|Any CPU + {AD6DF014-8272-4052-8974-0A89FE6C726D}.Debug|x86.Build.0 = Debug|Any CPU + {AD6DF014-8272-4052-8974-0A89FE6C726D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD6DF014-8272-4052-8974-0A89FE6C726D}.Release|Any CPU.Build.0 = Release|Any CPU + {AD6DF014-8272-4052-8974-0A89FE6C726D}.Release|x64.ActiveCfg = Release|Any CPU + {AD6DF014-8272-4052-8974-0A89FE6C726D}.Release|x64.Build.0 = Release|Any CPU + {AD6DF014-8272-4052-8974-0A89FE6C726D}.Release|x86.ActiveCfg = Release|Any CPU + {AD6DF014-8272-4052-8974-0A89FE6C726D}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {73154013-5BF3-4002-8312-50349011EB76} = {8A2BAA71-2760-4B79-9D4C-EC614D3F1F53} + {AD6DF014-8272-4052-8974-0A89FE6C726D} = {5358A8DD-221C-A68E-DDFB-CD91B98A505E} + EndGlobalSection +EndGlobal diff --git a/maui/CrossGraphics.Maui.csproj b/maui/CrossGraphics.Maui.csproj new file mode 100644 index 0000000..50f8a71 --- /dev/null +++ b/maui/CrossGraphics.Maui.csproj @@ -0,0 +1,49 @@ + + + net10.0-ios;net10.0-macos;net10.0-maccatalyst;net10.0-android + $(TargetFrameworks);net10.0-windows10.0.19041.0 + + 1.0.0 + praeclarum + MAUI support for CrossGraphics. + maui;graphics;rendering;vector;draw;svg;wmf + https://github.com/praeclarum/CrossGraphics + MIT + README.md + true + true + true + snupkg + + true + $(NoWarn);NU1900 + 14.0 + enable + + true + true + + 12.2 + 15.0 + 12.0 + 21.0 + 10.0.17763.0 + 10.0.17763.0 + 6.5 + + MONOMAC + + + + + + + + + + + + + + + diff --git a/src/MauiCanvas.cs b/maui/MauiCanvas.cs similarity index 100% rename from src/MauiCanvas.cs rename to maui/MauiCanvas.cs diff --git a/src/MauiSkiaCanvas.cs b/maui/MauiSkiaCanvas.cs similarity index 100% rename from src/MauiSkiaCanvas.cs rename to maui/MauiSkiaCanvas.cs diff --git a/samples/Lols/Lols.csproj b/samples/Lols/Lols.csproj index 9bb46b1..45d4001 100644 --- a/samples/Lols/Lols.csproj +++ b/samples/Lols/Lols.csproj @@ -60,10 +60,12 @@ + + diff --git a/samples/Lols/MainPage.xaml b/samples/Lols/MainPage.xaml index 4f6e256..141a85f 100644 --- a/samples/Lols/MainPage.xaml +++ b/samples/Lols/MainPage.xaml @@ -1,7 +1,7 @@  diff --git a/src/CrossGraphics.csproj b/src/CrossGraphics.csproj index 6fd132c..7a8f114 100644 --- a/src/CrossGraphics.csproj +++ b/src/CrossGraphics.csproj @@ -17,14 +17,11 @@ true $(NoWarn);NU1900 - 12.0 + 14.0 disable false true - true - true - 12.2 15.0 12.0 @@ -46,8 +43,6 @@ - - @@ -59,10 +54,7 @@ - - - @@ -72,10 +64,7 @@ - - - @@ -84,10 +73,7 @@ - - - @@ -95,9 +81,6 @@ - - -