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.app
actually 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
**.c
and**.h
files to your build.atpkgsources
and 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
.h
with 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-map
is no longer emitted. Turns out we know what that option does after all. - A problem with using
--toolchainx xcode-beta
when Xcode beta happens to be beta 2 is now resolved. - Resolving a bug when your
build.atpkg
contains anexternal-packages
with 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 foo
flag 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_DEBUG
macros 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-atbin
now 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-beta
to use the Xcode Beta toolchain. No word yet onxcode-gamma
, but we can continue to add flags until they run out of Xcodes. link-with
is 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-path
has been removed. This was deprecated in 0.9.0, and if you are still using it, what is wrong with you? Migrate to--toolchain
instead.
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
packageframework
tool, which is now deprecated and will be removed in a future version of atbuild. package-framework
requires 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
atllbuild
option,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
attool
andshell
have been resolved, particularly around the case of imported packages - A new shell/attool variable,
ATBUILD_BIN_PATH
, provides the path tobin
for the current build