diff --git a/.gitignore b/.gitignore
index 5917c0f2ba..6ee6057d5f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -94,10 +94,6 @@ publish/
*.Publish.xml
*.pubxml
-# NuGet Packages Directory
-## TODO: If you have NuGet Package Restore enabled, uncomment the next line
-packages/
-
# Windows Azure Build Output
csx
*.build.csdef
@@ -189,3 +185,13 @@ project.lock.json
BenchmarkDotNet.Artifacts/
dirs.sln
+
+
+##################
+# XCode
+##################
+Index/
+Logs/
+ModuleCache.noindex/
+Build/Intermediates.noindex/
+info.plist
diff --git a/.ncrunch/Avalonia.DotNetCoreRuntime.v3.ncrunchproject b/.ncrunch/Avalonia.DesktopRuntime.v3.ncrunchproject
similarity index 100%
rename from .ncrunch/Avalonia.DotNetCoreRuntime.v3.ncrunchproject
rename to .ncrunch/Avalonia.DesktopRuntime.v3.ncrunchproject
diff --git a/.ncrunch/Avalonia.DotNetFrameworkRuntime.v3.ncrunchproject b/.ncrunch/Avalonia.DotNetFrameworkRuntime.v3.ncrunchproject
deleted file mode 100644
index 3cd9a982c9..0000000000
--- a/.ncrunch/Avalonia.DotNetFrameworkRuntime.v3.ncrunchproject
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- False
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Gtk.v3.ncrunchproject b/.ncrunch/Avalonia.Gtk.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Gtk.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.HtmlRenderer.v3.ncrunchproject b/.ncrunch/Avalonia.HtmlRenderer.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.HtmlRenderer.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Win32.NetStandard.v3.ncrunchproject b/.ncrunch/Avalonia.Win32.NetStandard.v3.ncrunchproject
deleted file mode 100644
index 95a483b433..0000000000
--- a/.ncrunch/Avalonia.Win32.NetStandard.v3.ncrunchproject
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Win32.Shared.v3.ncrunchproject b/.ncrunch/Avalonia.Win32.Shared.v3.ncrunchproject
deleted file mode 100644
index 95a483b433..0000000000
--- a/.ncrunch/Avalonia.Win32.Shared.v3.ncrunchproject
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/BindingTest.v3.ncrunchproject b/.ncrunch/BindingTest.v3.ncrunchproject
deleted file mode 100644
index a4953e14f9..0000000000
--- a/.ncrunch/BindingTest.v3.ncrunchproject
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- True
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/RemoteTest.v3.ncrunchproject b/.ncrunch/RemoteTest.v3.ncrunchproject
deleted file mode 100644
index 319cd523ce..0000000000
--- a/.ncrunch/RemoteTest.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/RenderTest.v3.ncrunchproject b/.ncrunch/RenderTest.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/RenderTest.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/VirtualizationTest.v3.ncrunchproject b/.ncrunch/VirtualizationTest.v3.ncrunchproject
deleted file mode 100644
index a4953e14f9..0000000000
--- a/.ncrunch/VirtualizationTest.v3.ncrunchproject
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- True
- True
-
-
\ No newline at end of file
diff --git a/Avalonia.sln b/Avalonia.sln
index a95007bdc6..7fa5f7736a 100644
--- a/Avalonia.sln
+++ b/Avalonia.sln
@@ -116,14 +116,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Interop", "Interop", "{A0CC
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsInteropTest", "samples\interop\WindowsInteropTest\WindowsInteropTest.csproj", "{C7A69145-60B6-4882-97D6-A3921DD43978}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.DotNetFrameworkRuntime", "src\Avalonia.DotNetFrameworkRuntime\Avalonia.DotNetFrameworkRuntime.csproj", "{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RenderDemo", "samples\RenderDemo\RenderDemo.csproj", "{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ControlCatalog.Android", "samples\ControlCatalog.Android\ControlCatalog.Android.csproj", "{29132311-1848-4FD6-AE0C-4FF841151BD3}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.DotNetCoreRuntime", "src\Avalonia.DotNetCoreRuntime\Avalonia.DotNetCoreRuntime.csproj", "{7863EA94-F0FB-4386-BF8C-E5BFA761560A}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Skia", "src\Skia\Avalonia.Skia\Avalonia.Skia.csproj", "{7D2D3083-71DD-4CC9-8907-39A0D86FB322}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Gtk3", "src\Gtk\Avalonia.Gtk3\Avalonia.Gtk3.csproj", "{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}"
@@ -178,21 +174,25 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Designer.HostApp",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Previewer", "samples\Previewer\Previewer.csproj", "{F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Designer.HostApp.NetFX", "src\tools\Avalonia.Designer.HostApp.NetFX\Avalonia.Designer.HostApp.NetFX.csproj", "{4ADA61C8-D191-428D-9066-EF4F0D86520F}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Skia.UnitTests", "tests\Avalonia.Skia.UnitTests\Avalonia.Skia.UnitTests.csproj", "{E1240B49-7B4B-4371-A00E-068778C5CF0B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.OpenGL", "src\Avalonia.OpenGL\Avalonia.OpenGL.csproj", "{7CCAEFC4-135D-401D-BDDD-896B9B7D3569}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Native", "src\Avalonia.Native\Avalonia.Native.csproj", "{12A91A62-C064-42CA-9A8C-A1272F354388}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.DesktopRuntime", "src\Avalonia.DesktopRuntime\Avalonia.DesktopRuntime.csproj", "{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Packages", "Packages", "{E870DCD7-F46A-498D-83FC-D0FD13E0A11C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia", "packages\Avalonia\Avalonia.csproj", "{D49233F8-F29C-47DD-9975-C4C9E4502720}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Desktop", "src\Avalonia.Desktop\Avalonia.Desktop.csproj", "{3C471044-3640-45E3-B1B2-16D2FF8399EE}"
+EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
src\Shared\RenderHelpers\RenderHelpers.projitems*{3c4c0cb4-0c0f-4450-a37b-148c84ff905f}*SharedItemsImports = 13
src\Shared\RenderHelpers\RenderHelpers.projitems*{3e908f67-5543-4879-a1dc-08eace79b3cd}*SharedItemsImports = 4
src\Shared\PlatformSupport\PlatformSupport.projitems*{4488ad85-1495-4809-9aa4-ddfe0a48527e}*SharedItemsImports = 4
- src\Shared\PlatformSupport\PlatformSupport.projitems*{4a1abb09-9047-4bd5-a4ad-a055e52c5ee0}*SharedItemsImports = 4
- src\Shared\PlatformSupport\PlatformSupport.projitems*{7863ea94-f0fb-4386-bf8c-e5bfa761560a}*SharedItemsImports = 4
src\Shared\PlatformSupport\PlatformSupport.projitems*{7b92af71-6287-4693-9dcb-bd5b6e927e23}*SharedItemsImports = 4
src\Shared\RenderHelpers\RenderHelpers.projitems*{7d2d3083-71dd-4cc9-8907-39a0d86fb322}*SharedItemsImports = 4
tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{dabfd304-d6a4-4752-8123-c2ccf7ac7831}*SharedItemsImports = 4
@@ -1219,30 +1219,6 @@ Global
{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|iPhone.Build.0 = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|iPhone.Build.0 = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|iPhone.Build.0 = Debug|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|Any CPU.Build.0 = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|iPhone.ActiveCfg = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|iPhone.Build.0 = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -1303,30 +1279,6 @@ Global
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|iPhone.Build.0 = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|iPhone.Build.0 = Debug|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|Any CPU.Build.0 = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|iPhone.ActiveCfg = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|iPhone.Build.0 = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -1591,30 +1543,6 @@ Global
{F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|iPhone.Build.0 = Release|Any CPU
{F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|iPhone.Build.0 = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|iPhone.Build.0 = Debug|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|Any CPU.Build.0 = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|iPhone.ActiveCfg = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|iPhone.Build.0 = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{E1240B49-7B4B-4371-A00E-068778C5CF0B}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{E1240B49-7B4B-4371-A00E-068778C5CF0B}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{E1240B49-7B4B-4371-A00E-068778C5CF0B}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
@@ -1687,6 +1615,78 @@ Global
{12A91A62-C064-42CA-9A8C-A1272F354388}.Release|iPhone.Build.0 = Release|Any CPU
{12A91A62-C064-42CA-9A8C-A1272F354388}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{12A91A62-C064-42CA-9A8C-A1272F354388}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Release|Any CPU.Build.0 = Release|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Release|iPhone.Build.0 = Release|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|iPhone.Build.0 = Release|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|iPhone.Build.0 = Release|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1737,8 +1737,9 @@ Global
{E2999E4A-9086-401F-898C-AEB0AD38E676} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{050CC912-FF49-4A8B-B534-9544017446DD} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637}
{F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE} = {9B9E3891-2366-4253-A952-D08BCEB71098}
- {4ADA61C8-D191-428D-9066-EF4F0D86520F} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637}
{E1240B49-7B4B-4371-A00E-068778C5CF0B} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
+ {D49233F8-F29C-47DD-9975-C4C9E4502720} = {E870DCD7-F46A-498D-83FC-D0FD13E0A11C}
+ {3C471044-3640-45E3-B1B2-16D2FF8399EE} = {E870DCD7-F46A-498D-83FC-D0FD13E0A11C}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A}
diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 0000000000..50476c81f1
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,5 @@
+
+
+ $(MSBuildThisFileDirectory)artifacts/nuget
+
+
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 480c49814d..00fe51534c 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -58,11 +58,10 @@ jobs:
pathToPublish: '$(Build.SourcesDirectory)/Build/Products/Release/'
artifactName: 'Avalonia.Native.OSX'
condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false))
-
- task: PublishBuildArtifacts@1
inputs:
- pathToPublish: '$(Build.SourcesDirectory)/artifacts/bin'
- artifactName: 'BinariesOSX'
+ pathtoPublish: '$(Build.SourcesDirectory)/artifacts/nuget'
+ artifactName: 'NuGetOSX'
condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false))
- job: Windows
@@ -88,8 +87,3 @@ jobs:
pathToPublish: '$(Build.SourcesDirectory)/artifacts/zip'
artifactName: 'Samples'
condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false))
- - task: PublishBuildArtifacts@1
- inputs:
- pathToPublish: '$(Build.SourcesDirectory)/artifacts/bin'
- artifactName: 'BinariesWindows'
- condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false))
diff --git a/build-native.sh b/build-native.sh
new file mode 100644
index 0000000000..5983751dce
--- /dev/null
+++ b/build-native.sh
@@ -0,0 +1,6 @@
+# /bin/sh
+
+mkdir native-build
+cd native-build
+cmake -DCMAKE_BUILD_TYPE=$1 ../native
+cmake --build . --target install
\ No newline at end of file
diff --git a/build.cake b/build.cake
index fbd915461f..c074578f95 100644
--- a/build.cake
+++ b/build.cake
@@ -21,32 +21,14 @@ using System.Linq;
///////////////////////////////////////////////////////////////////////////////
#load "./parameters.cake"
-#load "./packages.cake"
-
-//////////////////////////////////////////////////////////////////////
-// PARAMETERS
-//////////////////////////////////////////////////////////////////////
-
-class AvaloniaBuildData
-{
- public AvaloniaBuildData(Parameters parameters, Packages packages)
- {
- Parameters = parameters;
- Packages = packages;
- }
-
- public Parameters Parameters { get; }
- public Packages Packages { get; }
-}
///////////////////////////////////////////////////////////////////////////////
// SETUP
///////////////////////////////////////////////////////////////////////////////
-Setup(context =>
+Setup(context =>
{
var parameters = new Parameters(context);
- var buildContext = new AvaloniaBuildData(parameters, new Packages(context, parameters));
Information("Building version {0} of Avalonia ({1}) using version {2} of Cake.",
parameters.Version,
@@ -73,14 +55,14 @@ Setup(context =>
Information("IsMyGetRelease: " + parameters.IsMyGetRelease);
Information("IsNuGetRelease: " + parameters.IsNuGetRelease);
- return buildContext;
+ return parameters;
});
///////////////////////////////////////////////////////////////////////////////
// TEARDOWN
///////////////////////////////////////////////////////////////////////////////
-Teardown((context, buildContext) =>
+Teardown((context, buildContext) =>
{
Information("Finished running tasks.");
});
@@ -90,13 +72,12 @@ Teardown((context, buildContext) =>
///////////////////////////////////////////////////////////////////////////////
Task("Clean-Impl")
- .Does(data =>
+ .Does(data =>
{
- CleanDirectories(data.Parameters.BuildDirs);
- CleanDirectory(data.Parameters.ArtifactsDir);
- CleanDirectory(data.Parameters.NugetRoot);
- CleanDirectory(data.Parameters.ZipRoot);
- CleanDirectory(data.Parameters.BinRoot);
+ CleanDirectories(data.BuildDirs);
+ CleanDirectory(data.ArtifactsDir);
+ CleanDirectory(data.NugetRoot);
+ CleanDirectory(data.ZipRoot);
});
void DotNetCoreBuild(Parameters parameters)
@@ -104,27 +85,35 @@ void DotNetCoreBuild(Parameters parameters)
var settings = new DotNetCoreBuildSettings
{
Configuration = parameters.Configuration,
+ MSBuildSettings = new DotNetCoreMSBuildSettings
+ {
+ Properties =
+ {
+ { "PackageVersion", new [] { parameters.Version } }
+ }
+ }
};
DotNetCoreBuild(parameters.MSBuildSolution, settings);
}
Task("Build-Impl")
- .Does(data =>
+ .Does(data =>
{
- if(data.Parameters.IsRunningOnWindows)
+ if(data.IsRunningOnWindows)
{
- MSBuild(data.Parameters.MSBuildSolution, settings => {
- settings.SetConfiguration(data.Parameters.Configuration);
+ MSBuild(data.MSBuildSolution, settings => {
+ settings.SetConfiguration(data.Configuration);
settings.SetVerbosity(Verbosity.Minimal);
settings.WithProperty("iOSRoslynPathHackRequired", "true");
+ settings.WithProperty("PackageVersion", data.Version);
settings.UseToolVersion(MSBuildToolVersion.VS2017);
settings.WithRestore();
});
}
else
{
- DotNetCoreBuild(data.Parameters);
+ DotNetCoreBuild(data);
}
});
@@ -151,45 +140,45 @@ void RunCoreTest(string project, Parameters parameters, bool coreOnly = false)
}
Task("Run-Unit-Tests-Impl")
- .WithCriteria((context, data) => !data.Parameters.SkipTests)
- .Does(data =>
+ .WithCriteria((context, data) => !data.SkipTests)
+ .Does(data =>
{
- RunCoreTest("./tests/Avalonia.Base.UnitTests", data.Parameters, false);
- RunCoreTest("./tests/Avalonia.Controls.UnitTests", data.Parameters, false);
- RunCoreTest("./tests/Avalonia.Input.UnitTests", data.Parameters, false);
- RunCoreTest("./tests/Avalonia.Interactivity.UnitTests", data.Parameters, false);
- RunCoreTest("./tests/Avalonia.Layout.UnitTests", data.Parameters, false);
- RunCoreTest("./tests/Avalonia.Markup.UnitTests", data.Parameters, false);
- RunCoreTest("./tests/Avalonia.Markup.Xaml.UnitTests", data.Parameters, false);
- RunCoreTest("./tests/Avalonia.Styling.UnitTests", data.Parameters, false);
- RunCoreTest("./tests/Avalonia.Visuals.UnitTests", data.Parameters, false);
- RunCoreTest("./tests/Avalonia.Skia.UnitTests", data.Parameters, false);
- RunCoreTest("./tests/Avalonia.ReactiveUI.UnitTests", data.Parameters, false);
- if (data.Parameters.IsRunningOnWindows)
+ RunCoreTest("./tests/Avalonia.Base.UnitTests", data, false);
+ RunCoreTest("./tests/Avalonia.Controls.UnitTests", data, false);
+ RunCoreTest("./tests/Avalonia.Input.UnitTests", data, false);
+ RunCoreTest("./tests/Avalonia.Interactivity.UnitTests", data, false);
+ RunCoreTest("./tests/Avalonia.Layout.UnitTests", data, false);
+ RunCoreTest("./tests/Avalonia.Markup.UnitTests", data, false);
+ RunCoreTest("./tests/Avalonia.Markup.Xaml.UnitTests", data, false);
+ RunCoreTest("./tests/Avalonia.Styling.UnitTests", data, false);
+ RunCoreTest("./tests/Avalonia.Visuals.UnitTests", data, false);
+ RunCoreTest("./tests/Avalonia.Skia.UnitTests", data, false);
+ RunCoreTest("./tests/Avalonia.ReactiveUI.UnitTests", data, false);
+ if (data.IsRunningOnWindows)
{
- RunCoreTest("./tests/Avalonia.Direct2D1.UnitTests", data.Parameters, false);
+ RunCoreTest("./tests/Avalonia.Direct2D1.UnitTests", data, false);
}
});
Task("Run-Designer-Tests-Impl")
- .WithCriteria((context, data) => !data.Parameters.SkipTests)
- .Does(data =>
+ .WithCriteria((context, data) => !data.SkipTests)
+ .Does(data =>
{
- RunCoreTest("./tests/Avalonia.DesignerSupport.Tests", data.Parameters, false);
+ RunCoreTest("./tests/Avalonia.DesignerSupport.Tests", data, false);
});
Task("Run-Render-Tests-Impl")
- .WithCriteria((context, data) => !data.Parameters.SkipTests)
- .WithCriteria((context, data) => data.Parameters.IsRunningOnWindows)
- .Does(data =>
+ .WithCriteria((context, data) => !data.SkipTests)
+ .WithCriteria((context, data) => data.IsRunningOnWindows)
+ .Does(data =>
{
- RunCoreTest("./tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj", data.Parameters, true);
- RunCoreTest("./tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj", data.Parameters, true);
+ RunCoreTest("./tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj", data, true);
+ RunCoreTest("./tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj", data, true);
});
Task("Run-Leak-Tests-Impl")
- .WithCriteria((context, data) => !data.Parameters.SkipTests)
- .WithCriteria((context, data) => data.Parameters.IsRunningOnWindows)
+ .WithCriteria((context, data) => !data.SkipTests)
+ .WithCriteria((context, data) => data.IsRunningOnWindows)
.Does(() =>
{
var dotMemoryUnit = Context.Tools.Resolve("dotMemoryUnit.exe");
@@ -209,34 +198,57 @@ Task("Run-Leak-Tests-Impl")
}
});
-Task("Copy-Files-Impl")
- .Does(data =>
-{
- CopyFiles(data.Packages.BinFiles, data.Parameters.BinRoot);
-});
-
Task("Zip-Files-Impl")
- .Does(data =>
+ .Does(data =>
{
- Zip(data.Parameters.BinRoot, data.Parameters.ZipCoreArtifacts);
+ Zip(data.BinRoot, data.ZipCoreArtifacts);
- Zip(data.Parameters.NugetRoot, data.Parameters.ZipNuGetArtifacts);
+ Zip(data.NugetRoot, data.ZipNuGetArtifacts);
- Zip(data.Parameters.ZipSourceControlCatalogDesktopDirs,
- data.Parameters.ZipTargetControlCatalogDesktopDirs,
- GetFiles(data.Parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.dll") +
- GetFiles(data.Parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.config") +
- GetFiles(data.Parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.so") +
- GetFiles(data.Parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.dylib") +
- GetFiles(data.Parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.exe"));
+ Zip(data.ZipSourceControlCatalogDesktopDirs,
+ data.ZipTargetControlCatalogDesktopDirs,
+ GetFiles(data.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.dll") +
+ GetFiles(data.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.config") +
+ GetFiles(data.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.so") +
+ GetFiles(data.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.dylib") +
+ GetFiles(data.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.exe"));
});
+void DotNetCorePack(Parameters parameters)
+{
+ var settings = new DotNetCorePackSettings
+ {
+ Configuration = parameters.Configuration,
+ MSBuildSettings = new DotNetCoreMSBuildSettings
+ {
+ Properties =
+ {
+ { "PackageVersion", new [] { parameters.Version } }
+ }
+ }
+ };
+
+ DotNetCorePack(parameters.MSBuildSolution, settings);
+}
+
Task("Create-NuGet-Packages-Impl")
- .Does(data =>
+ .Does(data =>
{
- foreach(var nuspec in data.Packages.NuspecNuGetSettings)
+ if(data.IsRunningOnWindows)
{
- NuGetPack(nuspec);
+ MSBuild(data.MSBuildSolution, settings => {
+ settings.SetConfiguration(data.Configuration);
+ settings.SetVerbosity(Verbosity.Minimal);
+ settings.WithProperty("iOSRoslynPathHackRequired", "true");
+ settings.WithProperty("PackageVersion", data.Version);
+ settings.UseToolVersion(MSBuildToolVersion.VS2017);
+ settings.WithRestore();
+ settings.WithTarget("Pack");
+ });
+ }
+ else
+ {
+ DotNetCorePack(data);
}
});
@@ -261,7 +273,6 @@ Task("Package")
Task("AppVeyor")
.IsDependentOn("Package")
- .IsDependentOn("Copy-Files-Impl")
.IsDependentOn("Zip-Files-Impl");
Task("Travis")
@@ -271,13 +282,11 @@ Task("Azure-Linux")
.IsDependentOn("Run-Tests");
Task("Azure-OSX")
- .IsDependentOn("Run-Tests")
- .IsDependentOn("Copy-Files-Impl")
+ .IsDependentOn("Package")
.IsDependentOn("Zip-Files-Impl");
Task("Azure-Windows")
.IsDependentOn("Package")
- .IsDependentOn("Copy-Files-Impl")
.IsDependentOn("Zip-Files-Impl");
///////////////////////////////////////////////////////////////////////////////
diff --git a/build/CoreLibraries.props b/build/CoreLibraries.props
new file mode 100644
index 0000000000..d989e643b8
--- /dev/null
+++ b/build/CoreLibraries.props
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/LegacyProject.targets b/build/LegacyProject.targets
new file mode 100644
index 0000000000..0e0d49b1c2
--- /dev/null
+++ b/build/LegacyProject.targets
@@ -0,0 +1,3 @@
+
+
+
diff --git a/build/ReferenceCoreLibraries.props b/build/ReferenceCoreLibraries.props
new file mode 100644
index 0000000000..bd9d6ad843
--- /dev/null
+++ b/build/ReferenceCoreLibraries.props
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/build/Rx.props b/build/Rx.props
index f4affcacac..359ce53a92 100644
--- a/build/Rx.props
+++ b/build/Rx.props
@@ -1,9 +1,5 @@
-
-
-
-
diff --git a/build/SampleApp.props b/build/SampleApp.props
index 3b538e4029..5580a4c2c9 100644
--- a/build/SampleApp.props
+++ b/build/SampleApp.props
@@ -2,12 +2,7 @@
WinExe
-
-
-
-
+
-
diff --git a/build/System.Drawing.Common.props b/build/System.Drawing.Common.props
index a568152bbd..2b3707d38a 100644
--- a/build/System.Drawing.Common.props
+++ b/build/System.Drawing.Common.props
@@ -1,5 +1,5 @@
-
+
diff --git a/dirs.proj b/dirs.proj
index 3dbfe82512..0f24632b72 100644
--- a/dirs.proj
+++ b/dirs.proj
@@ -3,9 +3,9 @@
+
-
diff --git a/global.json b/global.json
index 38f403a701..d11e78bd7f 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,7 @@
{
"msbuild-sdks": {
- "Microsoft.Build.Traversal": "1.0.41",
- "MSBuild.Sdk.Extras": "1.6.46"
+ "Microsoft.Build.Traversal": "1.0.43",
+ "MSBuild.Sdk.Extras": "1.6.46",
+ "AggregatePackage.NuGet.Sdk" : "0.1.12"
}
}
diff --git a/src/Avalonia.Native/headers/avalonia-native-guids.h b/native/Avalonia.Native/inc/avalonia-native-guids.h
similarity index 100%
rename from src/Avalonia.Native/headers/avalonia-native-guids.h
rename to native/Avalonia.Native/inc/avalonia-native-guids.h
diff --git a/src/Avalonia.Native/headers/avalonia-native.h b/native/Avalonia.Native/inc/avalonia-native.h
similarity index 100%
rename from src/Avalonia.Native/headers/avalonia-native.h
rename to native/Avalonia.Native/inc/avalonia-native.h
diff --git a/src/Avalonia.Native/headers/com.h b/native/Avalonia.Native/inc/com.h
similarity index 100%
rename from src/Avalonia.Native/headers/com.h
rename to native/Avalonia.Native/inc/com.h
diff --git a/src/Avalonia.Native/headers/comimpl.h b/native/Avalonia.Native/inc/comimpl.h
similarity index 94%
rename from src/Avalonia.Native/headers/comimpl.h
rename to native/Avalonia.Native/inc/comimpl.h
index cea6d2207a..cf1aa4c735 100644
--- a/src/Avalonia.Native/headers/comimpl.h
+++ b/native/Avalonia.Native/inc/comimpl.h
@@ -63,19 +63,20 @@ public:
#define FORWARD_IUNKNOWN() \
-virtual ULONG Release(){ \
+virtual ULONG Release() override \
+{ \
return ComObject::Release(); \
} \
-virtual ULONG AddRef() \
+virtual ULONG AddRef() override \
{ \
return ComObject::AddRef(); \
} \
-virtual HRESULT QueryInterface(REFIID riid, void **ppvObject) \
+virtual HRESULT QueryInterface(REFIID riid, void **ppvObject) override \
{ \
return ComObject::QueryInterface(riid, ppvObject); \
}
-#define BEGIN_INTERFACE_MAP() public: virtual HRESULT STDMETHODCALLTYPE QueryInterfaceImpl(REFIID riid, void **ppvObject){
+#define BEGIN_INTERFACE_MAP() public: virtual HRESULT STDMETHODCALLTYPE QueryInterfaceImpl(REFIID riid, void **ppvObject) override {
#define INTERFACE_MAP_ENTRY(TInterface, IID) if(0 == memcmp(riid, &IID, sizeof(GUID))) { TInterface* casted = this; *ppvObject = casted; return S_OK; }
#define END_INTERFACE_MAP() return E_NOINTERFACE; }
#define INHERIT_INTERFACE_MAP(TBase) if(TBase::QueryInterfaceImpl(riid, ppvObject) == S_OK) return S_OK;
diff --git a/src/Avalonia.Native/headers/key.h b/native/Avalonia.Native/inc/key.h
similarity index 100%
rename from src/Avalonia.Native/headers/key.h
rename to native/Avalonia.Native/inc/key.h
diff --git a/src/Avalonia.Native.OSX/.gitignore b/native/Avalonia.Native/src/OSX/.gitignore
similarity index 100%
rename from src/Avalonia.Native.OSX/.gitignore
rename to native/Avalonia.Native/src/OSX/.gitignore
diff --git a/src/Avalonia.Native.OSX/Avalonia.Native.OSX.xcodeproj/project.pbxproj b/native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/project.pbxproj
similarity index 98%
rename from src/Avalonia.Native.OSX/Avalonia.Native.OSX.xcodeproj/project.pbxproj
rename to native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/project.pbxproj
index 8d36bf3b8f..bd8ac481a8 100644
--- a/src/Avalonia.Native.OSX/Avalonia.Native.OSX.xcodeproj/project.pbxproj
+++ b/native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/project.pbxproj
@@ -22,7 +22,7 @@
/* Begin PBXFileReference section */
379860FE214DA0C000CD0246 /* KeyTransform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KeyTransform.h; sourceTree = ""; };
- 37A4E71A2178846A00EACBCD /* headers */ = {isa = PBXFileReference; lastKnownFileType = folder; name = headers; path = ../Avalonia.Native/headers; sourceTree = ""; };
+ 37A4E71A2178846A00EACBCD /* headers */ = {isa = PBXFileReference; lastKnownFileType = folder; name = headers; path = ../../inc; sourceTree = ""; };
37A517B22159597E00FBA241 /* Screens.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = Screens.mm; sourceTree = ""; };
37C09D8721580FE4006A6758 /* SystemDialogs.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = SystemDialogs.mm; sourceTree = ""; };
37C09D8A21581EF2006A6758 /* window.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = window.h; sourceTree = ""; };
@@ -285,7 +285,7 @@
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
EXECUTABLE_PREFIX = lib;
- HEADER_SEARCH_PATHS = ../Avalonia.Native/headers;
+ HEADER_SEARCH_PATHS = ../../inc;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
@@ -296,7 +296,7 @@
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
EXECUTABLE_PREFIX = lib;
- HEADER_SEARCH_PATHS = ../Avalonia.Native/headers;
+ HEADER_SEARCH_PATHS = ../../inc;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
diff --git a/src/Avalonia.Native.OSX/Avalonia.Native.OSX.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/project.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from src/Avalonia.Native.OSX/Avalonia.Native.OSX.xcodeproj/project.xcworkspace/contents.xcworkspacedata
rename to native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/src/Avalonia.Native.OSX/Avalonia.Native.OSX.xcodeproj/xcshareddata/xcschemes/Avalonia.Native.OSX.xcscheme b/native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/xcshareddata/xcschemes/Avalonia.Native.OSX.xcscheme
similarity index 97%
rename from src/Avalonia.Native.OSX/Avalonia.Native.OSX.xcodeproj/xcshareddata/xcschemes/Avalonia.Native.OSX.xcscheme
rename to native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/xcshareddata/xcschemes/Avalonia.Native.OSX.xcscheme
index 96588581bf..c1cc9b4887 100644
--- a/src/Avalonia.Native.OSX/Avalonia.Native.OSX.xcodeproj/xcshareddata/xcschemes/Avalonia.Native.OSX.xcscheme
+++ b/native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/xcshareddata/xcschemes/Avalonia.Native.OSX.xcscheme
@@ -38,7 +38,7 @@
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "YES"
- customWorkingDirectory = "$PROJECT_DIR/../../samples/ControlCatalog"
+ customWorkingDirectory = "$PROJECT_DIR/../../../../samples/ControlCatalog"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
diff --git a/src/Avalonia.Native.OSX/KeyTransform.h b/native/Avalonia.Native/src/OSX/KeyTransform.h
similarity index 100%
rename from src/Avalonia.Native.OSX/KeyTransform.h
rename to native/Avalonia.Native/src/OSX/KeyTransform.h
diff --git a/src/Avalonia.Native.OSX/KeyTransform.mm b/native/Avalonia.Native/src/OSX/KeyTransform.mm
similarity index 100%
rename from src/Avalonia.Native.OSX/KeyTransform.mm
rename to native/Avalonia.Native/src/OSX/KeyTransform.mm
diff --git a/src/Avalonia.Native.OSX/Screens.mm b/native/Avalonia.Native/src/OSX/Screens.mm
similarity index 91%
rename from src/Avalonia.Native.OSX/Screens.mm
rename to native/Avalonia.Native/src/OSX/Screens.mm
index 229c598797..9d436b98c5 100644
--- a/src/Avalonia.Native.OSX/Screens.mm
+++ b/native/Avalonia.Native/src/OSX/Screens.mm
@@ -7,7 +7,7 @@ class Screens : public ComSingleObject
{
public:
FORWARD_IUNKNOWN()
- virtual HRESULT GetScreenCount (int* ret)
+ virtual HRESULT GetScreenCount (int* ret) override
{
@autoreleasepool
{
@@ -17,7 +17,7 @@ class Screens : public ComSingleObject
}
}
- virtual HRESULT GetScreen (int index, AvnScreen* ret)
+ virtual HRESULT GetScreen (int index, AvnScreen* ret) override
{
@autoreleasepool
{
diff --git a/src/Avalonia.Native.OSX/SystemDialogs.mm b/native/Avalonia.Native/src/OSX/SystemDialogs.mm
similarity index 98%
rename from src/Avalonia.Native.OSX/SystemDialogs.mm
rename to native/Avalonia.Native/src/OSX/SystemDialogs.mm
index 55b1abc720..7049f77d20 100644
--- a/src/Avalonia.Native.OSX/SystemDialogs.mm
+++ b/native/Avalonia.Native/src/OSX/SystemDialogs.mm
@@ -11,7 +11,7 @@ public:
virtual void SelectFolderDialog (IAvnWindow* parentWindowHandle,
IAvnSystemDialogEvents* events,
const char* title,
- const char* initialDirectory)
+ const char* initialDirectory) override
{
@autoreleasepool
{
@@ -88,7 +88,7 @@ public:
const char* title,
const char* initialDirectory,
const char* initialFile,
- const char* filters)
+ const char* filters) override
{
@autoreleasepool
{
@@ -179,7 +179,7 @@ public:
const char* title,
const char* initialDirectory,
const char* initialFile,
- const char* filters)
+ const char* filters) override
{
@autoreleasepool
{
diff --git a/src/Avalonia.Native.OSX/clipboard.mm b/native/Avalonia.Native/src/OSX/clipboard.mm
similarity index 88%
rename from src/Avalonia.Native.OSX/clipboard.mm
rename to native/Avalonia.Native/src/OSX/clipboard.mm
index e39b78fc33..19e5c25801 100644
--- a/src/Avalonia.Native.OSX/clipboard.mm
+++ b/native/Avalonia.Native/src/OSX/clipboard.mm
@@ -7,7 +7,7 @@ class Clipboard : public ComSingleObject
{
public:
FORWARD_IUNKNOWN()
- virtual HRESULT GetText (void** retOut)
+ virtual HRESULT GetText (void** retOut) override
{
@autoreleasepool
{
@@ -18,7 +18,7 @@ public:
return S_OK;
}
- virtual HRESULT SetText (char* text)
+ virtual HRESULT SetText (char* text) override
{
@autoreleasepool
{
@@ -30,7 +30,7 @@ public:
return S_OK;
}
- virtual HRESULT Clear()
+ virtual HRESULT Clear() override
{
@autoreleasepool
{
diff --git a/src/Avalonia.Native.OSX/common.h b/native/Avalonia.Native/src/OSX/common.h
similarity index 100%
rename from src/Avalonia.Native.OSX/common.h
rename to native/Avalonia.Native/src/OSX/common.h
diff --git a/src/Avalonia.Native.OSX/cursor.h b/native/Avalonia.Native/src/OSX/cursor.h
similarity index 100%
rename from src/Avalonia.Native.OSX/cursor.h
rename to native/Avalonia.Native/src/OSX/cursor.h
diff --git a/src/Avalonia.Native.OSX/cursor.mm b/native/Avalonia.Native/src/OSX/cursor.mm
similarity index 98%
rename from src/Avalonia.Native.OSX/cursor.mm
rename to native/Avalonia.Native/src/OSX/cursor.mm
index 6a06918527..bd2c94a4d8 100644
--- a/src/Avalonia.Native.OSX/cursor.mm
+++ b/native/Avalonia.Native/src/OSX/cursor.mm
@@ -51,7 +51,7 @@ class CursorFactory : public ComSingleObjectAddRef();
return S_OK;
}
- virtual HRESULT ObtainImmediateContext(IAvnGlContext**retOut)
+ virtual HRESULT ObtainImmediateContext(IAvnGlContext**retOut) override
{
*retOut = _immediate;
_immediate->AddRef();
@@ -193,14 +193,14 @@ public:
_view = view;
}
- virtual HRESULT GetPixelSize(AvnPixelSize* ret)
+ virtual HRESULT GetPixelSize(AvnPixelSize* ret) override
{
auto fsize = [_view convertSizeToBacking: [_view frame].size];
ret->Width = (int)fsize.width;
ret->Height = (int)fsize.height;
return S_OK;
}
- virtual HRESULT GetScaling(double* ret)
+ virtual HRESULT GetScaling(double* ret) override
{
*ret = [_window backingScaleFactor];
return S_OK;
@@ -230,7 +230,7 @@ public:
_context = GetFeature()->CreateContext();
}
- virtual HRESULT BeginDrawing(IAvnGlSurfaceRenderingSession** ret)
+ virtual HRESULT BeginDrawing(IAvnGlSurfaceRenderingSession** ret) override
{
auto f = GetFeature();
if(f == NULL)
diff --git a/src/Avalonia.Native.OSX/main.mm b/native/Avalonia.Native/src/OSX/main.mm
similarity index 89%
rename from src/Avalonia.Native.OSX/main.mm
rename to native/Avalonia.Native/src/OSX/main.mm
index bb32c44918..4d6dcfed85 100644
--- a/src/Avalonia.Native.OSX/main.mm
+++ b/native/Avalonia.Native/src/OSX/main.mm
@@ -16,7 +16,7 @@ class MacOptions : public ComSingleObject
{
public:
FORWARD_IUNKNOWN()
- virtual HRESULT SetShowInDock(int show)
+ virtual HRESULT SetShowInDock(int show) override
{
ShowInDock = show;
SetActivationPolicy();
@@ -64,7 +64,7 @@ class AvaloniaNative : public ComSingleObject(cancel);
@@ -125,12 +125,12 @@ public:
}
}
- virtual void Signal(int priority)
+ virtual void Signal(int priority) override
{
[_signaler signal:priority];
}
- virtual IUnknown* StartTimer(int priority, int ms, IAvnActionCallback* callback)
+ virtual IUnknown* StartTimer(int priority, int ms, IAvnActionCallback* callback) override
{
@autoreleasepool {
diff --git a/src/Avalonia.Native.OSX/window.h b/native/Avalonia.Native/src/OSX/window.h
similarity index 100%
rename from src/Avalonia.Native.OSX/window.h
rename to native/Avalonia.Native/src/OSX/window.h
diff --git a/src/Avalonia.Native.OSX/window.mm b/native/Avalonia.Native/src/OSX/window.mm
similarity index 93%
rename from src/Avalonia.Native.OSX/window.mm
rename to native/Avalonia.Native/src/OSX/window.mm
index 2e9f7503fb..76243493c4 100644
--- a/src/Avalonia.Native.OSX/window.mm
+++ b/native/Avalonia.Native/src/OSX/window.mm
@@ -81,12 +81,12 @@ public:
[Window setContentView: View];
}
- virtual AvnWindow* GetNSWindow()
+ virtual AvnWindow* GetNSWindow() override
{
return Window;
}
- virtual HRESULT Show()
+ virtual HRESULT Show() override
{
@autoreleasepool
{
@@ -102,7 +102,7 @@ public:
}
}
- virtual HRESULT Hide ()
+ virtual HRESULT Hide () override
{
@autoreleasepool
{
@@ -115,7 +115,7 @@ public:
}
}
- virtual HRESULT Activate ()
+ virtual HRESULT Activate () override
{
@autoreleasepool
{
@@ -128,7 +128,7 @@ public:
return S_OK;
}
- virtual HRESULT SetTopMost (bool value)
+ virtual HRESULT SetTopMost (bool value) override
{
@autoreleasepool
{
@@ -138,7 +138,7 @@ public:
}
}
- virtual HRESULT Close()
+ virtual HRESULT Close() override
{
@autoreleasepool
{
@@ -147,7 +147,7 @@ public:
}
}
- virtual HRESULT GetClientSize(AvnSize* ret)
+ virtual HRESULT GetClientSize(AvnSize* ret) override
{
@autoreleasepool
{
@@ -160,7 +160,7 @@ public:
}
}
- virtual HRESULT GetMaxClientSize(AvnSize* ret)
+ virtual HRESULT GetMaxClientSize(AvnSize* ret) override
{
@autoreleasepool
{
@@ -176,7 +176,7 @@ public:
}
}
- virtual HRESULT GetScaling (double* ret)
+ virtual HRESULT GetScaling (double* ret) override
{
@autoreleasepool
{
@@ -194,7 +194,7 @@ public:
}
}
- virtual HRESULT SetMinMaxSize (AvnSize minSize, AvnSize maxSize)
+ virtual HRESULT SetMinMaxSize (AvnSize minSize, AvnSize maxSize) override
{
@autoreleasepool
{
@@ -205,7 +205,7 @@ public:
}
}
- virtual HRESULT Resize(double x, double y)
+ virtual HRESULT Resize(double x, double y) override
{
@autoreleasepool
{
@@ -215,7 +215,7 @@ public:
}
}
- virtual HRESULT Invalidate (AvnRect rect)
+ virtual HRESULT Invalidate (AvnRect rect) override
{
@autoreleasepool
{
@@ -225,7 +225,7 @@ public:
}
}
- virtual bool TryLock()
+ virtual bool TryLock() override
{
@autoreleasepool
{
@@ -233,7 +233,7 @@ public:
}
}
- virtual void Unlock()
+ virtual void Unlock() override
{
@autoreleasepool
{
@@ -241,7 +241,7 @@ public:
}
}
- virtual HRESULT BeginMoveDrag ()
+ virtual HRESULT BeginMoveDrag () override
{
@autoreleasepool
{
@@ -258,12 +258,12 @@ public:
}
}
- virtual HRESULT BeginResizeDrag (AvnWindowEdge edge)
+ virtual HRESULT BeginResizeDrag (AvnWindowEdge edge) override
{
return S_OK;
}
- virtual HRESULT GetPosition (AvnPoint* ret)
+ virtual HRESULT GetPosition (AvnPoint* ret) override
{
@autoreleasepool
{
@@ -283,7 +283,7 @@ public:
}
}
- virtual HRESULT SetPosition (AvnPoint point)
+ virtual HRESULT SetPosition (AvnPoint point) override
{
@autoreleasepool
{
@@ -294,7 +294,7 @@ public:
}
}
- virtual HRESULT PointToClient (AvnPoint point, AvnPoint* ret)
+ virtual HRESULT PointToClient (AvnPoint point, AvnPoint* ret) override
{
@autoreleasepool
{
@@ -312,7 +312,7 @@ public:
}
}
- virtual HRESULT PointToScreen (AvnPoint point, AvnPoint* ret)
+ virtual HRESULT PointToScreen (AvnPoint point, AvnPoint* ret) override
{
@autoreleasepool
{
@@ -329,13 +329,13 @@ public:
}
}
- virtual HRESULT ThreadSafeSetSwRenderedFrame(AvnFramebuffer* fb, IUnknown* dispose)
+ virtual HRESULT ThreadSafeSetSwRenderedFrame(AvnFramebuffer* fb, IUnknown* dispose) override
{
[View setSwRenderedFrame: fb dispose: dispose];
return S_OK;
}
- virtual HRESULT GetSoftwareFramebuffer(AvnFramebuffer*ret)
+ virtual HRESULT GetSoftwareFramebuffer(AvnFramebuffer*ret) override
{
if(![[NSThread currentThread] isMainThread])
return E_FAIL;
@@ -345,7 +345,7 @@ public:
return S_OK;
}
- virtual HRESULT SetCursor(IAvnCursor* cursor)
+ virtual HRESULT SetCursor(IAvnCursor* cursor) override
{
@autoreleasepool
{
@@ -367,7 +367,7 @@ public:
}
}
- virtual HRESULT CreateGlRenderTarget(IAvnGlSurfaceRenderTarget** ppv)
+ virtual HRESULT CreateGlRenderTarget(IAvnGlSurfaceRenderTarget** ppv) override
{
if(View == NULL)
return E_FAIL;
@@ -440,7 +440,7 @@ private:
[Window setCanBecomeKeyAndMain];
}
- virtual HRESULT Show ()
+ virtual HRESULT Show () override
{
@autoreleasepool
{
@@ -450,7 +450,7 @@ private:
}
}
- virtual HRESULT ShowDialog (IUnknown**ppv)
+ virtual HRESULT ShowDialog (IUnknown**ppv) override
{
@autoreleasepool
{
@@ -475,7 +475,7 @@ private:
}
}
- void WindowStateChanged ()
+ void WindowStateChanged () override
{
AvnWindowState state;
GetWindowState(&state);
@@ -509,7 +509,7 @@ private:
}
}
- virtual HRESULT SetCanResize(bool value)
+ virtual HRESULT SetCanResize(bool value) override
{
@autoreleasepool
{
@@ -519,7 +519,7 @@ private:
}
}
- virtual HRESULT SetHasDecorations(bool value)
+ virtual HRESULT SetHasDecorations(bool value) override
{
@autoreleasepool
{
@@ -530,7 +530,7 @@ private:
}
}
- virtual HRESULT SetTitle (const char* title)
+ virtual HRESULT SetTitle (const char* title) override
{
@autoreleasepool
{
@@ -542,7 +542,7 @@ private:
}
}
- virtual HRESULT SetTitleBarColor(AvnColor color)
+ virtual HRESULT SetTitleBarColor(AvnColor color) override
{
@autoreleasepool
{
@@ -571,7 +571,7 @@ private:
return S_OK;
}
- virtual HRESULT GetWindowState (AvnWindowState*ret)
+ virtual HRESULT GetWindowState (AvnWindowState*ret) override
{
@autoreleasepool
{
@@ -598,7 +598,7 @@ private:
}
}
- virtual HRESULT SetWindowState (AvnWindowState state)
+ virtual HRESULT SetWindowState (AvnWindowState state) override
{
@autoreleasepool
{
@@ -642,7 +642,7 @@ private:
}
protected:
- virtual void OnResized ()
+ virtual void OnResized () override
{
auto windowState = [Window isMiniaturized] ? Minimized
: (IsZoomed() ? Maximized : Normal);
@@ -655,7 +655,7 @@ protected:
}
}
- virtual NSWindowStyleMask GetStyle()
+ virtual NSWindowStyleMask GetStyle() override
{
unsigned long s = NSWindowStyleMaskBorderless;
if(_hasDecorations)
@@ -1192,12 +1192,12 @@ private:
}
protected:
- virtual NSWindowStyleMask GetStyle()
+ virtual NSWindowStyleMask GetStyle() override
{
return NSWindowStyleMaskBorderless;
}
- virtual HRESULT Resize(double x, double y)
+ virtual HRESULT Resize(double x, double y) override
{
@autoreleasepool
{
diff --git a/packages.cake b/packages.cake
deleted file mode 100644
index 4d6b5f6771..0000000000
--- a/packages.cake
+++ /dev/null
@@ -1,508 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Xml.Linq;
-
-public class Packages
-{
- public List NuspecNuGetSettings { get; private set; }
- public FilePath[] NugetPackages { get; private set; }
- public FilePath[] BinFiles { get; private set; }
- public string NugetPackagesDir {get; private set;}
- public string SkiaSharpVersion {get; private set; }
- public string SkiaSharpLinuxVersion {get; private set; }
- public Dictionary>> PackageVersions{get; private set;}
-
- class DependencyBuilder : List
- {
- Packages _parent;
-
- public DependencyBuilder(Packages parent)
- {
- _parent = parent;
- }
-
- string GetVersion(string name)
- {
- return _parent.PackageVersions[name].First().Item1;
- }
-
- public DependencyBuilder Dep(string name, params string[] fws)
- {
- if(fws.Length == 0)
- Add(new NuSpecDependency() { Id = name, Version = GetVersion(name) });
- foreach(var fw in fws)
- Add(new NuSpecDependency() { Id = name, TargetFramework = fw, Version = GetVersion(name) });
- return this;
- }
- public DependencyBuilder Deps(string[] fws, params string[] deps)
- {
- foreach(var fw in fws)
- foreach(var name in deps)
- Add(new NuSpecDependency() { Id = name, TargetFramework = fw, Version = GetVersion(name) });
- return this;
- }
- }
-
- public Packages(ICakeContext context, Parameters parameters)
- {
- // NUGET NUSPECS
- context.Information("Getting git modules:");
-
- var ignoredSubModulesPaths = System.IO.File.ReadAllLines(".git/config").Where(m=>m.StartsWith("[submodule ")).Select(m =>
- {
- var path = m.Split(' ')[1].Trim("\"[] \t".ToArray());
- context.Information(path);
- return ((DirectoryPath)context.Directory(path)).FullPath;
- }).ToList();
-
- var normalizePath = new Func(
- path => path.Replace(System.IO.Path.DirectorySeparatorChar, System.IO.Path.AltDirectorySeparatorChar).ToUpperInvariant());
-
- // Key: Package Id
- // Value is Tuple where Item1: Package Version, Item2: The *.csproj/*.props file path.
- var packageVersions = new Dictionary>>();
- PackageVersions = packageVersions;
- System.IO.Directory.EnumerateFiles(((DirectoryPath)context.Directory("./build")).FullPath,
- "*.props", SearchOption.AllDirectories).ToList().ForEach(fileName =>
- {
- if (!ignoredSubModulesPaths.Any(i => normalizePath(fileName).Contains(normalizePath(i))))
- {
- var xdoc = XDocument.Load(fileName);
- foreach (var reference in xdoc.Descendants().Where(x => x.Name.LocalName == "PackageReference"))
- {
- var name = reference.Attribute("Include").Value;
- var versionAttribute = reference.Attribute("Version");
- var version = versionAttribute != null
- ? versionAttribute.Value
- : reference.Elements().First(x=>x.Name.LocalName == "Version").Value;
- IList> versions;
- packageVersions.TryGetValue(name, out versions);
- if (versions == null)
- {
- versions = new List>();
- packageVersions[name] = versions;
- }
- versions.Add(Tuple.Create(version, fileName));
- }
- }
- });
-
- context.Information("Checking installed NuGet package dependencies versions:");
-
- packageVersions.ToList().ForEach(package =>
- {
- var packageVersion = package.Value.First().Item1;
- bool isValidVersion = package.Value.All(x => x.Item1 == packageVersion);
- if (!isValidVersion)
- {
- context.Information("Error: package {0} has multiple versions installed:", package.Key);
- foreach (var v in package.Value)
- {
- context.Information("{0}, file: {1}", v.Item1, v.Item2);
- }
- throw new Exception("Detected multiple NuGet package version installed for different projects.");
- }
- });
-
- context.Information("Setting NuGet package dependencies versions:");
-
- var SerilogVersion = packageVersions["Serilog"].FirstOrDefault().Item1;
- var SerilogSinksDebugVersion = packageVersions["Serilog.Sinks.Debug"].FirstOrDefault().Item1;
- var SerilogSinksTraceVersion = packageVersions["Serilog.Sinks.Trace"].FirstOrDefault().Item1;
- var SystemReactiveVersion = packageVersions["System.Reactive"].FirstOrDefault().Item1;
- var ReactiveUIVersion = packageVersions["reactiveui"].FirstOrDefault().Item1;
- var SystemValueTupleVersion = packageVersions["System.ValueTuple"].FirstOrDefault().Item1;
- SkiaSharpVersion = packageVersions["SkiaSharp"].FirstOrDefault().Item1;
- SkiaSharpLinuxVersion = packageVersions["Avalonia.Skia.Linux.Natives"].FirstOrDefault().Item1;
- var SharpDXVersion = packageVersions["SharpDX"].FirstOrDefault().Item1;
- var SharpDXDirect2D1Version = packageVersions["SharpDX.Direct2D1"].FirstOrDefault().Item1;
- var SharpDXDirect3D11Version = packageVersions["SharpDX.Direct3D11"].FirstOrDefault().Item1;
- var SharpDXDirect3D9Version = packageVersions["SharpDX.Direct3D9"].FirstOrDefault().Item1;
- var SharpDXDXGIVersion = packageVersions["SharpDX.DXGI"].FirstOrDefault().Item1;
- var SystemMemoryVersion = packageVersions["System.Memory"].FirstOrDefault().Item1;
-
- context.Information("Package: Serilog, version: {0}", SerilogVersion);
- context.Information("Package: System.Reactive, version: {0}", SystemReactiveVersion);
- context.Information("Package: reactiveui, version: {0}", ReactiveUIVersion);
- context.Information("Package: System.ValueTuple, version: {0}", SystemValueTupleVersion);
- context.Information("Package: SkiaSharp, version: {0}", SkiaSharpVersion);
- context.Information("Package: Avalonia.Skia.Linux.Natives, version: {0}", SkiaSharpLinuxVersion);
- context.Information("Package: SharpDX, version: {0}", SharpDXVersion);
- context.Information("Package: SharpDX.Direct2D1, version: {0}", SharpDXDirect2D1Version);
- context.Information("Package: SharpDX.Direct3D11, version: {0}", SharpDXDirect3D11Version);
- context.Information("Package: SharpDX.Direct3D9, version: {0}", SharpDXDirect3D9Version);
- context.Information("Package: SharpDX.DXGI, version: {0}", SharpDXDXGIVersion);
- context.Information("Package: System.Memory, version: {0}", SystemMemoryVersion);
-
- var nugetPackagesDir = System.Environment.GetEnvironmentVariable("NUGET_HOME")
- ?? System.IO.Path.Combine(System.Environment.GetEnvironmentVariable("USERPROFILE") ?? System.Environment.GetEnvironmentVariable("HOME"), ".nuget");
-
- NugetPackagesDir = System.IO.Path.Combine(nugetPackagesDir, "packages");
-
- var SetNuGetNuspecCommonProperties = new Action ((nuspec) => {
- nuspec.Version = parameters.Version;
- nuspec.Authors = new [] { "Avalonia Team" };
- nuspec.Owners = new [] { "stevenk" };
- nuspec.LicenseUrl = new Uri("http://opensource.org/licenses/MIT");
- nuspec.ProjectUrl = new Uri("https://github.com/AvaloniaUI/Avalonia/");
- nuspec.RequireLicenseAcceptance = false;
- nuspec.Symbols = false;
- nuspec.NoPackageAnalysis = true;
- nuspec.Description = "The Avalonia UI framework";
- nuspec.Copyright = "Copyright 2018";
- nuspec.Tags = new [] { "Avalonia" };
- });
-
- var coreLibraries = new string[][]
- {
- new [] { "./src/", "Avalonia.Animation"},
- new [] { "./src/", "Avalonia.Base"},
- new [] { "./src/", "Avalonia.Controls"},
- new [] { "./src/", "Avalonia.DesignerSupport"},
- new [] { "./src/", "Avalonia.Diagnostics"},
- new [] { "./src/", "Avalonia.Input"},
- new [] { "./src/", "Avalonia.Interactivity"},
- new [] { "./src/", "Avalonia.Layout"},
- new [] { "./src/", "Avalonia.Logging.Serilog"},
- new [] { "./src/", "Avalonia.Visuals"},
- new [] { "./src/", "Avalonia.Styling"},
- new [] { "./src/", "Avalonia.OpenGL"},
- new [] { "./src/", "Avalonia.Themes.Default"},
- new [] { "./src/Markup/", "Avalonia.Markup"},
- new [] { "./src/Markup/", "Avalonia.Markup.Xaml"},
- };
-
- var extensionsToPack = new [] {".dll", ".xml", ".pdb"};
-
- var coreLibrariesFiles = coreLibraries
- .SelectMany(lib => extensionsToPack.Select(ext => new {lib, ext}))
- .Select((lib) => {
- return (FilePath)context.File(lib.lib[0] + lib.lib[1] + "/bin/" + parameters.DirSuffix + "/netstandard2.0/" + lib.lib[1] + lib.ext);
- }).ToList();
-
- var coreLibrariesNuSpecContent = coreLibrariesFiles.Select((file) => {
- return new NuSpecContent {
- Source = file.FullPath, Target = "lib/netstandard2.0"
- };
- });
-
- var netFrameworkCoreLibrariesNuSpecContent = coreLibrariesFiles.Select((file) => {
- return new NuSpecContent {
- Source = file.FullPath, Target = "lib/net461"
- };
- });
-
- var netcoreappCoreLibrariesNuSpecContent = coreLibrariesFiles.Select((file) => {
- return new NuSpecContent {
- Source = file.FullPath, Target = "lib/netcoreapp2.0"
- };
- });
-
- var netFrameworkRuntimePlatform = extensionsToPack.Select(libSuffix => {
- return new NuSpecContent {
- Source = ((FilePath)context.File("./src/Avalonia.DotNetFrameworkRuntime/bin/" + parameters.DirSuffix + "/net461/Avalonia.DotNetFrameworkRuntime" + libSuffix)).FullPath,
- Target = "lib/net461"
- };
- });
-
- var netCoreRuntimePlatform = extensionsToPack.Select(libSuffix => {
- return new NuSpecContent {
- Source = ((FilePath)context.File("./src/Avalonia.DotNetCoreRuntime/bin/" + parameters.DirSuffix + "/netcoreapp2.0/Avalonia.DotNetCoreRuntime" + libSuffix)).FullPath,
- Target = "lib/netcoreapp2.0"
- };
- });
-
- var toolHostApp = new NuSpecContent{
- Source = ((FilePath)context.File("./src/tools/Avalonia.Designer.HostApp/bin/" + parameters.DirSuffix + "/netcoreapp2.0/Avalonia.Designer.HostApp.dll")).FullPath,
- Target = "tools/netcoreapp2.0/previewer"
- };
-
- var toolHostAppNetFx = new NuSpecContent{
- Source = ((FilePath)context.File("./src/tools/Avalonia.Designer.HostApp.NetFx/bin/" + parameters.DirSuffix + "/net461/Avalonia.Designer.HostApp.exe")).FullPath,
- Target = "tools/net461/previewer"
- };
-
- var toolsContent = new[] { toolHostApp, toolHostAppNetFx };
- var coreFiles = coreLibrariesNuSpecContent
- .Concat(netFrameworkCoreLibrariesNuSpecContent).Concat(netFrameworkRuntimePlatform)
- .Concat(netcoreappCoreLibrariesNuSpecContent).Concat(netCoreRuntimePlatform)
- .Concat(toolsContent)
- .ToList();
-
- var nuspecNuGetSettingsCore = new []
- {
- ///////////////////////////////////////////////////////////////////////////////
- // Avalonia
- ///////////////////////////////////////////////////////////////////////////////
- new NuGetPackSettings()
- {
- Id = "Avalonia",
- Dependencies = new DependencyBuilder(this)
- {
- new NuSpecDependency() { Id = "Avalonia.Remote.Protocol", Version = parameters.Version, TargetFramework="netstandard2.0" },
- new NuSpecDependency() { Id = "Avalonia.Remote.Protocol", Version = parameters.Version, TargetFramework="netcoreapp2.0" },
- new NuSpecDependency() { Id = "Avalonia.Remote.Protocol", Version = parameters.Version, TargetFramework="net461" },
- new NuSpecDependency() { Id = "System.ValueTuple", Version = SystemValueTupleVersion, TargetFramework="net461" },
- new NuSpecDependency() { Id = "System.ComponentModel.TypeConverter", Version = "4.3.0", TargetFramework="net461" },
- new NuSpecDependency() { Id = "NETStandard.Library", Version = "2.0.0", TargetFramework="net461"}
- }
- .Deps(new string[]{"netstandard2.0", "netcoreapp2.0", "net461"},
- "Serilog", "Serilog.Sinks.Debug", "Serilog.Sinks.Trace",
- "System.Memory", "System.Reactive", "System.ComponentModel.Annotations")
- .ToArray(),
- Files = coreFiles,
- BasePath = context.Directory("./"),
- OutputDirectory = parameters.NugetRoot
- },
- ///////////////////////////////////////////////////////////////////////////////
- // Avalonia.ReactiveUI
- ///////////////////////////////////////////////////////////////////////////////
- new NuGetPackSettings()
- {
- Id = "Avalonia.ReactiveUI",
- Dependencies = new DependencyBuilder(this)
- {
- new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version },
- }.Deps(new string[] {null}, "reactiveui"),
- Files = new []
- {
- new NuSpecContent { Source = "Avalonia.ReactiveUI.dll", Target = "lib/netstandard2.0" }
- },
- BasePath = context.Directory("./src/Avalonia.ReactiveUI/bin/" + parameters.DirSuffix + "/netstandard2.0"),
- OutputDirectory = parameters.NugetRoot
- },
- ///////////////////////////////////////////////////////////////////////////////
- // Avalonia.Remote.Protocol
- ///////////////////////////////////////////////////////////////////////////////
- new NuGetPackSettings()
- {
- Id = "Avalonia.Remote.Protocol",
- Files = new []
- {
- new NuSpecContent { Source = "Avalonia.Remote.Protocol.dll", Target = "lib/netstandard2.0" }
- },
- BasePath = context.Directory("./src/Avalonia.Remote.Protocol/bin/" + parameters.DirSuffix + "/netstandard2.0"),
- OutputDirectory = parameters.NugetRoot
- },
- };
-
- var nuspecNuGetSettingsMobile = new []
- {
- ///////////////////////////////////////////////////////////////////////////////
- // Avalonia.Android
- ///////////////////////////////////////////////////////////////////////////////
- new NuGetPackSettings()
- {
- Id = "Avalonia.Android",
- Dependencies = new []
- {
- new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.Skia", Version = parameters.Version }
- },
- Files = new []
- {
- new NuSpecContent { Source = "Avalonia.Android.dll", Target = "lib/MonoAndroid10" }
- },
- BasePath = context.Directory("./src/Android/Avalonia.Android/bin/" + parameters.DirSuffix + "/monoandroid44/MonoAndroid44/"),
- OutputDirectory = parameters.NugetRoot
- },
- ///////////////////////////////////////////////////////////////////////////////
- // Avalonia.iOS
- ///////////////////////////////////////////////////////////////////////////////
- new NuGetPackSettings()
- {
- Id = "Avalonia.iOS",
- Dependencies = new []
- {
- new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.Skia", Version = parameters.Version }
- },
- Files = new []
- {
- new NuSpecContent { Source = "Avalonia.iOS.dll", Target = "lib/Xamarin.iOS10" }
- },
- BasePath = context.Directory("./src/iOS/Avalonia.iOS/bin/" + parameters.DirSuffix + "/xamarin.ios10/"),
- OutputDirectory = parameters.NugetRoot
- }
- };
-
- var nuspecNuGetSettingsDesktop = new []
- {
- ///////////////////////////////////////////////////////////////////////////////
- // Avalonia.Win32
- ///////////////////////////////////////////////////////////////////////////////
- new NuGetPackSettings()
- {
- Id = "Avalonia.Win32",
- Dependencies = new DependencyBuilder(this)
- {
- new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version }
- }.Deps(new string[]{null}, "System.Drawing.Common"),
- Files = new []
- {
- new NuSpecContent { Source = "Avalonia.Win32/bin/" + parameters.DirSuffix + "/netstandard2.0/Avalonia.Win32.dll", Target = "lib/netstandard2.0" }
- },
- BasePath = context.Directory("./src/Windows"),
- OutputDirectory = parameters.NugetRoot
- },
- ///////////////////////////////////////////////////////////////////////////////
- // Avalonia.Direct2D1
- ///////////////////////////////////////////////////////////////////////////////
- new NuGetPackSettings()
- {
- Id = "Avalonia.Direct2D1",
- Dependencies = new []
- {
- new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version },
- new NuSpecDependency() { Id = "SharpDX", Version = SharpDXVersion },
- new NuSpecDependency() { Id = "SharpDX.Direct2D1", Version = SharpDXDirect2D1Version },
- new NuSpecDependency() { Id = "SharpDX.Direct3D11", Version = SharpDXDirect3D11Version },
- new NuSpecDependency() { Id = "SharpDX.DXGI", Version = SharpDXDXGIVersion }
- },
- Files = new []
- {
- new NuSpecContent { Source = "Avalonia.Direct2D1.dll", Target = "lib/netstandard2.0" }
- },
- BasePath = context.Directory("./src/Windows/Avalonia.Direct2D1/bin/" + parameters.DirSuffix + "/netstandard2.0"),
- OutputDirectory = parameters.NugetRoot
- },
- ///////////////////////////////////////////////////////////////////////////////
- // Avalonia.Gtk3
- ///////////////////////////////////////////////////////////////////////////////
- new NuGetPackSettings()
- {
- Id = "Avalonia.Gtk3",
- Dependencies = new []
- {
- new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version }
- },
- Files = new []
- {
- new NuSpecContent { Source = "Avalonia.Gtk3.dll", Target = "lib/netstandard2.0" }
- },
- BasePath = context.Directory("./src/Gtk/Avalonia.Gtk3/bin/" + parameters.DirSuffix + "/netstandard2.0"),
- OutputDirectory = parameters.NugetRoot
- },
- ///////////////////////////////////////////////////////////////////////////////
- // Avalonia.Skia
- ///////////////////////////////////////////////////////////////////////////////
- new NuGetPackSettings()
- {
- Id = "Avalonia.Skia",
- Dependencies = new []
- {
- new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version },
- new NuSpecDependency() { Id = "SkiaSharp", Version = SkiaSharpVersion },
- new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version, TargetFramework="netcoreapp2.0" },
- new NuSpecDependency() { Id = "SkiaSharp", Version = SkiaSharpVersion, TargetFramework="netcoreapp2.0" },
- new NuSpecDependency() { Id = "Avalonia.Skia.Linux.Natives", Version = SkiaSharpLinuxVersion, TargetFramework="netcoreapp2.0" },
- new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version, TargetFramework="net461" },
- new NuSpecDependency() { Id = "SkiaSharp", Version = SkiaSharpVersion, TargetFramework="net461" },
- new NuSpecDependency() { Id = "Avalonia.Skia.Linux.Natives", Version = SkiaSharpLinuxVersion, TargetFramework="net461" }
- },
- Files = new []
- {
- new NuSpecContent { Source = "Avalonia.Skia.dll", Target = "lib/netstandard2.0" }
- },
- BasePath = context.Directory("./src/Skia/Avalonia.Skia/bin/" + parameters.DirSuffix + "/netstandard2.0"),
- OutputDirectory = parameters.NugetRoot
- },
- ///////////////////////////////////////////////////////////////////////////////
- // Avalonia.Desktop
- ///////////////////////////////////////////////////////////////////////////////
- new NuGetPackSettings()
- {
- Id = "Avalonia.Desktop",
- Dependencies = new []
- {
- new NuSpecDependency() { Id = "Avalonia.Direct2D1", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.Win32", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.Skia", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.Gtk3", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.Native", Version = parameters.Version }
- },
- Files = new NuSpecContent[]
- {
- new NuSpecContent { Source = "licence.md", Target = "" }
- },
- BasePath = context.Directory("./"),
- OutputDirectory = parameters.NugetRoot
- },
- ///////////////////////////////////////////////////////////////////////////////
- // Avalonia.LinuxFramebuffer
- ///////////////////////////////////////////////////////////////////////////////
- new NuGetPackSettings()
- {
- Id = "Avalonia.LinuxFramebuffer",
- Dependencies = new []
- {
- new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.Skia", Version = parameters.Version }
- },
- Files = new []
- {
- new NuSpecContent { Source = "Avalonia.LinuxFramebuffer/bin/" + parameters.DirSuffix + "/netstandard2.0/Avalonia.LinuxFramebuffer.dll", Target = "lib/netstandard2.0" }
- },
- BasePath = context.Directory("./src/Linux/"),
- OutputDirectory = parameters.NugetRoot
- },
- ///////////////////////////////////////////////////////////////////////////////
- // Avalonia.Native
- ///////////////////////////////////////////////////////////////////////////////
- new NuGetPackSettings()
- {
- Id = "Avalonia.Native",
- Dependencies = new []
- {
- new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version }
- },
- Files = new []
- {
- new NuSpecContent { Source = "Avalonia.Native.dll", Target = "lib/netstandard2.0" }
- },
- BasePath = context.Directory("./src/Avalonia.Native/bin/" + parameters.DirSuffix + "/netstandard2.0"),
- OutputDirectory = parameters.NugetRoot
- },
- };
-
- var nuspecNuGetSettingInterop = new NuGetPackSettings()
- {
- Id = "Avalonia.Win32.Interoperability",
- Dependencies = new []
- {
- new NuSpecDependency() { Id = "Avalonia.Win32", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.Direct2D1", Version = parameters.Version },
- new NuSpecDependency() { Id = "SharpDX.Direct3D9", Version = SharpDXDirect3D9Version },
- },
- Files = new []
- {
- new NuSpecContent { Source = "Avalonia.Win32.Interop/bin/" + parameters.DirSuffix + "/net461/Avalonia.Win32.Interop.dll", Target = "lib/net461" }
- },
- BasePath = context.Directory("./src/Windows"),
- OutputDirectory = parameters.NugetRoot
- };
-
- NuspecNuGetSettings = new List();
-
- NuspecNuGetSettings.AddRange(nuspecNuGetSettingsCore);
- NuspecNuGetSettings.AddRange(nuspecNuGetSettingsDesktop);
-
- if (parameters.IsRunningOnWindows) {
- NuspecNuGetSettings.Add(nuspecNuGetSettingInterop);
- NuspecNuGetSettings.AddRange(nuspecNuGetSettingsMobile);
- }
-
- NuspecNuGetSettings.ForEach((nuspec) => SetNuGetNuspecCommonProperties(nuspec));
-
- NugetPackages = NuspecNuGetSettings.Select(nuspec => {
- return nuspec.OutputDirectory.CombineWithFilePath(string.Concat(nuspec.Id, ".", nuspec.Version, ".nupkg"));
- }).ToArray();
-
- BinFiles = NuspecNuGetSettings.SelectMany(nuspec => {
- return nuspec.Files.Select(file => {
- return ((DirectoryPath)nuspec.BasePath).CombineWithFilePath(file.Source);
- });
- }).GroupBy(f => f.FullPath).Select(g => g.First()).ToArray();
- }
-}
diff --git a/packages/Avalonia/Avalonia.csproj b/packages/Avalonia/Avalonia.csproj
new file mode 100644
index 0000000000..ae209f085e
--- /dev/null
+++ b/packages/Avalonia/Avalonia.csproj
@@ -0,0 +1,36 @@
+
+
+ netstandard2.0;net461;netcoreapp2.0
+
+
+
+
+
+
+
+ ../../src/tools
+
+
+
+
+
+
+ <_PackageFiles Include="$(DesignerHostAppPath)/Avalonia.Designer.HostApp/bin/$(Configuration)/netcoreapp2.0/Avalonia.Designer.HostApp.dll">
+ tools/netcoreapp2.0/designer
+ false
+ None
+
+ <_PackageFiles Include="$(DesignerHostAppPath)/Avalonia.Designer.HostApp/bin/$(Configuration)/net461/Avalonia.Designer.HostApp.exe">
+ tools/net461/designer
+ false
+ None
+
+
+
+
+
+
+
+
diff --git a/samples/BindingDemo/App.config b/samples/BindingDemo/App.config
deleted file mode 100644
index 538be69997..0000000000
--- a/samples/BindingDemo/App.config
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/samples/BindingDemo/BindingDemo.csproj b/samples/BindingDemo/BindingDemo.csproj
index f7568b9c51..b28ab5fd8a 100644
--- a/samples/BindingDemo/BindingDemo.csproj
+++ b/samples/BindingDemo/BindingDemo.csproj
@@ -4,27 +4,8 @@
netcoreapp2.0;net461
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -32,4 +13,5 @@
+
diff --git a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj
index 86030bf200..272632e7eb 100644
--- a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj
+++ b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj
@@ -155,4 +155,5 @@
+
diff --git a/samples/ControlCatalog.Desktop/App.config b/samples/ControlCatalog.Desktop/App.config
deleted file mode 100644
index cd4593817b..0000000000
--- a/samples/ControlCatalog.Desktop/App.config
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj b/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj
index d60d087393..054de2a05f 100644
--- a/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj
+++ b/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj
@@ -6,16 +6,9 @@
-
-
-
-
-
-
-
diff --git a/samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj b/samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj
index ec841db5b2..7e2c707e91 100644
--- a/samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj
+++ b/samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj
@@ -6,10 +6,12 @@
-
-
+
-
\ No newline at end of file
+
+
+
+
diff --git a/samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj b/samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj
index 6754cdf9a9..7596e4cfe2 100644
--- a/samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj
+++ b/samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj
@@ -176,4 +176,5 @@
+
diff --git a/samples/ControlCatalog/App.config b/samples/ControlCatalog/App.config
deleted file mode 100644
index 0c47592f2c..0000000000
--- a/samples/ControlCatalog/App.config
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/samples/ControlCatalog/ControlCatalog.csproj b/samples/ControlCatalog/ControlCatalog.csproj
index 61f2443eb7..d0a746f87d 100644
--- a/samples/ControlCatalog/ControlCatalog.csproj
+++ b/samples/ControlCatalog/ControlCatalog.csproj
@@ -19,19 +19,8 @@
-
-
-
-
-
-
-
-
-
+
-
-
-
diff --git a/samples/Directory.Build.props b/samples/Directory.Build.props
index 7325bab2a3..b9075b957b 100644
--- a/samples/Directory.Build.props
+++ b/samples/Directory.Build.props
@@ -1,3 +1,6 @@
+
+ false
+
-
\ No newline at end of file
+
diff --git a/samples/Previewer/Previewer.csproj b/samples/Previewer/Previewer.csproj
index b4dda473f2..2cdde0c945 100644
--- a/samples/Previewer/Previewer.csproj
+++ b/samples/Previewer/Previewer.csproj
@@ -8,19 +8,9 @@
%(Filename)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
diff --git a/samples/RemoteDemo/RemoteDemo.csproj b/samples/RemoteDemo/RemoteDemo.csproj
index 2487c66e41..046999e06e 100644
--- a/samples/RemoteDemo/RemoteDemo.csproj
+++ b/samples/RemoteDemo/RemoteDemo.csproj
@@ -6,20 +6,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/samples/RenderDemo/RenderDemo.csproj b/samples/RenderDemo/RenderDemo.csproj
index f7568b9c51..b28ab5fd8a 100644
--- a/samples/RenderDemo/RenderDemo.csproj
+++ b/samples/RenderDemo/RenderDemo.csproj
@@ -4,27 +4,8 @@
netcoreapp2.0;net461
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -32,4 +13,5 @@
+
diff --git a/samples/VirtualizationDemo/App.config b/samples/VirtualizationDemo/App.config
deleted file mode 100644
index cd4593817b..0000000000
--- a/samples/VirtualizationDemo/App.config
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/samples/VirtualizationDemo/VirtualizationDemo.csproj b/samples/VirtualizationDemo/VirtualizationDemo.csproj
index f7568b9c51..b28ab5fd8a 100644
--- a/samples/VirtualizationDemo/VirtualizationDemo.csproj
+++ b/samples/VirtualizationDemo/VirtualizationDemo.csproj
@@ -4,27 +4,8 @@
netcoreapp2.0;net461
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -32,4 +13,5 @@
+
diff --git a/samples/interop/Direct3DInteropSample/Direct3DInteropSample.csproj b/samples/interop/Direct3DInteropSample/Direct3DInteropSample.csproj
index e0f3e92c74..3e318278c1 100644
--- a/samples/interop/Direct3DInteropSample/Direct3DInteropSample.csproj
+++ b/samples/interop/Direct3DInteropSample/Direct3DInteropSample.csproj
@@ -22,13 +22,11 @@
-
-
-
-
\ No newline at end of file
+
+
diff --git a/samples/interop/WindowsInteropTest/WindowsInteropTest.csproj b/samples/interop/WindowsInteropTest/WindowsInteropTest.csproj
index 66a92bb9d6..33c7b85f06 100644
--- a/samples/interop/WindowsInteropTest/WindowsInteropTest.csproj
+++ b/samples/interop/WindowsInteropTest/WindowsInteropTest.csproj
@@ -112,14 +112,14 @@
{799a7bb5-3c2c-48b6-85a7-406a12c420da}
Avalonia.DesignerSupport
+
+ {878fefe0-cd14-41cb-90b0-dbcb163e8f15}
+ Avalonia.DesktopRuntime
+
{7062ae20-5dcc-4442-9645-8195bdece63e}
Avalonia.Diagnostics
-
- {4a1abb09-9047-4bd5-a4ad-a055e52c5ee0}
- Avalonia.DotNetFrameworkRuntime
-
{62024b2d-53eb-4638-b26b-85eeaa54866e}
Avalonia.Input
@@ -186,4 +186,5 @@
+
\ No newline at end of file
diff --git a/src/Android/Avalonia.Android/Avalonia.Android.csproj b/src/Android/Avalonia.Android/Avalonia.Android.csproj
index 3fa14055db..9c3d4fb3a1 100644
--- a/src/Android/Avalonia.Android/Avalonia.Android.csproj
+++ b/src/Android/Avalonia.Android/Avalonia.Android.csproj
@@ -4,14 +4,7 @@
true
-
-
-
-
-
-
-
-
+
diff --git a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
index 48a7d42fc8..b493fd1ef2 100644
--- a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
+++ b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
@@ -153,4 +153,5 @@
+
diff --git a/src/Avalonia.Animation/Avalonia.Animation.csproj b/src/Avalonia.Animation/Avalonia.Animation.csproj
index 46e41dd32a..3b6d1c1b33 100644
--- a/src/Avalonia.Animation/Avalonia.Animation.csproj
+++ b/src/Avalonia.Animation/Avalonia.Animation.csproj
@@ -1,9 +1,10 @@
netstandard2.0
+ false
-
\ No newline at end of file
+
diff --git a/src/Avalonia.Base/Avalonia.Base.csproj b/src/Avalonia.Base/Avalonia.Base.csproj
index 3d13169aa8..a72d20a57c 100644
--- a/src/Avalonia.Base/Avalonia.Base.csproj
+++ b/src/Avalonia.Base/Avalonia.Base.csproj
@@ -4,6 +4,7 @@
Avalonia.Base
Avalonia
True
+ false
diff --git a/src/Avalonia.Controls/Avalonia.Controls.csproj b/src/Avalonia.Controls/Avalonia.Controls.csproj
index 044ed47920..fddd4403e9 100644
--- a/src/Avalonia.Controls/Avalonia.Controls.csproj
+++ b/src/Avalonia.Controls/Avalonia.Controls.csproj
@@ -1,6 +1,7 @@
netstandard2.0
+ false
@@ -14,4 +15,4 @@
-
\ No newline at end of file
+
diff --git a/src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj b/src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj
index 5ccb98b64d..e732a7eef0 100644
--- a/src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj
+++ b/src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj
@@ -1,32 +1,13 @@
netstandard2.0
+ false
0.7.0
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
- bin\Debug\Avalonia.DesignerSupport.xml
- CS1591;CS0067
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
- bin\Release\Avalonia.DesignerSupport.xml
CS1591
@@ -42,6 +23,5 @@
-
-
\ No newline at end of file
+
diff --git a/src/Avalonia.Desktop/AppBuilderDesktopExtensions.cs b/src/Avalonia.Desktop/AppBuilderDesktopExtensions.cs
new file mode 100644
index 0000000000..4db6de353f
--- /dev/null
+++ b/src/Avalonia.Desktop/AppBuilderDesktopExtensions.cs
@@ -0,0 +1,57 @@
+using Avalonia.Controls;
+using Avalonia.Platform;
+
+namespace Avalonia
+{
+ public static class AppBuilderDesktopExtensions
+ {
+ public static TAppBuilder UsePlatformDetect(this TAppBuilder builder)
+ where TAppBuilder : AppBuilderBase, new()
+ {
+ var os = builder.RuntimePlatform.GetRuntimeInfo().OperatingSystem;
+
+ // We don't have the ability to load every assembly right now, so we are
+ // stuck with manual configuration here
+ // Helpers are extracted to separate methods to take the advantage of the fact
+ // that CLR doesn't try to load dependencies before referencing method is jitted
+ // Additionally, by having a hard reference to each assembly,
+ // we verify that the assemblies are in the final .deps.json file
+ // so .NET Core knows where to load the assemblies from,.
+ if (os == OperatingSystemType.WinNT)
+ {
+ LoadWin32(builder);
+ LoadSkia(builder);
+ }
+ else if(os==OperatingSystemType.OSX)
+ {
+ LoadAvaloniaNative(builder);
+ LoadSkia(builder);
+ }
+ else
+ {
+ LoadGtk3(builder);
+ LoadSkia(builder);
+ }
+ return builder;
+ }
+
+ static void LoadAvaloniaNative(TAppBuilder builder)
+ where TAppBuilder : AppBuilderBase, new()
+ => builder.UseAvaloniaNative();
+ static void LoadWin32(TAppBuilder builder)
+ where TAppBuilder : AppBuilderBase, new()
+ => builder.UseWin32();
+
+ static void LoadGtk3(TAppBuilder builder)
+ where TAppBuilder : AppBuilderBase, new()
+ => builder.UseGtk3();
+
+ static void LoadDirect2D1(TAppBuilder builder)
+ where TAppBuilder : AppBuilderBase, new()
+ => builder.UseDirect2D1();
+
+ static void LoadSkia(TAppBuilder builder)
+ where TAppBuilder : AppBuilderBase, new()
+ => builder.UseSkia();
+ }
+}
diff --git a/src/Avalonia.Desktop/Avalonia.Desktop.csproj b/src/Avalonia.Desktop/Avalonia.Desktop.csproj
new file mode 100644
index 0000000000..3fc20150a7
--- /dev/null
+++ b/src/Avalonia.Desktop/Avalonia.Desktop.csproj
@@ -0,0 +1,14 @@
+
+
+ netstandard2.0
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Avalonia.DotNetFrameworkRuntime/AppBuilder.cs b/src/Avalonia.DesktopRuntime/AppBuilder.cs
similarity index 98%
rename from src/Avalonia.DotNetFrameworkRuntime/AppBuilder.cs
rename to src/Avalonia.DesktopRuntime/AppBuilder.cs
index fe791e156b..dbe3767df6 100644
--- a/src/Avalonia.DotNetFrameworkRuntime/AppBuilder.cs
+++ b/src/Avalonia.DesktopRuntime/AppBuilder.cs
@@ -49,7 +49,7 @@ namespace Avalonia
/// Instructs the to use the best settings for the platform.
///
/// An instance.
- public AppBuilder UsePlatformDetect()
+ public AppBuilder UseSubsystemsFromStartupDirectory()
{
var os = RuntimePlatform.GetRuntimeInfo().OperatingSystem;
diff --git a/src/Avalonia.DesktopRuntime/Avalonia.DesktopRuntime.csproj b/src/Avalonia.DesktopRuntime/Avalonia.DesktopRuntime.csproj
new file mode 100644
index 0000000000..42d0b880d9
--- /dev/null
+++ b/src/Avalonia.DesktopRuntime/Avalonia.DesktopRuntime.csproj
@@ -0,0 +1,21 @@
+
+
+
+ net461;netcoreapp2.0
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Avalonia.DotNetCoreRuntime/RuntimeInfo.cs b/src/Avalonia.DesktopRuntime/RuntimeInfo.cs
similarity index 97%
rename from src/Avalonia.DotNetCoreRuntime/RuntimeInfo.cs
rename to src/Avalonia.DesktopRuntime/RuntimeInfo.cs
index 0e70f09296..82eaadb895 100644
--- a/src/Avalonia.DotNetCoreRuntime/RuntimeInfo.cs
+++ b/src/Avalonia.DesktopRuntime/RuntimeInfo.cs
@@ -21,9 +21,12 @@ namespace Avalonia.Shared.PlatformSupport
return new RuntimePlatformInfo
{
+#if NETCOREAPP2_0
IsCoreClr = true,
- IsDesktop = true,
+#elif NET461
IsDotNetFramework = false,
+#endif
+ IsDesktop = true,
IsMono = false,
IsMobile = false,
IsUnix = os != OperatingSystemType.WinNT,
diff --git a/src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj b/src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj
index b807571a38..a968ff03bf 100644
--- a/src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj
+++ b/src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj
@@ -1,10 +1,8 @@
netstandard2.0
+ false
-
-
-
@@ -20,9 +18,4 @@
-
-
- MSBuild:Compile
-
-
-
\ No newline at end of file
+
diff --git a/src/Avalonia.DotNetCoreRuntime/AppBuilder.cs b/src/Avalonia.DotNetCoreRuntime/AppBuilder.cs
deleted file mode 100644
index 87f8a8de8d..0000000000
--- a/src/Avalonia.DotNetCoreRuntime/AppBuilder.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-using System.Reflection;
-using Avalonia.Controls;
-using Avalonia.Platform;
-using Avalonia.Shared.PlatformSupport;
-
-namespace Avalonia
-{
- ///
- /// Initializes platform-specific services for an .
- ///
- public sealed class AppBuilder : AppBuilderBase
- {
- ///
- /// Initializes a new instance of the class.
- ///
- public AppBuilder()
- : base(new StandardRuntimePlatform(),
- builder => StandardRuntimePlatformServices.Register(builder.Instance?.GetType()
- ?.GetTypeInfo().Assembly))
- {
- }
-
- ///
- /// Initializes a new instance of the class.
- ///
- /// The instance.
- public AppBuilder(Application app) : this()
- {
- Instance = app;
- }
-
- ///
- /// Instructs the to use the best settings for the platform.
- ///
- /// An instance.
- public AppBuilder UsePlatformDetect()
- {
- var os = RuntimePlatform.GetRuntimeInfo().OperatingSystem;
- //We don't have the ability to load every assembly right now, so we are
- //stuck with manual configuration here
- //Helpers are extracted to separate methods to take the advantage of the fact
- //that CLR doesn't try to load dependencies before referencing method is jitted
- if (os == OperatingSystemType.WinNT)
- LoadWin32();
- else if(os==OperatingSystemType.OSX)
- LoadAvaloniaNative();
- else
- LoadGtk3();
- this.UseSkia();
-
- return this;
- }
-
- void LoadAvaloniaNative() => this.UseAvaloniaNative();
- void LoadWin32() => this.UseWin32();
- void LoadGtk3() => this.UseGtk3();
- }
-}
diff --git a/src/Avalonia.DotNetCoreRuntime/Avalonia.DotNetCoreRuntime.csproj b/src/Avalonia.DotNetCoreRuntime/Avalonia.DotNetCoreRuntime.csproj
deleted file mode 100644
index 8b18a7e9f4..0000000000
--- a/src/Avalonia.DotNetCoreRuntime/Avalonia.DotNetCoreRuntime.csproj
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
- netcoreapp2.0
- $(DefineConstants);DOTNETCORE
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Avalonia.DotNetFrameworkRuntime/Avalonia.DotNetFrameworkRuntime.csproj b/src/Avalonia.DotNetFrameworkRuntime/Avalonia.DotNetFrameworkRuntime.csproj
deleted file mode 100644
index 34022a87f6..0000000000
--- a/src/Avalonia.DotNetFrameworkRuntime/Avalonia.DotNetFrameworkRuntime.csproj
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- net461
- bin\$(Configuration)\Avalonia.DotNetFrameworkRuntime.xml
- $(DefineConstants);FULLDOTNET
- true
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Avalonia.DotNetFrameworkRuntime/RuntimeInfo.cs b/src/Avalonia.DotNetFrameworkRuntime/RuntimeInfo.cs
deleted file mode 100644
index 41545a146f..0000000000
--- a/src/Avalonia.DotNetFrameworkRuntime/RuntimeInfo.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-using Avalonia.Platform;
-
-namespace Avalonia.Shared.PlatformSupport
-{
- internal partial class StandardRuntimePlatform
- {
- private static readonly Lazy Info = new Lazy(() =>
- {
- var isMono = Type.GetType("Mono.Runtime") != null;
- var isUnix = Environment.OSVersion.Platform == PlatformID.Unix ||
- Environment.OSVersion.Platform == PlatformID.MacOSX;
- return new RuntimePlatformInfo
- {
- IsCoreClr = false,
- IsDesktop = true,
- IsDotNetFramework = !isMono,
- IsMono = isMono,
- IsMobile = false,
- IsUnix = isUnix,
- OperatingSystem = isUnix ? DetectUnix() : OperatingSystemType.WinNT,
- };
- });
-
- [DllImport("libc")]
- static extern int uname(IntPtr buf);
-
- static OperatingSystemType DetectUnix()
- {
- var buffer = Marshal.AllocHGlobal(0x1000);
- uname(buffer);
- var unixName = Marshal.PtrToStringAnsi(buffer);
- Marshal.FreeHGlobal(buffer);
- if(unixName=="Darwin")
- return OperatingSystemType.OSX;
- if (unixName == "Linux")
- return OperatingSystemType.Linux;
- return OperatingSystemType.Unknown;
- }
-
- public RuntimePlatformInfo GetRuntimeInfo() => Info.Value;
- }
-}
diff --git a/src/Avalonia.Input/Avalonia.Input.csproj b/src/Avalonia.Input/Avalonia.Input.csproj
index 86d081abb8..8078e2b598 100644
--- a/src/Avalonia.Input/Avalonia.Input.csproj
+++ b/src/Avalonia.Input/Avalonia.Input.csproj
@@ -1,6 +1,7 @@
netstandard2.0
+ false
@@ -10,4 +11,4 @@
-
\ No newline at end of file
+
diff --git a/src/Avalonia.Interactivity/Avalonia.Interactivity.csproj b/src/Avalonia.Interactivity/Avalonia.Interactivity.csproj
index 66f1e8cc26..bbe450c9c0 100644
--- a/src/Avalonia.Interactivity/Avalonia.Interactivity.csproj
+++ b/src/Avalonia.Interactivity/Avalonia.Interactivity.csproj
@@ -1,6 +1,7 @@
netstandard2.0
+ false
diff --git a/src/Avalonia.Layout/Avalonia.Layout.csproj b/src/Avalonia.Layout/Avalonia.Layout.csproj
index befa22ec46..5e33fffa5c 100644
--- a/src/Avalonia.Layout/Avalonia.Layout.csproj
+++ b/src/Avalonia.Layout/Avalonia.Layout.csproj
@@ -1,6 +1,7 @@
netstandard2.0
+ false
@@ -8,4 +9,4 @@
-
\ No newline at end of file
+
diff --git a/src/Avalonia.Logging.Serilog/Avalonia.Logging.Serilog.csproj b/src/Avalonia.Logging.Serilog/Avalonia.Logging.Serilog.csproj
index 456cd8c568..2ad0f7d511 100644
--- a/src/Avalonia.Logging.Serilog/Avalonia.Logging.Serilog.csproj
+++ b/src/Avalonia.Logging.Serilog/Avalonia.Logging.Serilog.csproj
@@ -1,10 +1,11 @@
netstandard2.0
+ false
-
\ No newline at end of file
+
diff --git a/src/Avalonia.Native/.gitignore b/src/Avalonia.Native/.gitignore
deleted file mode 100644
index 876fdb5f40..0000000000
--- a/src/Avalonia.Native/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-Generated
diff --git a/src/Avalonia.Native/Avalonia.Native.csproj b/src/Avalonia.Native/Avalonia.Native.csproj
index 33463e27f6..9d6a82a2fb 100644
--- a/src/Avalonia.Native/Avalonia.Native.csproj
+++ b/src/Avalonia.Native/Avalonia.Native.csproj
@@ -1,31 +1,26 @@
+ false
+ true
netstandard2.0
/usr/bin/castxml
/usr/local/bin/castxml
-
true
- $(MSBuildThisFileDirectory)/Generated
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- runtimes/osx/native/libAvaloniaNative.dylib
- true
- PreserveNewest
-
+
+
+ runtimes/osx/native/libAvaloniaNative.dylib
+ true
+ PreserveNewest
+
+
+
+
+
+
+
+
diff --git a/src/Avalonia.Native/Avalonia.Native.targets b/src/Avalonia.Native/Avalonia.Native.targets
deleted file mode 100644
index 07c1e17c53..0000000000
--- a/src/Avalonia.Native/Avalonia.Native.targets
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
- libAvalonia.Native.OSX.dylib
- PreserveNewest
-
-
-
\ No newline at end of file
diff --git a/src/Avalonia.Native/Mappings.xml b/src/Avalonia.Native/Mappings.xml
index 9e6c6512c7..7ac6377f78 100644
--- a/src/Avalonia.Native/Mappings.xml
+++ b/src/Avalonia.Native/Mappings.xml
@@ -3,7 +3,7 @@
Avalonia.Native
Avalonia.Native.Interop
SharpGen.Runtime.COM
- $(THIS_CONFIG_PATH)/headers
+ $(THIS_CONFIG_PATH)/../../native/Avalonia.Native/inc
-
-
-
-
diff --git a/src/Avalonia.Native/Properties/AssemblyInfo.cs b/src/Avalonia.Native/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..d4766e45dc
--- /dev/null
+++ b/src/Avalonia.Native/Properties/AssemblyInfo.cs
@@ -0,0 +1,4 @@
+using Avalonia.Native;
+using Avalonia.Platform;
+
+[assembly: ExportWindowingSubsystem(OperatingSystemType.OSX, 1, "AvaloniaNative", typeof(AvaloniaNativePlatform), nameof(AvaloniaNativePlatform.Initialize))]
diff --git a/src/Avalonia.ReactiveUI/Avalonia.ReactiveUI.csproj b/src/Avalonia.ReactiveUI/Avalonia.ReactiveUI.csproj
index ae1ef60464..1851f9fb70 100644
--- a/src/Avalonia.ReactiveUI/Avalonia.ReactiveUI.csproj
+++ b/src/Avalonia.ReactiveUI/Avalonia.ReactiveUI.csproj
@@ -3,15 +3,8 @@
netstandard2.0
-
-
-
-
-
-
-
-
+
-
\ No newline at end of file
+
diff --git a/src/Avalonia.Styling/Avalonia.Styling.csproj b/src/Avalonia.Styling/Avalonia.Styling.csproj
index 1050d20523..5355326083 100644
--- a/src/Avalonia.Styling/Avalonia.Styling.csproj
+++ b/src/Avalonia.Styling/Avalonia.Styling.csproj
@@ -3,10 +3,11 @@
netstandard2.0
Avalonia.Styling
Avalonia
+ false
-
\ No newline at end of file
+
diff --git a/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj b/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj
index eceafc2371..638aba4d69 100644
--- a/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj
+++ b/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj
@@ -1,6 +1,7 @@
netstandard2.0
+ false
@@ -15,4 +16,4 @@
-
\ No newline at end of file
+
diff --git a/src/Avalonia.Visuals/Avalonia.Visuals.csproj b/src/Avalonia.Visuals/Avalonia.Visuals.csproj
index c88001cc0a..85836a785f 100644
--- a/src/Avalonia.Visuals/Avalonia.Visuals.csproj
+++ b/src/Avalonia.Visuals/Avalonia.Visuals.csproj
@@ -2,6 +2,7 @@
netstandard2.0
Avalonia
+ false
@@ -10,4 +11,4 @@
-
\ No newline at end of file
+
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index d18a0e72ba..a3f0c01a51 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -1,4 +1,5 @@
+
-
\ No newline at end of file
+
diff --git a/src/Gtk/Avalonia.Gtk3/Avalonia.Gtk3.csproj b/src/Gtk/Avalonia.Gtk3/Avalonia.Gtk3.csproj
index aa569a5e6a..0885ccccfa 100644
--- a/src/Gtk/Avalonia.Gtk3/Avalonia.Gtk3.csproj
+++ b/src/Gtk/Avalonia.Gtk3/Avalonia.Gtk3.csproj
@@ -5,11 +5,6 @@
$(DefineConstants);GTK3_PINVOKE
-
-
-
-
-
-
+
-
\ No newline at end of file
+
diff --git a/src/Linux/Avalonia.LinuxFramebuffer/Avalonia.LinuxFramebuffer.csproj b/src/Linux/Avalonia.LinuxFramebuffer/Avalonia.LinuxFramebuffer.csproj
index fb1fbdaf93..c622bbb8c5 100644
--- a/src/Linux/Avalonia.LinuxFramebuffer/Avalonia.LinuxFramebuffer.csproj
+++ b/src/Linux/Avalonia.LinuxFramebuffer/Avalonia.LinuxFramebuffer.csproj
@@ -4,11 +4,7 @@
true
-
-
-
-
-
+
-
\ No newline at end of file
+
diff --git a/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj b/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj
index c1b7f54aa1..04400e3714 100644
--- a/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj
+++ b/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj
@@ -4,23 +4,7 @@
PCL;NETSTANDARD;NETSTANDARD2_0;HAS_TYPE_CONVERTER;HAS_CUSTOM_ATTRIBUTE_PROVIDER
False
false
-
-
- true
- full
- false
- bin\Debug\
- prompt
- 4
- CS1591
-
-
- pdbonly
- true
- bin\Release\
- prompt
- 4
- bin\Release\Avalonia.Markup.Xaml.xml
+ false
CS1591
@@ -78,4 +62,4 @@
-
\ No newline at end of file
+
diff --git a/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj b/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj
index 673eb51901..a5cb5a8c06 100644
--- a/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj
+++ b/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj
@@ -2,6 +2,7 @@
netstandard2.0
Avalonia
+ false
diff --git a/src/Shared/PlatformSupport/StandardRuntimePlatform.cs b/src/Shared/PlatformSupport/StandardRuntimePlatform.cs
index 613cf2baf6..186c55d9eb 100644
--- a/src/Shared/PlatformSupport/StandardRuntimePlatform.cs
+++ b/src/Shared/PlatformSupport/StandardRuntimePlatform.cs
@@ -113,7 +113,7 @@ namespace Avalonia.Shared.PlatformSupport
-#if FULLDOTNET || DOTNETCORE
+#if NET461 || NETCOREAPP2_0
[DllImport("libc", SetLastError = true)]
private static extern IntPtr mmap(IntPtr addr, IntPtr length, int prot, int flags, int fd, IntPtr offset);
[DllImport("libc", SetLastError = true)]
diff --git a/src/Skia/Avalonia.Skia/Avalonia.Skia.csproj b/src/Skia/Avalonia.Skia/Avalonia.Skia.csproj
index d125ca0be4..0479a74937 100644
--- a/src/Skia/Avalonia.Skia/Avalonia.Skia.csproj
+++ b/src/Skia/Avalonia.Skia/Avalonia.Skia.csproj
@@ -7,16 +7,9 @@
true
-
-
-
-
-
-
-
-
+
-
\ No newline at end of file
+
diff --git a/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj b/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj
index 426a9a85a3..70b2703f5e 100644
--- a/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj
+++ b/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj
@@ -8,17 +8,10 @@
-
-
-
-
-
-
-
-
+
-
\ No newline at end of file
+
diff --git a/src/Windows/Avalonia.Direct2D1/app.config b/src/Windows/Avalonia.Direct2D1/app.config
deleted file mode 100644
index 60a1012655..0000000000
--- a/src/Windows/Avalonia.Direct2D1/app.config
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj b/src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj
index 27f6b502d2..0d0dd98a77 100644
--- a/src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj
+++ b/src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj
@@ -1,23 +1,14 @@
-
+
net461
true
true
true
true
+ Avalonia.Win32.Interoperability
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj b/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj
index 1fb566dad0..d1046c6133 100644
--- a/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj
+++ b/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj
@@ -4,15 +4,7 @@
true
-
-
-
-
-
-
-
-
-
+
diff --git a/src/Windows/Avalonia.Win32/Win32Platform.cs b/src/Windows/Avalonia.Win32/Win32Platform.cs
index 06fe1ad058..103ca57cdb 100644
--- a/src/Windows/Avalonia.Win32/Win32Platform.cs
+++ b/src/Windows/Avalonia.Win32/Win32Platform.cs
@@ -247,7 +247,7 @@ namespace Avalonia.Win32
var user32 = LoadLibrary("user32.dll");
var method = GetProcAddress(user32, nameof(SetProcessDpiAwarenessContext));
- if (method != null)
+ if (method != IntPtr.Zero)
{
if (SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2) ||
SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE))
@@ -259,7 +259,7 @@ namespace Avalonia.Win32
var shcore = LoadLibrary("shcore.dll");
method = GetProcAddress(shcore, nameof(SetProcessDpiAwareness));
- if (method != null)
+ if (method != IntPtr.Zero)
{
SetProcessDpiAwareness(PROCESS_DPI_AWARENESS.PROCESS_PER_MONITOR_DPI_AWARE);
return;
diff --git a/src/iOS/Avalonia.iOS/Avalonia.iOS.csproj b/src/iOS/Avalonia.iOS/Avalonia.iOS.csproj
index f67848a1ee..683c256b7b 100644
--- a/src/iOS/Avalonia.iOS/Avalonia.iOS.csproj
+++ b/src/iOS/Avalonia.iOS/Avalonia.iOS.csproj
@@ -5,14 +5,7 @@
true
-
-
-
-
-
-
-
-
+
diff --git a/src/iOS/Avalonia.iOSTestApplication/Avalonia.iOSTestApplication.csproj b/src/iOS/Avalonia.iOSTestApplication/Avalonia.iOSTestApplication.csproj
index 9a6b624a66..34c8ae7605 100644
--- a/src/iOS/Avalonia.iOSTestApplication/Avalonia.iOSTestApplication.csproj
+++ b/src/iOS/Avalonia.iOSTestApplication/Avalonia.iOSTestApplication.csproj
@@ -187,4 +187,5 @@
+
diff --git a/src/tools/Avalonia.Designer.HostApp.NetFX/Avalonia.Designer.HostApp.NetFX.csproj b/src/tools/Avalonia.Designer.HostApp.NetFX/Avalonia.Designer.HostApp.NetFX.csproj
deleted file mode 100644
index b34c9891ad..0000000000
--- a/src/tools/Avalonia.Designer.HostApp.NetFX/Avalonia.Designer.HostApp.NetFX.csproj
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
- Exe
- net461
- Avalonia.Designer.HostApp
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/tools/Avalonia.Designer.HostApp.NetFX/Program.cs b/src/tools/Avalonia.Designer.HostApp.NetFX/Program.cs
deleted file mode 100644
index da1c5a1da3..0000000000
--- a/src/tools/Avalonia.Designer.HostApp.NetFX/Program.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System;
-using System.IO;
-using System.Reflection;
-
-namespace Avalonia.Designer.HostApp.NetFX
-{
- class Program
- {
- private static string s_appDir;
- public static void Main(string[] args)
- {
- s_appDir = Directory.GetCurrentDirectory();
- AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
- foreach (var dll in Directory.GetFiles(s_appDir, "*.dll"))
- {
- try
- {
- Console.WriteLine("Loading " + dll);
- Assembly.LoadFile(dll);
- }
- catch
- {
-
- }
- }
- Exec(args);
- }
-
- static void Exec(string[] args)
- {
- Avalonia.DesignerSupport.Remote.RemoteDesignerEntryPoint.Main(args);
- }
-
- private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
- {
- string assemblyPath = Path.Combine(s_appDir, new AssemblyName(args.Name).Name + ".dll");
- if (File.Exists(assemblyPath) == false) return null;
- Assembly assembly = Assembly.LoadFrom(assemblyPath);
- return assembly;
- }
- }
-}
diff --git a/src/tools/Avalonia.Designer.HostApp.NetFX/Properties/launchSettings.json b/src/tools/Avalonia.Designer.HostApp.NetFX/Properties/launchSettings.json
deleted file mode 100644
index 493caa2693..0000000000
--- a/src/tools/Avalonia.Designer.HostApp.NetFX/Properties/launchSettings.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "profiles": {
- "Avalonia.Designer.HostApp.NetFX": {
- "commandName": "Project",
- "commandLineArgs": "--transport tcp-bson://127.0.0.1:25000/ bin/Debug/net461/ControlCatalog.Desktop.exe"
- }
- }
-}
\ No newline at end of file
diff --git a/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj b/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj
index 6ef1e1315e..1c7077870a 100644
--- a/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj
+++ b/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj
@@ -1,8 +1,7 @@
Exe
- netcoreapp2.0
-
+ net461;netcoreapp2.0
@@ -15,10 +14,10 @@
-
-
-
\ No newline at end of file
+
+
+
diff --git a/src/tools/Avalonia.Designer.HostApp/Program.cs b/src/tools/Avalonia.Designer.HostApp/Program.cs
index 29640ffc6f..3163e1fbc3 100644
--- a/src/tools/Avalonia.Designer.HostApp/Program.cs
+++ b/src/tools/Avalonia.Designer.HostApp/Program.cs
@@ -1,10 +1,47 @@
-
+using System;
+using System.IO;
+using System.Reflection;
namespace Avalonia.Designer.HostApp
{
class Program
{
- public static void Main(string[] args)
- => Avalonia.DesignerSupport.Remote.RemoteDesignerEntryPoint.Main(args);
+#if NET461
+ private static string s_appDir;
+
+ private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
+ {
+ string assemblyPath = Path.Combine(s_appDir, new AssemblyName(args.Name).Name + ".dll");
+ if (File.Exists(assemblyPath) == false) return null;
+ return Assembly.LoadFile(assemblyPath);
+ }
+
+ public static void Main(string[] args)
+ {
+ s_appDir = Directory.GetCurrentDirectory();
+ AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
+ foreach (var dll in Directory.GetFiles(s_appDir, "*.dll"))
+ {
+ try
+ {
+ Console.WriteLine("Loading " + dll);
+ Assembly.LoadFile(dll);
+ }
+ catch
+ {
+
+ }
+ }
+ Exec(args);
+ }
+
+ static void Exec(string[] args)
+#else
+ public static void Main(string[] args)
+#endif
+ {
+ Avalonia.DesignerSupport.Remote.RemoteDesignerEntryPoint.Main(args);
+ }
+
}
-}
\ No newline at end of file
+}
diff --git a/src/tools/Directory.Build.props b/src/tools/Directory.Build.props
new file mode 100644
index 0000000000..6ce26913b0
--- /dev/null
+++ b/src/tools/Directory.Build.props
@@ -0,0 +1,6 @@
+
+
+
+ false
+
+
diff --git a/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj b/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj
index 01729f4899..6550a23b7b 100644
--- a/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj
+++ b/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj
@@ -1,9 +1,9 @@
Exe
- netcoreapp2.0
netcoreapp2.0
Exe
+ false
@@ -23,4 +23,4 @@
-
\ No newline at end of file
+
diff --git a/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj b/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj
index dd33ee831d..ebe64b89ce 100644
--- a/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj
+++ b/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj
@@ -1,7 +1,8 @@
Exe
- netcoreapp2.0
+ netcoreapp2.0
+ false
@@ -14,7 +15,8 @@
-
+
+
@@ -27,11 +29,8 @@
-
-
-
-
+
-
\ No newline at end of file
+
diff --git a/tests/Avalonia.DesignerSupport.Tests/DesignerSupportTests.cs b/tests/Avalonia.DesignerSupport.Tests/DesignerSupportTests.cs
index 5220d539d9..a01bbe0845 100644
--- a/tests/Avalonia.DesignerSupport.Tests/DesignerSupportTests.cs
+++ b/tests/Avalonia.DesignerSupport.Tests/DesignerSupportTests.cs
@@ -101,6 +101,7 @@ namespace Avalonia.DesignerSupport.Tests
RedirectStandardOutput = true,
RedirectStandardError = true,
CreateNoWindow = true,
+ WorkingDirectory = outputDir,
},
EnableRaisingEvents = true
})
@@ -117,7 +118,7 @@ namespace Avalonia.DesignerSupport.Tests
cancelled = true;
}
- Assert.True(cancelled);
+ Assert.True(cancelled, $"Message Not Received.");
Assert.NotEqual(0, handle);
proc.Kill();
proc.WaitForExit();
diff --git a/tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj b/tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj
index 42d99cc19a..ecc928461e 100644
--- a/tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj
+++ b/tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj
@@ -6,7 +6,7 @@
-
+
@@ -24,4 +24,4 @@
-
\ No newline at end of file
+
diff --git a/tests/Avalonia.Direct2D1.UnitTests/app.config b/tests/Avalonia.Direct2D1.UnitTests/app.config
deleted file mode 100644
index e4df6c253e..0000000000
--- a/tests/Avalonia.Direct2D1.UnitTests/app.config
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj b/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj
index ec8f1e6e8d..63f7f3ec0e 100644
--- a/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj
+++ b/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj
@@ -16,7 +16,6 @@
-
@@ -26,4 +25,4 @@
-
\ No newline at end of file
+
diff --git a/tests/Avalonia.Layout.UnitTests/app.config b/tests/Avalonia.Layout.UnitTests/app.config
deleted file mode 100644
index 01de951354..0000000000
--- a/tests/Avalonia.Layout.UnitTests/app.config
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj b/tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj
index 4a297a340d..a9452b4def 100644
--- a/tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj
+++ b/tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj
@@ -7,7 +7,7 @@
-
+
@@ -26,4 +26,4 @@
-
\ No newline at end of file
+
diff --git a/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj b/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj
index c189bbbe66..f065fcb63d 100644
--- a/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj
+++ b/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj
@@ -3,6 +3,7 @@
netstandard2.0
false
Library
+ false
@@ -20,4 +21,4 @@
-
\ No newline at end of file
+