Adding Debugging Capabilities
This release is all about adding the capability to create packages for Windows (NuGet) and macOS (xcframework) that include debugging symbols.
Oh and also I introduced some unrelated breaking changes, which is why this is a major release! 🙈
To see in detail how this new version should be used, please consult [jothepro/djinni-library-template](https://github.com/jothepro/djinni-library-template).
Added
- When a debugging symbols framework directory (`.framework.dSYM`) is detected on macOS/iOS builds, it is included in the resulting .xcframework. (https://github.com/jothepro/djinni_build/commit/dcf9fe45f5e19b4334590dbb8dd9e774ef9788d0)
- When debugging symbols (`.pdb`) are detected on a Windows build, in addition to a normal `.nupkg`, also a `.symbols.nupkg` is created, that includes the `.pdb` files for each target architecture (https://github.com/jothepro/djinni_build/commit/e1def3f456ff1d0dff9b7d04d08085297c0b0fbb). This will become useful for debugging once .NET 7 is released: https://github.com/dotnet/sdk/pull/27580
Changed
- Packages are not built in-source any more. Instead, the required package files are copied from `lib/platform/<platform>/package` to the build directory and enriched with the C++ binaries there. This way the source directory stays clean. (https://github.com/jothepro/djinni_build/commit/1cc2d1563dd80042a63a069af96a882f37d5ff3c)
- The configuration parameter `nupkg_net_version` has been removed because the script can now automatically determine the target .NET version by parsing the `.nuspec` file (https://github.com/jothepro/djinni_build/commit/1cc2d1563dd80042a63a069af96a882f37d5ff3c). Make sure to define the .NET version like so in `<metadata>`:
<dependencies>
<group targetFramework="net6.0" />
</dependencies>
- The configuration parameter `version` was removed, because the version is now retrieved automatically through the Conan API. Make sure to specify a version in your `conanfile.py`! (https://github.com/jothepro/djinni_build/commit/1cc2d1563dd80042a63a069af96a882f37d5ff3c)
- No `.nuspec.template` file is required anymore. Instead, the `.nuspec` file should contain `$version$` placeholders for setting the package version. Those parameters are automatically populated by the nuget CLI. (https://github.com/jothepro/djinni_build/commit/e1def3f456ff1d0dff9b7d04d08085297c0b0fbb)
Removed
- The CLI-option `--clean` was removed. It is not needed anymore because no artifacts will be copied to the source directory. (https://github.com/jothepro/djinni_build/commit/1cc2d1563dd80042a63a069af96a882f37d5ff3c)
**Full Changelog:** https://github.com/jothepro/djinni_build/compare/v1.0.0...v2.0.0