Bläddra i källkod

Build Avalonia.MacOS.ps1

Ruben 9 månader sedan
förälder
incheckning
0e6b8bbb5c
1 ändrade filer med 57 tillägg och 0 borttagningar
  1. 57 0
      Build/Build Avalonia.MacOS.ps1

+ 57 - 0
Build/Build Avalonia.MacOS.ps1

@@ -0,0 +1,57 @@
+param (
+    [Parameter()]
+    [string]$Platform,
+    
+    [Parameter()]
+    [string]$outputPath
+)
+
+# Define the core project path relative to the script's location
+$coreProjectPath = Join-Path -Path $PSScriptRoot -ChildPath "../src/PicView.Core/PicView.Core.csproj"
+
+# Load the .csproj file as XML
+[xml]$coreCsproj = Get-Content $coreProjectPath
+
+# Define the package reference to replace
+$packageRefX64 = "Magick.NET-Q8-x64"
+$packageRefArm64 = "Magick.NET-Q8-arm64"
+
+# Find the Magick.NET package reference and update it based on the platform
+$packageNodes = $coreCsproj.Project.ItemGroup.PackageReference | Where-Object { $_.Include -eq $packageRefX64 -or $_.Include -eq $packageRefArm64 }
+if ($packageNodes) {
+    foreach ($packageNode in $packageNodes) {
+        if ($Platform -eq "arm64") {
+            $packageNode.Include = $packageRefArm64
+        } else {
+            $packageNode.Include = $packageRefX64
+        }
+    }
+}
+
+# Save the updated .csproj file
+$coreCsproj.Save($coreProjectPath)
+
+# Define the project path for the actual build target
+$avaloniaProjectPath = Join-Path -Path $PSScriptRoot -ChildPath "../src/PicView.Avalonia.MacOS/PicView.Avalonia.MacOS.csproj"
+
+# Run dotnet publish for the Avalonia project
+dotnet publish $avaloniaProjectPath `
+    --runtime "osx-$Platform" `
+    --self-contained true `
+    --configuration Release `
+    -p:PublishSingleFile=false `
+    --output $outputPath
+
+# Remove the PDB file
+$pdbPath = Join-Path -Path $outputPath -ChildPath "PicView.Avalonia.pdb"
+if (Test-Path $pdbPath) {
+    Remove-Item -Path $pdbPath -Force
+}
+
+# Remove unintended space
+if (Test-Path $outputPath) {
+    $newPath = $outputPath.Replace(" ","")
+    if ($outputPath -ne $newPath) {
+        Rename-Item -Path $outputPath -NewName $newPath -Force
+    }
+}