0.2.0
Pre-release
Pre-release
What's Changed
- Refactor support ABI modules by @tristanlabelle in #215
- Make the release-publish workflow dispatch-triggered by @tristanlabelle in #216
- Release workflow: fix powershell error by @tristanlabelle in #217
- Revert to push tag trigger for release creation by @tristanlabelle in #218
- Fix bad newline in create release tag workflow by @tristanlabelle in #219
- Tweak short commit length on create-tag workflow by @tristanlabelle in #220
- Make generated modules reference WindowsRuntime_ABI by @tristanlabelle in #221
- Add --locale and --no-docs flags by @tristanlabelle in #223
- Make COMEmbedding ~Copyable again by @tristanlabelle in #224
- Added doc describing migration from thebrowsercompany/swift-winrt by @tristanlabelle in #225
- Specify thebrowsercompany swift-winrt project name in migration doc by @tristanlabelle in #230
- Add "Using in your project" to Readme by @tristanlabelle in #228
- Tweak EventRegistration + codegen for allocation-less usage by @tristanlabelle in #231
- Updated to latest dotnetmetadata, with improved support for UWP type references by @tristanlabelle in #235
- Support generating CMakeLists.txt files by @tristanlabelle in #238
- Locate Windows SDK WinMDs using WindowsMetadata logic. by @tristanlabelle in #239
- Add comIdentical + winrtIdentical functions by @tristanlabelle in #240
- Support array boxing through IReferenceArray by @tristanlabelle in #232
- Rename IReferenceUnboxingProjection to IReferenceToOptionalProjection by @tristanlabelle in #245
- Add readmes and more doc comments by @tristanlabelle in #246
- Add a more class documentation comments by @tristanlabelle in #251
- Remove box/unbox terminology in favor of createIReference[Array] by @tristanlabelle in #252
- Remove the PrimitiveProjection namespace enum in favor of -Projection suffixes by @tristanlabelle in #253
- Fix error pattern to capture and set the COM error info when crossing ABI boundaries by @tristanlabelle in #250
- Expose ICreateErrorInfo + CreateErrorInfo and use it for creating IErrorInfo objects by @tristanlabelle in #258
- Add docs about projecting errors by @tristanlabelle in #259
- Preserve Swift errors through WinRT boundaries via ILanguageExceptionErrorInfo by @tristanlabelle in #261
- Generate agile classes as @unchecked Sendable by @tristanlabelle in #263
- Support ILanguageExceptionErrorInfo2 for extra context capture by @tristanlabelle in #265
- Add excludes to fix SPM build warnings by @tristanlabelle in #266
- Reorganize Swift files more hierarchically by @tristanlabelle in #267
- Support generating projections that build as dynamic libraries by @tristanlabelle in #268
- Fix Sendable warnings in InteropTests by @tristanlabelle in #269
- Create-NuGetPackage: Fix Swift runtime directory resolution by @tristanlabelle in #271
- Bump swift-dotnetmetadata by @tristanlabelle in #272
- Bump swift-dotnetmetadata by @tristanlabelle in #273
- Bump swift-dotnetmetadata by @tristanlabelle in #274
- Harden UWP module references by @tristanlabelle in #276
- Support SwiftEnumAttribute for closed enum projections by @tristanlabelle in #279
- Rename "Assembly" module folder to "Module" by @tristanlabelle in #280
- Fix incorrect CMakeLists.txt codegen by @tristanlabelle in #282
- Shorten generated COMInterop filenames by @tristanlabelle in #283
- Remove + in projection filenames, and rename ABI.h by @tristanlabelle in #285
- Generate generic instantiations under the same COMInterop extensions file by @tristanlabelle in #286
- Add Unowned struct to replace Module.Reference by @tristanlabelle in #288
- Renamed SwiftProjection to Projection and moved its Module nested class to the top level by @tristanlabelle in #289
- Avoid dots in default names for the modules of assemblies without an explicit mapping by @tristanlabelle in #291
- Rename ABIProjection to ABIBinding throughout by @tristanlabelle in #295
- Extract an ABIBindings module by @tristanlabelle in #296
- Rename ProjectedTypes folder to Projection by @tristanlabelle in #297
- Rename toSwift to fromABI by @tristanlabelle in #298
- Make generated ABI modules depend on one another by @tristanlabelle in #299
- Build InteropTests' projection with CMake in CI by @tristanlabelle in #300
- Use ExternalProject with Generator and InteropTests by @tristanlabelle in #303
- Build the entire project from the root CMakeLists.txt by @tristanlabelle in #304
- Extract GenerateWinMD.cmake to avoid recursive CMake invocation by @tristanlabelle in #307
- Move common generate projection logic to CMake by @tristanlabelle in #308
- Rename --support to --spm-support-package and improve format of url references by @tristanlabelle in #311
- Create Building.md by @tristanlabelle in #312
- Update Readme.md's note on 5.10 requirement by @tristanlabelle in #314
- Move InteropTests under Generator by @tristanlabelle in #315
- Encapsulate the WinRTComponent build by @tristanlabelle in #316
- Support CMake target & SPM library prefixes/suffixes by @tristanlabelle in #318
- Avoid overlapping binary directories when building the generator as a subproject by @tristanlabelle in #321
- Implement projection caching (incomplete) by @tristanlabelle in #322
- Enable the projection build with CMake by @tristanlabelle in #319
- Move the InteropTests directory back to top level by @tristanlabelle in #325
- Document why Package.swift only builds the support modules by @tristanlabelle in #324
- Increase the -driver-filelist-threshold workaround by @tristanlabelle in #329
- Fixed flags enum signedness mismatch in bindings code by @tristanlabelle in #331
- Stage SwiftWinRT.exe in a known location by @tristanlabelle in #334
- Add CStyleEnum[Binding] and support [Flags] bitwise ops by @tristanlabelle in #336
- Add a schema for Projection.json by @tristanlabelle in #337
- Tweak Go/No-Go job by @tristanlabelle in #339
- Rename "inert" to "POD" by @tristanlabelle in #338
- Fix codegen with multiple out params by @tristanlabelle in #341
- Update to actions/checkout@v4 from v3 by @tristanlabelle in #342
- Annotate tests as regression tests by @tristanlabelle in #344
- Eliminate WinRTComponent header files. by @tristanlabelle in #345
- Implement transitive base interfaces in Binding.Import classes by @tristanlabelle in #346
- Enable compile_commands.json generation by @tristanlabelle in #349
- Combine COMInterop extensions into one file per namespace by @tristanlabelle in #348
- Add workaround flag for Swift compiler bug 72724 by @tristanlabelle in #352
- Fix duplicate definition of generic instantiation ABI structs by @tristanlabelle in #351
- Use -wmo in generated CMakeLists.txt by @tristanlabelle in #355
- Support newlines in documentation comments by @tristanlabelle in #357
- Fix blank lines around doc comments by @tristanlabelle in #361
- Remove setting CMAKE_Swift_FLAGS from CMakePresets.json by @tristanlabelle in #362
- Fix usage of "override" on initializers of derived classes by @tristanlabelle in #363
- Generate doc comments on initializers by @tristanlabelle in #365
- Don't emit // MARK comments for members from ExclusiveTo interfaces by @tristanlabelle in #366
- Don't add empty modules as target link libraries by @tristanlabelle in #367
- Bump swift-dotnetmetadata for DotNetXMLDocsFromMetadata by @tristanlabelle in #368
- Generate doc comments for property setter funcs and non-throwing property extensions by @tristanlabelle in #369
- Support sealed derived classes by @tristanlabelle in #373
- Change property naming scheme by @tristanlabelle in #376
- Generate better property accessor documentation comments by @tristanlabelle in #378
- Add more tests for
IReference[Array]
by @tristanlabelle in #377 - Support dynamic instantiation of derived activatable classes by @tristanlabelle in #379
- Annotate event adders as @discardableResult by @tristanlabelle in #382
- Add back nonthrowing get-only properties by @tristanlabelle in #381
- Sort add_subdirectory commands by @tristanlabelle in #384
- Unhardcode Windows SDK reference assembly versions by @tristanlabelle in #389
- Update building instructions by @tristanlabelle in #391
- Legit CMake debug build by @tristanlabelle in #393
- Add a target to build the NuGet package and integrate mscorlib.winmd by @tristanlabelle in #394
- Fix support for building InteropTests as a CMake project by @tristanlabelle in #398
- Add project readiness warning to readme by @tristanlabelle in #399
- Workaround Swift compiler bug using #if compiler by @tristanlabelle in #400
- Stop generating whole module optimization flag by @tristanlabelle in #403
- Add test COM interfaces for Support module tests by @tristanlabelle in #405
- Add ICOMTest2 for more thorough Support module tests by @tristanlabelle in #406
- Add a test for an embedded secondary interface by @tristanlabelle in #408
- Remove COMImplements in favor of queriableInterfaces by @tristanlabelle in #409
- Remove COMExportBase and introduce COMImplements by @tristanlabelle in #411
- Rename SwiftCOMObject to SwiftCOMEmbedding by @tristanlabelle in #413
- Move module C header files to a modules subfolder by @tristanlabelle in #416
- Add CMake check for VS dev command prompt by @tristanlabelle in #388
- Rename SWRT/windows to SWRT/winapi by @tristanlabelle in #417
- Move SWRT_COMEmbedder out of private ABI module and use directly by @tristanlabelle in #418
- Reintroduce the COMEmbedding struct and COM_PrivateABI module by @tristanlabelle in #419
- Introduce COMEmbeddingEx to replace COMEmbedderWithDelegatedImplementation by @tristanlabelle in #420
- Generate flat modules by @tristanlabelle in #424
- Legit debug CMakePresets for subprojects by @tristanlabelle in #425
- Swift bug 72724 workaround for SPMPrebuild.ps1 by @tristanlabelle in #426
- Add object lifetime tests to validate that C++ and Swift objects are destroyed by @tristanlabelle in #428
- Expose ComposableClass.supportsOverrides by @tristanlabelle in #429
- Add extra ComposableClass tests by @tristanlabelle in #430
- Rename COMSecondaryExport to COMTearOff by @tristanlabelle in #433
- Replace COMEmbeddingEx with COMEmbedderEx by @tristanlabelle in #434
- Rename COMExport to COMExportBase and COMTearOff to COMTearOffBase by @tristanlabelle in #436
- Refactor SwiftType to support arbitrary chaining by @tristanlabelle in #440
- Introduce ComposableClass.OuterObject by @tristanlabelle in #439
- Renamed swiftEmbedder to swiftOwner by @tristanlabelle in #443
- Better leverage Projection.toType(Reference|Expression) by @tristanlabelle in #444
- Implement ISupportErrorInfo by @tristanlabelle in #445
- Extracted COMAggregableBase from ComposableClass by @tristanlabelle in #446
- Forward CMake flags to Generator subproject by @tristanlabelle in #448
- Add subfolder and CMakeLists.txt for mscorlib.winmd by @tristanlabelle in #449
- Generate @available from DeprecatedAttribute by @tristanlabelle in #452
- Build the WinRTComponent winmd file as a CMake subproject by @tristanlabelle in #453
- Fix bad unsafe cast when unwrapping a COMEmbedding by @tristanlabelle in #455
- Fix CMake link dependencies for flat modules by @tristanlabelle in #459
- Support custom cmake target and spm library names by @tristanlabelle in #460
- Remove support for flattenNamespaces by @tristanlabelle in #463
- Add VirtualTablePointer and rename to Binding.exportedVirtualTable by @tristanlabelle in #462
- Remove Swift module name overrides on ABI CMake targets by @tristanlabelle in #467
- Fix unused variable warning by @tristanlabelle in #468
- Use mscorlib.winmd by default by @tristanlabelle in #470
- Generate @available deprecations on short type aliases to avoid warnings by @tristanlabelle in #471
- Support --no-deprecations command line flag by @tristanlabelle in #472
- Rename (Type|Param)Projection to (Type|Param)Binding by @tristanlabelle in #473
- Fix build break from merge race by @tristanlabelle in #475
- Generate PDBs with release builds by @tristanlabelle in #474
- Refactor Create-Package.ps1 to support creating multi-architecture nupkg's by @tristanlabelle in #477
- Create publish-release.yml by @tristanlabelle in #478
- Fix the publish release workflow by @tristanlabelle in #479
- Fix cross-compilation build in publish-release.yml by @tristanlabelle in #480
Full Changelog: v0.1.0...v0.2.0