Releases: vezel-dev/zig-sdk
Releases · vezel-dev/zig-sdk
v5.1.3
- Changed
UnicodeEnvironment
to also control the_UNICODE
macro (in addition toUNICODE
). - Changed
TargetFramework
property fromnetstandard1.0
tonetstandard2.0
to address aNETSDK1215
warning in .NET 9.- This should not cause any functional changes as the target framework is irrelevant for projects using the Zig SDK.
v5.0.112
- Bumped default
ZigVersion
from0.11.0
to0.13.0
. - Changed default
LanguageStandard
for C projects fromgnu2x
tognu23
. - Changed default
LanguageStandard
for C++ projects fromgnu++2c
tognu++23
. - Removed the
CompilerMode
property.- Instead, the SDK now sets the
Language
property (Zig
,C
,Cxx
) based on project file extension (.zigproj
,.cproj
,.cxxproj
).
- Instead, the SDK now sets the
- Bumped
TargetLibraryVersion
forlinux-ppc64el
from2.17
to2.19
.- glibc does not support this target in prior versions.
- Changed
LinkTimeOptimization
to betrue
by default. - Added a
UnicodeEnvironment
property to control theUNICODE
macro andwmain
/wWinMain
usage on Windows. - Added a
BufferAnalysis
property to control-Wunsafe-buffer-usage
. - Enabled
-Winvalid-utf8
by default atWarningLevel=1
and above. - Enabled
-Wincompatible-function-pointer-types-strict
by default atWarningLevel=4
and above. - Removed the
ZIG_GLOBAL_CACHE_DIR
workaround as the bug it was working around appears to have been fixed.- This should result in noticeably faster builds in general.
- Fixed
EditorSupport
logic to produce correct JSON on Unix systems.
v4.2.16
- Changed
OutputType
to acceptWinExe
in addition toExe
andLibrary
. - Added support for setting the executable subsystem based on
OutputType
when targeting Windows. - Added
ImageBase
andDynamicImageBase
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 aRuntimeIdentifier
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 ofqemu-x86
. - Fixed QEMU detection to use
qemu-ppc64
instead ofqemu-powerpc64le
. - Fixed WSL/QEMU detection logic when the host architecture is 64-bit Arm.
- Fixed Wine detection incorrectly using
wine64
instead ofwine
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.
- Fixed QEMU detection to use
- 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
, andPublish
.
- An outer build is one that is going to dispatch multiple builds for all
- Exposed target extension points
OuterBuild
/InnerBuild
,OuterClean
/InnerClean
, andOuterPublish
/InnerPublish
.
v4.1.3
v4.0.164
- Set
TargetSystemVersion
for Windows towin8
rather thanwin10
in accordance with .NET support policy.- This was mistakenly changed from
win7
towin10
in v4.0.154.
- This was mistakenly changed from
- Changed
CoreCompile
to generate a friendly error message if no source files exist in the project.
v4.0.154
- Retargeted MSBuild tasks assembly from
net472; net6.0
tonetstandard2.0
. - Bumped default
ZigVersion
from0.9.1
to0.11.0
. - Bumped
TargetSystemVersion
for macOS from10.14
to11.7
in accordance with Zig support policy. - Bumped
TargetSystemVersion
for Windows fromwin7
towin10
in accordance with .NET support policy. - Changed
HostAbi
/TargetAbi
for macOS fromgnu
tonone
. - Changed
HostArchitecture
/TargetArchitecture
for 32-bit x86 fromi386
tox86
. - Added
linux-arm
,osx-arm64
, andwin-arm64
to the defaultRuntimeIdentifiers
. - 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
- Added
LinkerDirectory
andLinkerReference
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
v3.0.96
- 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 "runzig fmt --check
duringBuild
".FormatOnBuild=true
is interpreted as "runzig fmt
duringBuild
" (equivalent to running theFormat
target).
- Added a
- Renamed
Zig
MSBuild task toZigCompile
. - Changed
MicrosoftExtensions=true
to imply-Wno-microsoft-abstract
,-Wno-microsoft-anon-tag
, and-Wno-microsoft-union-member-reference
. - Enabled
-Wreserved-identifier
by default atWarningLevel=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 toZIG_CFG_*
. - Fixed emulator detection logic for
win-arm64
.