diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index ba92e06..68d34ae 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -15,7 +15,7 @@
]
},
"fsharp.formatting.commandtool": {
- "version": "7.2.9",
+ "version": "9.0.1",
"commands": [
"fsdocs"
]
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ff4a5b8..e0965a4 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -28,8 +28,8 @@ jobs:
path: artifacts
- name: Test
run: |
- dotnet fake build -t Test
- dotnet fake build -t BuildTemplateProjects
+ dotnet fake build -t Test -- Release
+ dotnet fake build -t BuildTemplateProjects -- Release
build-macos:
name: CI (macOS)
@@ -40,14 +40,25 @@ jobs:
- uses: actions/setup-dotnet@v1
with:
dotnet-version: '6.0.300'
+ - name: setup-xamarin
+ uses: maxim-lobanov/setup-xamarin@v1
+ with:
+ mono-version: 6
+# xamarin-mac-version: 7
+ xcode-version: 12.x
+ # temporary workaround for https://github.com/xamarin/xamarin-macios/issues/10652 until Xamarin.Mac 7.4.0.10 lands in GitHub Actions
+ - name: setup-xamarin-mac-patched
+ run: |
+ curl -o xamarinmac.pkg 'https://bosstoragemirror.blob.core.windows.net/wrench/xcode12.4/a4c70e7d04e3904d17aa60f6d640eb048081c757/4477741/package/notarized/xamarin.mac-7.4.0.10.pkg'
+ sudo installer -pkg xamarinmac.pkg -target /
- name: Restore
run: |
dotnet tool restore
dotnet paket restore
- name: Build
- run: dotnet fake build
+ run: dotnet fake build -- Release
- name: Pack
- run: dotnet fake build -t PackAll
+ run: dotnet fake build -t PackAll -- Release
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
@@ -55,5 +66,5 @@ jobs:
path: artifacts/
- name: Test
run: |
- dotnet fake build -t Test
- dotnet fake build -t BuildTemplateProjects
\ No newline at end of file
+ dotnet fake build -t Test -- Release
+ dotnet fake build -t BuildTemplateProjects -- Release
diff --git a/CHANGELOG.md b/CHANGELOG.md
index dd89969..840a736 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
# Changelog
+## 0.3.2
+
+* WinForms, WPF - Fix a bug that happens under Windows high-DPI mode
+* Change targets to netcoreapp3.1
+
## 0.3.1
* WinForms - Fixed an issue that could cause apps to crash at startup in release mode (https://github.com/jwosty/Interstellar/issues/10 ; thanks to @amaitland for the fix)
diff --git a/Examples/Examples.macOS.WebKit/AppDelegate.fs b/Examples/Examples.macOS.WebKit.FullFramework/AppDelegate.fs
similarity index 100%
rename from Examples/Examples.macOS.WebKit/AppDelegate.fs
rename to Examples/Examples.macOS.WebKit.FullFramework/AppDelegate.fs
diff --git a/Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png b/Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png
similarity index 100%
rename from Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png
rename to Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png
diff --git a/Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png b/Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png
similarity index 100%
rename from Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png
rename to Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png
diff --git a/Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png b/Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png
similarity index 100%
rename from Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png
rename to Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png
diff --git a/Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png b/Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png
similarity index 100%
rename from Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png
rename to Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png
diff --git a/Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png b/Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png
similarity index 100%
rename from Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png
rename to Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png
diff --git a/Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png b/Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png
similarity index 100%
rename from Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png
rename to Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png
diff --git a/Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png b/Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png
similarity index 100%
rename from Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png
rename to Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png
diff --git a/Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png b/Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png
similarity index 100%
rename from Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png
rename to Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png
diff --git a/Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png b/Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png
similarity index 100%
rename from Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png
rename to Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png
diff --git a/Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png b/Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png
similarity index 100%
rename from Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png
rename to Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png
diff --git a/Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/Contents.json b/Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from Examples/Examples.macOS.WebKit/Assets.xcassets/AppIcon.appiconset/Contents.json
rename to Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/AppIcon.appiconset/Contents.json
diff --git a/Examples/Examples.macOS.WebKit/Assets.xcassets/Contents.json b/Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/Contents.json
similarity index 100%
rename from Examples/Examples.macOS.WebKit/Assets.xcassets/Contents.json
rename to Examples/Examples.macOS.WebKit.FullFramework/Assets.xcassets/Contents.json
diff --git a/Examples/Examples.macOS.WebKit/Entitlements.plist b/Examples/Examples.macOS.WebKit.FullFramework/Entitlements.plist
similarity index 100%
rename from Examples/Examples.macOS.WebKit/Entitlements.plist
rename to Examples/Examples.macOS.WebKit.FullFramework/Entitlements.plist
diff --git a/Examples/Examples.macOS.WebKit.FullFramework/Examples.macOS.WebKit.FullFramework.fsproj b/Examples/Examples.macOS.WebKit.FullFramework/Examples.macOS.WebKit.FullFramework.fsproj
new file mode 100644
index 0000000..47446a8
--- /dev/null
+++ b/Examples/Examples.macOS.WebKit.FullFramework/Examples.macOS.WebKit.FullFramework.fsproj
@@ -0,0 +1,277 @@
+
+
+
+ Debug
+ AnyCPU
+ {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{F2A71F9B-5D33-465A-A702-920D77279786}
+ Exe
+ Example.macOS.WebKit
+ InterstellarExample
+ prompt
+ {98BEAAC4-9ADD-4D08-B3A7-06BD5934A721}
+ v4.8
+ true
+
+
+ true
+ false
+ bin\Debug
+ DEBUG
+ prompt
+ false
+ Mac Developer
+ false
+ false
+ false
+ true
+ true
+
+
+
+
+
+
+
+
+ true
+ bin\Release
+
+
+ prompt
+ false
+ true
+ false
+ true
+ true
+ true
+ None
+ true
+
+
+
+
+
+
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {7D096C2C-0960-4754-9954-421832426807}
+ Interstellar.Core
+
+
+ {0332BEB2-0915-47CC-A709-49FC4C2B3DB5}
+ Examples.SharedCode
+
+
+ {DA9591A8-4189-4171-AF3F-85F1F3EA22A2}
+ Interstellar.MacOS.WebKit.FullFramework
+
+
+
+
+
+
+
+
+ ..\..\packages\BlackFox.MasterOfFoo\lib\net45\BlackFox.MasterOfFoo.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\BlackFox.MasterOfFoo\lib\netstandard2.0\BlackFox.MasterOfFoo.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\packages\FSharp.Core\lib\netstandard2.0\FSharp.Core.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\FSharp.Core\lib\netstandard2.1\FSharp.Core.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\packages\System.Buffers\lib\net461\System.Buffers.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\System.Buffers\lib\netstandard2.0\System.Buffers.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\System.Buffers\ref\netstandard2.0\System.Buffers.dll
+ False
+ True
+
+
+
+
+
+
+
+
+ ..\..\packages\System.Memory\lib\net461\System.Memory.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\System.Memory\lib\netstandard2.0\System.Memory.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\packages\System.Numerics.Vectors\lib\net46\System.Numerics.Vectors.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\System.Numerics.Vectors\lib\netstandard2.0\System.Numerics.Vectors.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\System.Numerics.Vectors\ref\netstandard2.0\System.Numerics.Vectors.dll
+ False
+ True
+
+
+
+
+
+
+
+
+ ..\..\packages\System.Runtime.CompilerServices.Unsafe\lib\net461\System.Runtime.CompilerServices.Unsafe.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\System.Runtime.CompilerServices.Unsafe\lib\netcoreapp3.1\System.Runtime.CompilerServices.Unsafe.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\System.Runtime.CompilerServices.Unsafe\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\packages\System.Text.Encodings.Web\lib\net461\System.Text.Encodings.Web.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\System.Text.Encodings.Web\lib\netcoreapp3.1\System.Text.Encodings.Web.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\System.Text.Encodings.Web\lib\netstandard2.0\System.Text.Encodings.Web.dll
+ True
+ True
+
+
+
+
+
\ No newline at end of file
diff --git a/Examples/Examples.macOS.WebKit/Info.plist b/Examples/Examples.macOS.WebKit.FullFramework/Info.plist
similarity index 100%
rename from Examples/Examples.macOS.WebKit/Info.plist
rename to Examples/Examples.macOS.WebKit.FullFramework/Info.plist
diff --git a/Examples/Examples.macOS.WebKit/Main.fs b/Examples/Examples.macOS.WebKit.FullFramework/Main.fs
similarity index 100%
rename from Examples/Examples.macOS.WebKit/Main.fs
rename to Examples/Examples.macOS.WebKit.FullFramework/Main.fs
diff --git a/Examples/Examples.macOS.WebKit.FullFramework/paket.references b/Examples/Examples.macOS.WebKit.FullFramework/paket.references
new file mode 100644
index 0000000..5b1c2f6
--- /dev/null
+++ b/Examples/Examples.macOS.WebKit.FullFramework/paket.references
@@ -0,0 +1,3 @@
+FSharp.Core
+BlackFox.MasterOfFoo
+System.Text.Encodings.Web
\ No newline at end of file
diff --git a/Examples/Examples.macOS.WebKit.ModernFramework/AppDelegate.fs b/Examples/Examples.macOS.WebKit.ModernFramework/AppDelegate.fs
new file mode 100644
index 0000000..ef2f47e
--- /dev/null
+++ b/Examples/Examples.macOS.WebKit.ModernFramework/AppDelegate.fs
@@ -0,0 +1,30 @@
+namespace Example.macOS.WebKit
+open System
+open System.Threading
+open AppKit
+open Foundation
+open Interstellar
+open Interstellar.MacOS.WebKit
+open Examples.SharedCode
+
+[]
+type AppDelegate() =
+ inherit NSApplicationDelegate()
+
+ override this.ApplicationShouldTerminateAfterLastWindowClosed sender = false
+
+ override this.DidFinishLaunching notification =
+ printfn "DidFinishLaunching"
+ Thread.CurrentThread.Name <- "Main"
+
+ let mainCtx = SynchronizationContext.Current
+ Async.Start <| async {
+ let onMainWindowCreated (w: IBrowserWindow) =
+ let nsWindow = w.NativeWindow
+ // This is where you could call some Cocoa-specific APIs on this window
+ ()
+ do! BrowserApp.runAsync mainCtx (SimpleBrowserApp.app ignore)
+ NSApplication.SharedApplication.Terminate null
+ }
+
+ ()
\ No newline at end of file
diff --git a/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png
new file mode 100644
index 0000000..d0b5a80
Binary files /dev/null and b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png differ
diff --git a/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png
new file mode 100644
index 0000000..f4c8d29
Binary files /dev/null and b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png differ
diff --git a/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png
new file mode 100644
index 0000000..ebb5a0f
Binary files /dev/null and b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png differ
diff --git a/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png
new file mode 100644
index 0000000..0986d31
Binary files /dev/null and b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png differ
diff --git a/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png
new file mode 100644
index 0000000..f4c8d29
Binary files /dev/null and b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png differ
diff --git a/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png
new file mode 100644
index 0000000..a142c83
Binary files /dev/null and b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png differ
diff --git a/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png
new file mode 100644
index 0000000..0986d31
Binary files /dev/null and b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png differ
diff --git a/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png
new file mode 100644
index 0000000..412d6ca
Binary files /dev/null and b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png differ
diff --git a/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png
new file mode 100644
index 0000000..a142c83
Binary files /dev/null and b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png differ
diff --git a/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png
new file mode 100644
index 0000000..e99022a
Binary files /dev/null and b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png differ
diff --git a/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/Contents.json b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..6b28545
--- /dev/null
+++ b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,68 @@
+{
+ "images": [
+ {
+ "filename": "AppIcon-16.png",
+ "size": "16x16",
+ "scale": "1x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-16@2x.png",
+ "size": "16x16",
+ "scale": "2x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-32.png",
+ "size": "32x32",
+ "scale": "1x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-32@2x.png",
+ "size": "32x32",
+ "scale": "2x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-128.png",
+ "size": "128x128",
+ "scale": "1x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-128@2x.png",
+ "size": "128x128",
+ "scale": "2x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-256.png",
+ "size": "256x256",
+ "scale": "1x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-256@2x.png",
+ "size": "256x256",
+ "scale": "2x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-512.png",
+ "size": "512x512",
+ "scale": "1x",
+ "idiom": "mac"
+ },
+ {
+ "filename": "AppIcon-512@2x.png",
+ "size": "512x512",
+ "scale": "2x",
+ "idiom": "mac"
+ }
+ ],
+ "info": {
+ "version": 1,
+ "author": "xcode"
+ }
+}
\ No newline at end of file
diff --git a/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/Contents.json b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/Contents.json
new file mode 100644
index 0000000..4caf392
--- /dev/null
+++ b/Examples/Examples.macOS.WebKit.ModernFramework/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/Examples/Examples.macOS.WebKit.ModernFramework/Entitlements.plist b/Examples/Examples.macOS.WebKit.ModernFramework/Entitlements.plist
new file mode 100644
index 0000000..9ae5993
--- /dev/null
+++ b/Examples/Examples.macOS.WebKit.ModernFramework/Entitlements.plist
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Examples/Examples.macOS.WebKit/Examples.macOS.WebKit.fsproj b/Examples/Examples.macOS.WebKit.ModernFramework/Examples.macOS.WebKit.ModernFramework.fsproj
similarity index 78%
rename from Examples/Examples.macOS.WebKit/Examples.macOS.WebKit.fsproj
rename to Examples/Examples.macOS.WebKit.ModernFramework/Examples.macOS.WebKit.ModernFramework.fsproj
index 3890fd0..ddfe69d 100644
--- a/Examples/Examples.macOS.WebKit/Examples.macOS.WebKit.fsproj
+++ b/Examples/Examples.macOS.WebKit.ModernFramework/Examples.macOS.WebKit.ModernFramework.fsproj
@@ -7,16 +7,28 @@
InterstellarExample
xamarin.mac20
prompt
+ {C91E86B6-72B1-4367-9CD4-A1116FECD752}
Mac Developer
false
+ false
+ false
+ false
+ false
+ false
+ None
+ None
true
true
SdkOnly
false
+ false
+ false
+ false
+ None
@@ -40,9 +52,12 @@
-
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Examples/Examples.macOS.WebKit.ModernFramework/Info.plist b/Examples/Examples.macOS.WebKit.ModernFramework/Info.plist
new file mode 100644
index 0000000..77ee546
--- /dev/null
+++ b/Examples/Examples.macOS.WebKit.ModernFramework/Info.plist
@@ -0,0 +1,30 @@
+
+
+
+
+ CFBundleName
+ InterstellarExample
+ CFBundleIdentifier
+ com.wostenberg.InterstellarExample
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1
+ LSMinimumSystemVersion
+ 10.12
+ CFBundleDevelopmentRegion
+ en
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundlePackageType
+ APPL
+ CFBundleSignature
+ ????
+ NSHumanReadableCopyright
+
+ NSPrincipalClass
+ NSApplication
+ XSAppIconAssets
+ Assets.xcassets/AppIcon.appiconset
+
+
diff --git a/Examples/Examples.macOS.WebKit.ModernFramework/Main.fs b/Examples/Examples.macOS.WebKit.ModernFramework/Main.fs
new file mode 100644
index 0000000..fc59cf0
--- /dev/null
+++ b/Examples/Examples.macOS.WebKit.ModernFramework/Main.fs
@@ -0,0 +1,12 @@
+namespace Example.macOS.WebKit
+
+open AppKit
+open System
+
+module main =
+ []
+ let main args =
+ NSApplication.Init()
+ NSApplication.SharedApplication.Delegate <- new AppDelegate()
+ NSApplication.Main(args)
+ 0
diff --git a/Examples/Examples.macOS.WebKit/paket.references b/Examples/Examples.macOS.WebKit.ModernFramework/paket.references
similarity index 100%
rename from Examples/Examples.macOS.WebKit/paket.references
rename to Examples/Examples.macOS.WebKit.ModernFramework/paket.references
diff --git a/Interstellar.MacOS.sln b/Interstellar.MacOS.sln
index a2f3e36..050fdc0 100644
--- a/Interstellar.MacOS.sln
+++ b/Interstellar.MacOS.sln
@@ -5,16 +5,21 @@ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Interstellar.macOS.WebKit",
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Interstellar.Core", "src\Interstellar.Core\Interstellar.Core.fsproj", "{7D096C2C-0960-4754-9954-421832426807}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Examples.macOS.WebKit", "Examples\Examples.macOS.WebKit\Examples.macOS.WebKit.fsproj", "{95B733CD-8092-4267-80E6-963B65DC71C5}"
-EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Examples.SharedCode", "Examples\Examples.SharedCode\Examples.SharedCode.fsproj", "{0332BEB2-0915-47CC-A709-49FC4C2B3DB5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{BE6ABDEA-53B5-4D1C-9E46-6B783CD97234}"
ProjectSection(SolutionItems) = preProject
global.json = global.json
AssemblyAndPackageInfo.props = AssemblyAndPackageInfo.props
+ paket.dependencies = paket.dependencies
EndProjectSection
EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Examples.macOS.WebKit.ModernFramework", "Examples\Examples.macOS.WebKit.ModernFramework\Examples.macOS.WebKit.ModernFramework.fsproj", "{C91E86B6-72B1-4367-9CD4-A1116FECD752}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Examples.macOS.WebKit.FullFramework", "Examples\Examples.macOS.WebKit.FullFramework\Examples.macOS.WebKit.FullFramework.fsproj", "{98BEAAC4-9ADD-4D08-B3A7-06BD5934A721}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Interstellar.MacOS.WebKit.FullFramework", "src\Interstellar.MacOS.WebKit.FullFramework\Interstellar.MacOS.WebKit.FullFramework.fsproj", "{DA9591A8-4189-4171-AF3F-85F1F3EA22A2}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -29,13 +34,21 @@ Global
{7D096C2C-0960-4754-9954-421832426807}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7D096C2C-0960-4754-9954-421832426807}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7D096C2C-0960-4754-9954-421832426807}.Release|Any CPU.Build.0 = Release|Any CPU
- {95B733CD-8092-4267-80E6-963B65DC71C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {95B733CD-8092-4267-80E6-963B65DC71C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {95B733CD-8092-4267-80E6-963B65DC71C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {95B733CD-8092-4267-80E6-963B65DC71C5}.Release|Any CPU.Build.0 = Release|Any CPU
{0332BEB2-0915-47CC-A709-49FC4C2B3DB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0332BEB2-0915-47CC-A709-49FC4C2B3DB5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0332BEB2-0915-47CC-A709-49FC4C2B3DB5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0332BEB2-0915-47CC-A709-49FC4C2B3DB5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C91E86B6-72B1-4367-9CD4-A1116FECD752}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C91E86B6-72B1-4367-9CD4-A1116FECD752}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C91E86B6-72B1-4367-9CD4-A1116FECD752}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C91E86B6-72B1-4367-9CD4-A1116FECD752}.Release|Any CPU.Build.0 = Release|Any CPU
+ {98BEAAC4-9ADD-4D08-B3A7-06BD5934A721}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {98BEAAC4-9ADD-4D08-B3A7-06BD5934A721}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {98BEAAC4-9ADD-4D08-B3A7-06BD5934A721}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {98BEAAC4-9ADD-4D08-B3A7-06BD5934A721}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DA9591A8-4189-4171-AF3F-85F1F3EA22A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DA9591A8-4189-4171-AF3F-85F1F3EA22A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DA9591A8-4189-4171-AF3F-85F1F3EA22A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DA9591A8-4189-4171-AF3F-85F1F3EA22A2}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
diff --git a/build.fsx b/build.fsx
index 1d37b73..f00124d 100644
--- a/build.fsx
+++ b/build.fsx
@@ -2,7 +2,6 @@
#load ".fake/build.fsx/intellisense.fsx"
#endif
-// F# 4.7 due to https://github.com/fsharp/FAKE/issues/2001
#r "paket:
nuget FSharp.Core 6.0.4
nuget Fake.Core.Target
@@ -29,12 +28,15 @@ open Fake.IO.FileSystemOperators
open Fake.IO.Globbing.Operators
open Fake.Tools
+type ProjectStyle = Sdk | Traditional
+
module Projects =
- let coreLib = Path.Combine ("src", "Interstellar.Core", "Interstellar.Core.fsproj")
- let chromiumLib = Path.Combine ("src", "Interstellar.Chromium", "Interstellar.Chromium.fsproj")
- let winFormsLib = Path.Combine ("src", "Interstellar.WinForms.Chromium", "Interstellar.WinForms.Chromium.fsproj")
- let wpfLib = Path.Combine ("src", "Interstellar.Wpf.Chromium", "Interstellar.Wpf.Chromium.fsproj")
- let macosWkLib = Path.Combine ("src", "Interstellar.macOS.WebKit", "Interstellar.macOS.WebKit.fsproj")
+ let coreLib = Path.Combine ("src", "Interstellar.Core", "Interstellar.Core.fsproj"), ProjectStyle.Sdk
+ let chromiumLib = Path.Combine ("src", "Interstellar.Chromium", "Interstellar.Chromium.fsproj"), ProjectStyle.Sdk
+ let winFormsLib = Path.Combine ("src", "Interstellar.WinForms.Chromium", "Interstellar.WinForms.Chromium.fsproj"), ProjectStyle.Sdk
+ let wpfLib = Path.Combine ("src", "Interstellar.Wpf.Chromium", "Interstellar.Wpf.Chromium.fsproj"), ProjectStyle.Sdk
+ let macosWkLib = Path.Combine ("src", "Interstellar.MacOS.WebKit", "Interstellar.MacOS.WebKit.fsproj"), ProjectStyle.Sdk
+ let macosWkFFLib = Path.Combine ("src", "Interstellar.MacOS.WebKit.FullFramework", "Interstellar.MacOS.WebKit.FullFramework.fsproj"), ProjectStyle.Traditional
module Solutions =
let windows = "Interstellar.Windows.sln"
@@ -48,10 +50,13 @@ module Templates =
let nuspecPaths = !! (Path.Combine (path, "*.nuspec"))
let allProjects =
!! (Path.Combine (path, "**/*.fsproj"))
+ |> Seq.map (fun p -> p, ProjectStyle.Sdk)
let winProjects =
!! (Path.Combine (path, "**/*windows*.fsproj"))
+ |> Seq.map (fun p -> p, ProjectStyle.Sdk)
let macosProjects =
!! (Path.Combine (path, "**/*macos*.fsproj"))
+ |> Seq.map (fun p -> p, ProjectStyle.Sdk)
let projectRepo = "https://github.com/fsprojects/Interstellar"
@@ -89,6 +94,13 @@ let currentVersionInfo = changelog.[0]
/// change to just the template, increment this.
let currentTemplateMinorVersion = 1
+let asmPkgInfo = System.IO.File.ReadAllText "AssemblyAndPackageInfo.props"
+
+// Extract assembly info property value
+let extractAsmPkgInfoProp propName =
+ let r = new Regex(sprintf "(<%s>)(?'value'.*)(%s>)" propName propName)
+ r.Match(asmPkgInfo).Groups.["value"].Value
+
let addProperties props defaults = { defaults with Properties = [yield! defaults.Properties; yield! props]}
let addVersionInfo (versionInfo: PackageVersionInfo) =
@@ -106,16 +118,21 @@ let addVersionInfo (versionInfo: PackageVersionInfo) =
let projects = [
yield Projects.coreLib
if Environment.isWindows then yield! [Projects.chromiumLib; Projects.winFormsLib; Projects.wpfLib]
- if Environment.isMacOS then yield! [Projects.macosWkLib ]
+ if Environment.isMacOS then yield! [Projects.macosWkLib; Projects.macosWkFFLib]
]
-let msbuild setParams project =
- let buildMode = Environment.environVarOrDefault "buildMode" "Release"
- let commit = Git.Information.getCurrentSHA1 "."
+let buildMode (args: TargetParameter) =
+ args.Context.Arguments
+ |> List.tryPick (fun x -> if x.ToLower() = "debug" then Some x else None)
+ |> Option.defaultValue "Release"
+
+let msbuild args setParams project =
+ // let buildMode = Environment.environVarOrDefault "buildMode" "Release"
+ let commit = Git.Information.getCurrentSHA1 __SOURCE_DIRECTORY__
project |> MSBuild.build (
quiet <<
setParams <<
- addProperties ["Configuration", buildMode; "RepositoryCommit", commit] <<
+ addProperties ["Configuration", buildMode args; "RepositoryCommit", commit] <<
addVersionInfo currentVersionInfo << setParams
)
@@ -135,18 +152,18 @@ let getNupkgPath version (projPath: string) =
Path.Combine ([|projDir; "bin"; "Release";
sprintf "%s%s.nupkg" (Path.GetFileNameWithoutExtension projPath) vstr|])
-Target.create "Clean" (fun _ ->
+Target.create "Clean" (fun args ->
Trace.log " --- Cleaning --- "
- for proj in projects do
+ for (proj, projStyle) in projects do
let vstr = currentVersionInfo.versionName
File.delete (getNupkgPath (Some vstr) proj)
!! (Path.Combine (artifactsPath, "**/*.nupkg")) |> File.deleteAll
let projects =
- if Environment.isWindows then [ Projects.winFormsLib; Projects.wpfLib; yield! Templates.winProjects ]
- else if Environment.isMacOS then [ Solutions.macos; yield! Templates.macosProjects ]
+ if Environment.isWindows then [for (p,_) in [ Projects.winFormsLib; Projects.wpfLib; yield! Templates.winProjects ] -> p]
+ else if Environment.isMacOS then [ yield Solutions.macos; for (p,_) in Templates.macosProjects -> p ]
else []
for proj in projects do
- msbuild (addTarget "Clean") proj
+ msbuild args (addTarget "Clean") proj
Shell.deleteDir ".fsdocs"
Shell.deleteDir "output"
Shell.deleteDir "temp"
@@ -154,20 +171,77 @@ Target.create "Clean" (fun _ ->
Target.create "Restore" (fun _ ->
DotNet.exec id "tool" "restore" |> ignore
- DotNet.restore id |> ignore
+ // DotNet.restore id |> ignore
+ if Environment.isWindows then
+ DotNet.restore id Solutions.windows
+ else if Environment.isMacOS then
+ DotNet.restore id Solutions.macos
)
-Target.create "Build" (fun _ ->
+// Syncs AssemblyInfo.fs with AssemblyAndPackageInfo.props
+Target.create "UpdateAssemblyInfo" (fun _ ->
+ Trace.log " --- Updating AssemblyInfo.fs in Interstellar.MacOS.WebKit.FullFramework --- "
+
+ let asmInfoPath = Path.Combine (Path.GetDirectoryName (fst Projects.macosWkFFLib), "AssemblyInfo.fs")
+ let projNameWithoutExt = Path.GetFileNameWithoutExtension (fst Projects.macosWkFFLib)
+ let asmInfo = File.ReadAllText asmInfoPath
+
+ let replacements =
+ Map.ofList [
+ "AssemblyDescription", extractAsmPkgInfoProp "Description"
+ "AssemblyCopyright", extractAsmPkgInfoProp "Copyright"
+ "AssemblyCompany", extractAsmPkgInfoProp "Company"
+ "AssemblyTitle", projNameWithoutExt
+ "AssemblyProduct", projNameWithoutExt
+ // Since the fsproj imports AssemblyAndPackageInfo.props and properly ingests this property, we do not need to include it here
+ //"AssemblyVersion", currentVersionInfo.versionName + ".0
+ "AssemblyInformationalVersion", currentVersionInfo.versionName
+ "AssemblyFileVersion", currentVersionInfo.versionName + ".0"
+ ]
+
+ let result =
+ Regex.Replace (
+ asmInfo,
+ // matches the following:
+ // []
+ // where ${AttributeName} and ${AttributeValue} are named match groups that could be anything
+ """(\[.*)(\(")(?.*)("\)>\])""",
+ MatchEvaluator(fun m ->
+ match Map.tryFind (m.Groups.["AttributeName"].Value) replacements with
+ | Some newValue ->
+ //printfn "VALUES"
+ //for x in m.Groups do printfn "%s -> %s" x.Name x.Value
+ m.Groups.[1].Value // [ m.ToString()
+ )
+ )
+
+ //Trace.log result
+
+ File.WriteAllText (asmInfoPath, result)
+)
+
+Target.create "Build" (fun args ->
Trace.log " --- Building --- "
+ // if Environment.isWindows then
+ // msbuild (addTarget "Restore") Solutions.windows
+ // else
+ // msbuild (addTarget "Restore") Solutions.macos
if Environment.isWindows then
- msbuild (addTarget "Restore") Solutions.windows
- else
- msbuild (addTarget "Restore") Solutions.macos
- if Environment.isWindows then
- msbuild (doRestore << addTarget "Build") Projects.winFormsLib
- msbuild (doRestore << addTarget "Build") Projects.wpfLib
+ msbuild args (addTarget "Build") (fst Projects.winFormsLib)
+ msbuild args (addTarget "Build") (fst Projects.wpfLib)
else if Environment.isMacOS then
- msbuild (doRestore << addTarget "Build") Projects.macosWkLib
+ // this is so very strange that we have to treat them differently like so...
+ // macosWkLib needs the `msbuild /restore` for whatever reason because it's an SDK-style project...
+ msbuild args (doRestore) (fst Projects.macosWkLib)
+ // but this one needs the `dotnet restore *.sln` somehow because it's not an SDK-style project!
+ msbuild args id (fst Projects.macosWkFFLib)
+ // this makes zero sense, but alright... seriously, what the heck? You try changing those around and see msbuild/dotnet scream
+ // at you
)
Target.create "Test" (fun _ ->
@@ -177,7 +251,7 @@ Target.create "Test" (fun _ ->
Target.create "BuildDocs" (fun _ ->
Trace.log " --- Building documentation --- "
- let result = DotNet.exec id "fsdocs" ("build --clean --projects=" + Projects.coreLib + " --property Configuration=Release")
+ let result = DotNet.exec id "fsdocs" ("build --clean --projects=" + (fst Projects.coreLib) + " --property Configuration=Release")
Trace.logfn "%s" (result.ToString())
)
@@ -193,37 +267,57 @@ Target.create "ReleaseDocs" (fun _ ->
Git.Branches.pushBranch "temp/gh-pages" "origin" "gh-pages"
)
-Target.create "Pack" (fun _ ->
+Target.create "Pack" (fun args ->
Trace.log " --- Packing NuGet packages --- "
- let props = ["SolutionDir", __SOURCE_DIRECTORY__; "RepositoryCommit", Git.Information.getCurrentSHA1 __SOURCE_DIRECTORY__]
- let msbuild f = msbuild (doRestore << addTargets ["Pack"] << addProperties props << f)
+ let props = ["SolutionDir", __SOURCE_DIRECTORY__]
Trace.log (sprintf "PROJECT LIST: %A" projects)
- for proj in projects do
- msbuild id proj
- // Collect all generated package archives into a common folder
- let vstr = currentVersionInfo.versionName
- let oldNupkgPath = getNupkgPath (Some vstr) proj
- Shell.mkdir artifactsPath
- Shell.moveFile artifactsPath oldNupkgPath
+ for (proj, projStyle) in projects do
+ match projStyle with
+ | ProjectStyle.Sdk ->
+ Trace.log (sprintf "Packing %s (sdk-style project)" proj)
+ msbuild args (addTargets ["Pack"] << addProperties props) proj
+ // Collect all generated package archives into a common folder
+ let vstr = currentVersionInfo.versionName
+ let oldNupkgPath = getNupkgPath (Some vstr) proj
+ Shell.mkdir artifactsPath
+ Shell.moveFile artifactsPath oldNupkgPath
+ | ProjectStyle.Traditional ->
+ // `dotnet pack` and `msbuild pack` only work with sdk-style projects
+ Trace.logfn "Packing %s (traditional-style project)" proj
+ Trace.logfn "Authors = %A" ([for a in (extractAsmPkgInfoProp "Authors").Split(';') -> a.Trim()])
+ NuGet.NuGetPack
+ (fun opt -> {
+ opt with
+ WorkingDir = Path.GetDirectoryName proj
+ OutputPath = artifactsPath
+ Properties = ["Configuration", "Release"]
+ Version = currentVersionInfo.versionName
+ Authors = [for a in (extractAsmPkgInfoProp "Authors").Split(';') -> a.Trim()]
+ Copyright = extractAsmPkgInfoProp "Copyright"
+ ReleaseNotes = currentVersionInfo.versionChanges
+ Tags = String.Join (" ", (extractAsmPkgInfoProp "Tags").Split(';') |> Seq.map (fun a -> a.Trim()))
+ })
+ proj
// see https://github.com/fsprojects/Interstellar/issues/3
!! (Path.Combine (artifactsPath, "**", "*.nupkg"))
|> Seq.iter (``Nupkg-hack``.hackNupkgAtPath)
)
-Target.create "BuildTemplateProjects" (fun _ ->
+Target.create "BuildTemplateProjects" (fun args ->
Trace.log " --- Building template projects --- "
if Environment.isWindows then
let p = [ yield! Templates.winProjects ]
- for proj in p do
+ for (proj, projStyle) in p do
DotNet.restore id proj
- for proj in p do
+ for (proj, projStyle) in p do
DotNet.build id proj
else if Environment.isMacOS then
let p = [ yield! Templates.macosProjects ]
- for proj in p do
- msbuild (addTarget "Restore") proj
- for proj in p do
- msbuild (addTarget "Build") proj
+ for (proj, projStyle) in p do
+ msbuild args (addTarget "Restore") proj
+ // DotNet.restore id proj
+ for (proj, projStyle) in p do
+ msbuild args (addTarget "Build") proj
)
Target.create "PackTemplates" (fun _ ->
@@ -250,6 +344,7 @@ open Fake.Core.TargetOperators
// *** Define Dependencies ***
"Restore"
+ ==> "UpdateAssemblyInfo"
==> "Build"
==> "Pack"
==> "PackAll"
@@ -276,4 +371,4 @@ open Fake.Core.TargetOperators
==> "BuildTemplateProjects"
// *** Start Build ***
-Target.runOrDefault "Build"
\ No newline at end of file
+Target.runOrDefaultWithArguments "Build"
\ No newline at end of file
diff --git a/nupkg-hack.fsx b/nupkg-hack.fsx
index 9fc8c92..7c4a09d 100644
--- a/nupkg-hack.fsx
+++ b/nupkg-hack.fsx
@@ -27,7 +27,7 @@ let changeVersionConstraints text =
// """
// |> changeVersionConstraints |> printfn "%s"
-let hackNupkgFromStream (path: string) (stream: Stream) =
+let hackNupkgFromStream (_: string) (stream: Stream) =
use archive = new ZipArchive(stream, ZipArchiveMode.Update)
let oldEntry = archive.Entries |> Seq.find (fun e -> e.Name.EndsWith ".nuspec")
let input =
diff --git a/paket.dependencies b/paket.dependencies
index fb7f0e4..f32c34e 100644
--- a/paket.dependencies
+++ b/paket.dependencies
@@ -2,9 +2,10 @@ source https://api.nuget.org/v3/index.json
framework: auto-detect
nuget BlackFox.MasterOfFoo
-nuget CefSharp.WinForms = 75.1.143
-nuget CefSharp.Wpf = 75.1.143
+nuget CefSharp.WinForms 86.0.241
+nuget CefSharp.Wpf 86.0.241
nuget FSharp.Core >= 4.2.3
+nuget NuGet.Build.Tasks.Pack
nuget System.Text.Encodings.Web
group Build
diff --git a/paket.lock b/paket.lock
index 00d0ff9..668b8cd 100644
--- a/paket.lock
+++ b/paket.lock
@@ -4,16 +4,17 @@ NUGET
BlackFox.MasterOfFoo (1.0.6)
FSharp.Core (>= 4.0.0.1) - restriction: || (== net472) (== net48) (&& (== net5.0-windows7.0) (>= net45)) (&& (== netcoreapp3.1) (>= net45)) (&& (== netstandard2.0) (>= net45)) (&& (== xamarinmac) (>= net45))
FSharp.Core (>= 4.2.3) - restriction: || (&& (== net472) (< net45)) (&& (== net48) (< net45)) (== net5.0-windows7.0) (== netcoreapp3.1) (== netstandard2.0) (== xamarinmac)
- cef.redist.x64 (75.1.14) - restriction: || (== net472) (== net48) (== net5.0-windows7.0) (== netcoreapp3.1) (&& (== netstandard2.0) (>= net452)) (&& (== netstandard2.0) (>= netcoreapp3.0)) (&& (== xamarinmac) (>= net452)) (&& (== xamarinmac) (>= netcoreapp3.0))
- cef.redist.x86 (75.1.14) - restriction: || (== net472) (== net48) (== net5.0-windows7.0) (== netcoreapp3.1) (&& (== netstandard2.0) (>= net452)) (&& (== netstandard2.0) (>= netcoreapp3.0)) (&& (== xamarinmac) (>= net452)) (&& (== xamarinmac) (>= netcoreapp3.0))
- CefSharp.Common (75.1.143) - restriction: || (== net472) (== net48) (== net5.0-windows7.0) (== netcoreapp3.1) (&& (== netstandard2.0) (>= net452)) (&& (== netstandard2.0) (>= netcoreapp3.0)) (&& (== xamarinmac) (>= net452)) (&& (== xamarinmac) (>= netcoreapp3.0))
- cef.redist.x64 (75.1.14)
- cef.redist.x86 (75.1.14)
- CefSharp.WinForms (75.1.143)
- CefSharp.Common (75.1.143) - restriction: || (== net472) (== net48) (== net5.0-windows7.0) (== netcoreapp3.1) (&& (== netstandard2.0) (>= net452)) (&& (== netstandard2.0) (>= netcoreapp3.0)) (&& (== xamarinmac) (>= net452)) (&& (== xamarinmac) (>= netcoreapp3.0))
- CefSharp.Wpf (75.1.143)
- CefSharp.Common (75.1.143) - restriction: || (== net472) (== net48) (== net5.0-windows7.0) (== netcoreapp3.1) (&& (== netstandard2.0) (>= net452)) (&& (== netstandard2.0) (>= netcoreapp3.0)) (&& (== xamarinmac) (>= net452)) (&& (== xamarinmac) (>= netcoreapp3.0))
+ cef.redist.x64 (86.0.24) - restriction: || (== net472) (== net48) (== net5.0-windows7.0) (== netcoreapp3.1) (&& (== netstandard2.0) (>= net452)) (&& (== netstandard2.0) (>= netcoreapp3.0)) (&& (== xamarinmac) (>= net452)) (&& (== xamarinmac) (>= netcoreapp3.0))
+ cef.redist.x86 (86.0.24) - restriction: || (== net472) (== net48) (== net5.0-windows7.0) (== netcoreapp3.1) (&& (== netstandard2.0) (>= net452)) (&& (== netstandard2.0) (>= netcoreapp3.0)) (&& (== xamarinmac) (>= net452)) (&& (== xamarinmac) (>= netcoreapp3.0))
+ CefSharp.Common (86.0.241) - restriction: || (== net472) (== net48) (== net5.0-windows7.0) (== netcoreapp3.1) (&& (== netstandard2.0) (>= net452)) (&& (== netstandard2.0) (>= netcoreapp3.0)) (&& (== xamarinmac) (>= net452)) (&& (== xamarinmac) (>= netcoreapp3.0))
+ cef.redist.x64 (86.0.24)
+ cef.redist.x86 (86.0.24)
+ CefSharp.WinForms (86.0.241)
+ CefSharp.Common (86.0.241) - restriction: || (== net472) (== net48) (== net5.0-windows7.0) (== netcoreapp3.1) (&& (== netstandard2.0) (>= net452)) (&& (== netstandard2.0) (>= netcoreapp3.0)) (&& (== xamarinmac) (>= net452)) (&& (== xamarinmac) (>= netcoreapp3.0))
+ CefSharp.Wpf (86.0.241)
+ CefSharp.Common (86.0.241) - restriction: || (== net472) (== net48) (== net5.0-windows7.0) (== netcoreapp3.1) (&& (== netstandard2.0) (>= net452)) (&& (== netstandard2.0) (>= netcoreapp3.0)) (&& (== xamarinmac) (>= net452)) (&& (== xamarinmac) (>= netcoreapp3.0))
FSharp.Core (6.0.4)
+ NuGet.Build.Tasks.Pack (6.2)
System.Buffers (4.5.1) - restriction: || (== net472) (== net48) (&& (== net5.0-windows7.0) (>= net461)) (&& (== net5.0-windows7.0) (< netcoreapp3.1)) (&& (== netcoreapp3.1) (>= net461)) (== netstandard2.0) (== xamarinmac)
System.Memory (4.5.4) - restriction: || (== net472) (== net48) (&& (== net5.0-windows7.0) (>= net461)) (&& (== net5.0-windows7.0) (< netcoreapp3.1)) (&& (== netcoreapp3.1) (>= net461)) (== netstandard2.0) (== xamarinmac)
System.Buffers (>= 4.5.1) - restriction: || (== net472) (== net48) (&& (== net5.0-windows7.0) (>= monotouch)) (&& (== net5.0-windows7.0) (>= net461)) (&& (== net5.0-windows7.0) (< netcoreapp2.0)) (&& (== net5.0-windows7.0) (< netstandard1.1)) (&& (== net5.0-windows7.0) (< netstandard2.0)) (&& (== net5.0-windows7.0) (>= xamarinios)) (&& (== net5.0-windows7.0) (>= xamarinmac)) (&& (== net5.0-windows7.0) (>= xamarintvos)) (&& (== net5.0-windows7.0) (>= xamarinwatchos)) (&& (== netcoreapp3.1) (>= monotouch)) (&& (== netcoreapp3.1) (>= net461)) (&& (== netcoreapp3.1) (< netcoreapp2.0)) (&& (== netcoreapp3.1) (< netstandard1.1)) (&& (== netcoreapp3.1) (< netstandard2.0)) (&& (== netcoreapp3.1) (>= xamarinios)) (&& (== netcoreapp3.1) (>= xamarinmac)) (&& (== netcoreapp3.1) (>= xamarintvos)) (&& (== netcoreapp3.1) (>= xamarinwatchos)) (== netstandard2.0) (== xamarinmac)
diff --git a/src/Interstellar.MacOS.WebKit.FullFramework/AssemblyInfo.fs b/src/Interstellar.MacOS.WebKit.FullFramework/AssemblyInfo.fs
new file mode 100644
index 0000000..1948dcd
--- /dev/null
+++ b/src/Interstellar.MacOS.WebKit.FullFramework/AssemblyInfo.fs
@@ -0,0 +1,30 @@
+// Values in this file are autogenerated by build scripts -- manual changes may be discarded
+namespace Test
+open System.Reflection
+open System.Runtime.CompilerServices
+
+
+[]
+[]
+
+#if DEBUG
+[]
+#else
+[]
+#endif
+
+[]
+[]
+[]
+//[]
+
+// The assembly version has the format {Major}.{Minor}.{Build}.{Revision}
+
+[]
+[]
+[]
+
+//[]
+//[]
+
+()
diff --git a/src/Interstellar.MacOS.WebKit.FullFramework/Interstellar.MacOS.WebKit.FullFramework.fsproj b/src/Interstellar.MacOS.WebKit.FullFramework/Interstellar.MacOS.WebKit.FullFramework.fsproj
new file mode 100644
index 0000000..08c3fe3
--- /dev/null
+++ b/src/Interstellar.MacOS.WebKit.FullFramework/Interstellar.MacOS.WebKit.FullFramework.fsproj
@@ -0,0 +1,120 @@
+
+
+
+ Debug
+ AnyCPU
+ Interstellar.macOS.WebKit
+ {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{F2A71F9B-5D33-465A-A702-920D77279786}
+ Library
+ {DA9591A8-4189-4171-AF3F-85F1F3EA22A2}
+ v4.8
+ true
+ $(VersionPrefix)
+ $(Version)
+
+
+ true
+ false
+ bin\Debug
+ $(OutputPath)
+ DEBUG
+ prompt
+ false
+ Mac Developer
+ false
+ false
+ false
+ true
+ true
+
+
+
+
+
+
+ None
+
+
+ true
+ bin\Release
+ $(OutputPath)
+
+
+ prompt
+ false
+ false
+ false
+ true
+ true
+ true
+ None
+ true
+
+
+
+
+
+
+ None
+
+
+
+
+
+
+
+
+
+
+
+ <_Parameter1>$(Version)
+
+
+
+
+
+
+
+
+
+
+ {7D096C2C-0960-4754-9954-421832426807}
+ Interstellar.Core
+
+
+ Browser.fs
+
+
+ BrowserWindow.fs
+
+
+ BrowserApp.fs
+
+
+
+
+
+
+
+
+
+
+
+ ..\..\packages\FSharp.Core\lib\netstandard2.0\FSharp.Core.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\FSharp.Core\lib\netstandard2.1\FSharp.Core.dll
+ True
+ True
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Interstellar.MacOS.WebKit.FullFramework/paket.references b/src/Interstellar.MacOS.WebKit.FullFramework/paket.references
new file mode 100644
index 0000000..038c32a
--- /dev/null
+++ b/src/Interstellar.MacOS.WebKit.FullFramework/paket.references
@@ -0,0 +1,2 @@
+FSharp.Core
+NuGet.Build.Tasks.Pack
\ No newline at end of file
diff --git a/src/Interstellar.MacOS.WebKit/Interstellar.MacOS.WebKit.fsproj b/src/Interstellar.MacOS.WebKit/Interstellar.MacOS.WebKit.fsproj
index a5d73a4..037836e 100644
--- a/src/Interstellar.MacOS.WebKit/Interstellar.MacOS.WebKit.fsproj
+++ b/src/Interstellar.MacOS.WebKit/Interstellar.MacOS.WebKit.fsproj
@@ -8,9 +8,16 @@
false
+ false
+ None
+ None
+ bin\Debug\xamarin.mac20\Interstellar.macOS.WebKit.XML
false
+ false
+ None
+ None
diff --git a/templates/minimal/src/global.json b/templates/minimal/src/global.json
index c5d46f8..f9bce4a 100644
--- a/templates/minimal/src/global.json
+++ b/templates/minimal/src/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "5.0.101"
+ "version": "5.0"
},
"msbuild-sdks": {
"MSBuild.Sdk.Extras": "3.0.22"