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'.*)()" 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"