diff --git a/nukebuild/Build.cs b/nukebuild/Build.cs
index dd2f27116d..69063ab60c 100644
--- a/nukebuild/Build.cs
+++ b/nukebuild/Build.cs
@@ -123,8 +123,18 @@ partial class Build : NukeBuild
EnsureCleanDirectory(Parameters.TestResultsRoot);
});
+ Target CompileNative => _ => _
+ .DependsOn(Clean)
+ .OnlyWhen(() => EnvironmentInfo.IsOsx)
+ .Executes(() =>
+ {
+ var project = $"{RootDirectory}/native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/";
+ var args = $"-project {project} -configuration {Parameters.Configuration} CONFIGURATION_BUILD_DIR={RootDirectory}/Build/Products/Release";
+ ProcessTasks.StartProcess("xcodebuild", args).AssertZeroExitCode();
+ });
+
Target Compile => _ => _
- .DependsOn(Clean)
+ .DependsOn(Clean, CompileNative)
.Executes(() =>
{
if (Parameters.IsRunningOnWindows)
diff --git a/nukebuild/BuildParameters.cs b/nukebuild/BuildParameters.cs
index 65ba5e9756..b17070cca8 100644
--- a/nukebuild/BuildParameters.cs
+++ b/nukebuild/BuildParameters.cs
@@ -122,7 +122,7 @@ public partial class Build
ZipRoot = ArtifactsDir / "zip";
BinRoot = ArtifactsDir / "bin";
TestResultsRoot = ArtifactsDir / "test-results";
- BuildDirs = GlobDirectories(RootDirectory, "**bin").Concat(GlobDirectories(RootDirectory, "**obj")).ToList();
+ BuildDirs = new[] { "src", "samples", "tests" }.SelectMany(v => GlobDirectories(RootDirectory / v, "**/bin", "**/obj")).ToList();
DirSuffix = Configuration;
FileZipSuffix = Version + ".zip";
ZipCoreArtifacts = ZipRoot / ("Avalonia-" + FileZipSuffix);
diff --git a/src/Avalonia.Native/Avalonia.Native.csproj b/src/Avalonia.Native/Avalonia.Native.csproj
index 65c2a75b1c..712855f1ed 100644
--- a/src/Avalonia.Native/Avalonia.Native.csproj
+++ b/src/Avalonia.Native/Avalonia.Native.csproj
@@ -9,8 +9,9 @@
true
-
+
+ libAvaloniaNative.dylib
runtimes/osx/native/libAvaloniaNative.dylib
true
PreserveNewest