Releases: AnarchyTools/atbuild
Releases · AnarchyTools/atbuild
1.9.1: Turns out there's more than one macOS
- Now supporting deployment target for macOS (OSX)
- Improve support for importing packages that have optional dependencies you haven't downloaded.
1.9.0: environ? what's that?
- We now correctly pass environment variables to child processes. Note that swift does not support this and the pull request to fix it was rejected but because we are crazy, it works!
- Improved sorting of
--help, for those times when you're staring at an impossibly long list of possible tasks
1.8.0: Yo dawg
Exported overlays can now operate conditional behavior based on global overlays, so you can overlay while you overlay.
:overlays {
:my-exported-overlay {
:atbuild.platform.linux {
:link-options ["foo"]
}
}
}
1.7.0: I can't believe it's not beta
- Added support for Xcode 8 GM
- Improve detection of Xcode versions, because during this window who the hell knows what your
/Applications/Xcode.appactually points to
1.6.1: iOS 9? What's that.
Add support for deployment targets. Only supported for iOS.
1.6.0: Why yes, there *is* a preview release
Modernize AT for the preview releases. We now build with preview 6.
If at first you don't succeed... keep trying preview releases until at last one is stable enough to ship with!
1.5.0: Yo dawg, I heard you like build systems
- atllbuild now builds C code. This is useful if you need to fall back to C for some reason, or, as some of us have also described it, "the entire value of this feature is debatable". Just add
**.cand**.hfiles to your build.atpkgsourcesand off you go. For more options, see atllbuild documentation.- As part of this work, any C header in your sources is now imported to Swift, which means you can import any C library to your Swift code just by writing a
.hwith an import statement.
- As part of this work, any C header in your sources is now imported to Swift, which means you can import any C library to your Swift code just by writing a
- We add a new link method,
module-map-link, which is useful for libraries. For more information, see the atllbuild documentation - The warning
unknown option module-mapis no longer emitted. Turns out we know what that option does after all. - A problem with using
--toolchainx xcode-betawhen Xcode beta happens to be beta 2 is now resolved. - Resolving a bug when your
build.atpkgcontains anexternal-packageswith an SSH (non-https) URL.
1.4: Configure all the things
- atbuild now has configurations, because apparently debug builds should be different than release builds, I guess. Passing the right
--configuration fooflag produces very good defaults for whatever you are trying to do. If you are trying to do something so cool we have never heard of it, you can make your own configurations too. See our documentation on this feature- We ship
#if ATBUILD_DEBUGmacros for each configuration, so you can compile different code per-configuration without any atpkg hokery-pokery. - Our defaults now adjust to what you are trying to do. Debug builds are debuggier, release builds are releasier
- WMO is not enabled automatically on Linux because of a known issue and/or to keep you guessing
- Because atbuild itself now benefits from configurations, our atbuild binaries are faster, sleeker, and twice as water-resistant
- We ship
link-with-atbinnow allows you to link with an atbin, our universal binary package format. Now you can link your code with any library, even if they haven't joined the AT revolution for some bizarre reason- We now support
--toolchain xcode-betato use the Xcode Beta toolchain. No word yet onxcode-gamma, but we can continue to add flags until they run out of Xcodes. link-withis renamed tolink-with-product, because, plot twist, it's a flag that links your code with a product. The old syntax is deprecated; please migrate.swiftc-pathhas been removed. This was deprecated in 0.9.0, and if you are still using it, what is wrong with you? Migrate to--toolchaininstead.
1.3.1: WMO hotfix
This fixes several issues when using the whole-module-optimization option in the atllbuild tool.
whole-module-optimization is only supported with swift-DEVELOPMENT-SNAPSHOT-2016-05-09-a and higher. It is also supported with the xcode toolchain, when swift-DEVELOPMENT-SNAPSHOT-2016-05-09-a or higher is also installed.
1.3: Universal frameworks
- We've added a new tool, package-framework which can generate frameworks for both OSX and iOS.
- This replaces the builtin
packageframeworktool, which is now deprecated and will be removed in a future version of atbuild. package-frameworkrequires atbuild 1.3 or later.
- This replaces the builtin
- Bitcode is now supported, but only for the Xcode toolchain
- For more information on why this isn't enabled on Swift 3, see SR-1493
- We now perform dead code elimination for OSX/iOS. As a result, software built with atbuild 1.3 should be smaller than previously, and benchmarks suggest a 1-2% performance improvement for built software, regardless of optimization setting, due to increased cache utilization.
- For more information on why this isn't enabled on Linux, see SR-1495.
- A new
atllbuildoption,magic, controls settings you probably shouldn't disable but we'll let you do it anyway, because this is Anarchy Tools!
Internal API
- Some inconsistencies between
attoolandshellhave been resolved, particularly around the case of imported packages - A new shell/attool variable,
ATBUILD_BIN_PATH, provides the path tobinfor the current build