Skip to content

Releases: vezel-dev/zig-sdk

v4.2.16

06 Jan 11:47
v4.2.16
7f8c5be
Compare
Choose a tag to compare
  • Changed OutputType to accept WinExe in addition to Exe and Library.
  • Added support for setting the executable subsystem based on OutputType when targeting Windows.
  • Added ImageBase and DynamicImageBase properties to control load location on Windows.
  • Added StackSize property for controlling the main thread's stack size.
  • Added AllowUndefinedSymbols property for controlling whether libraries are allowed to have undefined references.
    • This is particularly useful when building plugins.
  • Added AsyncExceptions property that controls whether standard C++ try/catch statements can catch SEH exceptions on Windows.
  • Fixed Pack not working correctly when a RuntimeIdentifier was explicitly set (turning the build into an inner build).
    • This will now create a package with artifacts for just the single RID.
  • Fixed a number of bugs and shortcomings related to emulator detection.
    • Fixed QEMU detection to use qemu-i386 instead of qemu-x86.
    • Fixed QEMU detection to use qemu-ppc64 instead of qemu-powerpc64le.
    • Fixed WSL/QEMU detection logic when the host architecture is 64-bit Arm.
    • Fixed Wine detection incorrectly using wine64 instead of wine for 64-bit.
    • Changed Wine detection to only use Wine if the host and target architectures are the exact same.
    • Fixed Darling detection to only use Darling when the host architecture is 64-bit x86.
    • Changed Darling detection to allow using Darling when the target architecture is 32-bit x86.
    • Added support for using Rosetta 2 to run 64-bit x86 binaries on 64-bit Arm.
  • Added informative IsOuterBuild property (set by the SDK) indicating whether the current build is an outer or inner build.
    • An outer build is one that is going to dispatch multiple builds for all RuntimeIdentifiers.
    • An inner build is one that is building for a specific RuntimeIdentifier.
    • This applies to Build, Clean, and Publish.
  • Exposed target extension points OuterBuild/InnerBuild, OuterClean/InnerClean, and OuterPublish/InnerPublish.

v4.1.3

02 Jan 18:16
v4.1.3
329a76e
Compare
Choose a tag to compare
  • Added support for linux-ppc64le.
    • Note that it is not yet part of the default RuntimeIdentifiers.

v4.0.164

02 Jan 18:14
v4.0.164
873f5b0
Compare
Choose a tag to compare
  • Set TargetSystemVersion for Windows to win8 rather than win10 in accordance with .NET support policy.
    • This was mistakenly changed from win7 to win10 in v4.0.154.
  • Changed CoreCompile to generate a friendly error message if no source files exist in the project.

v4.0.154

04 Aug 12:26
v4.0.154
Compare
Choose a tag to compare
  • Retargeted MSBuild tasks assembly from net472; net6.0 to netstandard2.0.
  • Bumped default ZigVersion from 0.9.1 to 0.11.0.
  • Bumped TargetSystemVersion for macOS from 10.14 to 11.7 in accordance with Zig support policy.
  • Bumped TargetSystemVersion for Windows from win7 to win10 in accordance with .NET support policy.
  • Changed HostAbi/TargetAbi for macOS from gnu to none.
  • Changed HostArchitecture/TargetArchitecture for 32-bit x86 from i386 to x86.
  • Added linux-arm, osx-arm64, and win-arm64 to the default RuntimeIdentifiers.
  • Changed optimization levels for C/C++ projects to be in line with Zig projects.
    • Configuration=Debug: -Og -> -O0
    • Configuration=Release, ReleaseMode=Fast: -O3 -> -O2
    • Configuration=Release, ReleaseMode=Safe: -O2 -fsanitize=undefined (unchanged)
    • Configuration=Release, ReleaseMode=Small: -Oz -> -Os

v3.2.3

23 Jun 18:07
v3.2.3
Compare
Choose a tag to compare
  • Added LinkerDirectory and LinkerReference items for consuming third-party libraries through linker search paths.
  • Added a UseMicrosoftAbi property that can be used to switch to the MSVC ABI when targeting Windows.
    • Note that this is incompatible with cross-compilation from non-Windows platforms.

v3.1.3

21 Jun 17:50
v3.1.3
Compare
Choose a tag to compare
  • Added LibraryReference and LibraryIncludeDirectory items for consuming third-party native libraries.
  • Removed the ExecutableStack property. The stack is not executable by default and this cannot be overridden with LLD.

v3.0.96

07 Apr 19:47
v3.0.96
Compare
Choose a tag to compare
  • Renamed the project from Zig.Sdk to Vezel.Zig.Sdk.
  • Switched to Zig 0.9.1 as default.
  • Added support for Zig source code formatting using the zig fmt tool.
    • Added a ZigFormat MSBuild task.
    • Added a Format MSBuild target which will format all Zig source files.
    • EnforceCodeStyleInBuild=true is interpreted as "run zig fmt --check during Build".
    • FormatOnBuild=true is interpreted as "run zig fmt during Build" (equivalent to running the Format target).
  • Renamed Zig MSBuild task to ZigCompile.
  • Changed MicrosoftExtensions=true to imply -Wno-microsoft-abstract, -Wno-microsoft-anon-tag, and -Wno-microsoft-union-member-reference.
  • Enabled -Wreserved-identifier by default at WarningLevel=1 and above.
  • Changed ZigCompile to no longer pass -fno-strict-overflow in C/C++ projects.
  • Added an EagerBinding property to control -z now.
  • Added a RelocationHardening property to control -z relro.
  • Added an ExecutableStack property to control -z noexecstack.
  • Changed rpath logic to always pass -z origin to ensure that rpath processing is enabled.
  • Added implicit ZIG_BO_* macros to indicate byte order.
  • Renamed implicit ZIG_MODE_* macros to ZIG_CFG_*.
  • Fixed emulator detection logic for win-arm64.

v2.3.4

09 Aug 10:07
v2.3.4
Compare
Choose a tag to compare
  • Fixed misleading message in Publish output on a project with IsPublishable=false.

v2.3.3

23 Jul 03:29
v2.3.3
Compare
Choose a tag to compare
  • Fully fixed the issue where wrong DebugSymbols/DebugType values cause dotnet publish --no-build to fail.

v2.3.2

23 Jul 00:52
v2.3.2
Compare
Choose a tag to compare
  • Added a LinkTimeOptimization property to enable/disable link-time optimization (false by default).