Releases: markfinal/BuildAMation
Release v1.2.0 alpha 4
Highlights of v1.2.0a4
This alpha release includes feature updates and bug fixes. Following on from alpha 3 using vcvarsall.bat
to set up VisualC build environments, this is also now used to detect and configure WindowsSDKs.
The BAM shell scripts (batch and bash) can also now be executed from any directory, and spaces in the BAM installation path are no longer an issue.
- Fixed regression in Xcode project generation introduced in alpha 3.
- Fixed intermittent multi-threaded issue when multiple InnoSetup executable were trying to write to the same directory.
- WindowsSDKs are now detected, and sub-versions selected for WindowsSDK10, using VisualStudio and WindowsSDK scripts (affects VisualC-10.0 through 15.0).
- Compiler toolchain detection is deferred until the first tool instance module is created. More information is printed to the log in normal verbose mode to show installation paths and versions selected.
- Spaces in the installation path of BAM are now properly quoted in shell scripts. Thanks to the report from @zerocrunch.
Known issues
Release v1.2.0 alpha 3
Highlights of v1.2.0a3
This alpha release includes feature updates and bug fixes. Two callouts are the optimisation flags, and using VisualStudio files to determine an environment to run in (avoiding hardcoded versions).
- Reworked compiler optimisation flags; common settings (Speed/Size) are now more like what you should expect, while Custom is now deferred to the chosen compiler to configure to anything it chooses.
- Windows .rc files that were procedurally generated by BAM are now only written to disk when either a) they don't exist, or b) they've changed since the last write. This was causing unnecessary relinks in VisualStudio executable projects.
- Added better error text when more than 65K objects exists in the temporary folder, and BAM now automatically deletes all of its temporary files.
- Added
Bam.Core.ModulePackageDirectoryRedirectAttribute
as a per-module option to the per-package existing attributeBam.Core.PackageDirectoryRedirectAttribute
. Bam.Core.OSUtilities.GetInstallLocation
now looks in standard install locations on Windows, as well as custom locations, and can cache executable paths based on custom keys.- An overload of
Bam.Core.Graph.FindReferencedModule<T>(env)
can now be used in patch functions. Bam.Core.IOverrideModuleConfiguration.execute()
is now aware of theBam.Core.Environment
.- Added
Publisher.ZipModule
to archive a directory. (Current use-case is in the Python standard library.) - BAM now includes the vswhere NuGet package.
- VisualC packages now use vswhere and vcvarsvall.bat to determine an environment to execute tools in.
- Setting
C.CModule
executable versions has been made easier with aSetSemanticVersion
function (and several overloads).
Known issues
Release version v1.1.7
Highlights of v1.1.7
This is a bug fix release for an update to VisualStudio 2017
- Now supports the latest VisualStudio 2017 15.7 release, when specifying
--VisualC.version=15.0
on thebam
command line (or in default packages).
Known issues
Release version v1.1.6
Highlights of v1.1.6
This is a bug fix release for an update to VisualStudio 2017
- Now supports the latest VisualStudio 2017 15.6 release, when specifying
--VisualC.version=15.0
on thebam
command line (or in default packages).
Known issues
Release v1.2.0 alpha 2
Highlights of v1.2.0a2
This alpha release includes feature updates and bug fixes. Some found while using a1, and others found with the new continuous integration using TravisCI and AppVeyor.
- Any tool module deriving from
Bam.Core.PrebuiltTool
now verifies itsExecutable
exists. If not, aBam.Core.UnableToBuildModuleException
is thrown, and it is up to an invoking module as to whether it can handle this (fallback behaviour is don't build the module). Publisher.Collation.IncludeAllModulesInNamespace
has been improved, including accepting a regular expression filter to include a subset of all modules in a namespace.- Publisher copy tools (cp, rsync, xcopy) now handle their platform specific requirements internally, rather than imposing that onto the collation modules. (Simplifies the logic a lot.)
- Stripped collation now copies from the runtime collation, not the source data. This allows the runtime collation to make any modifications (e.g. rpaths, install_name_tool, etc) in order to create a runnable distributable, and stripping should apply to that.
- Many bug fixes.
Known issues
Release v1.2.0 alpha 1
Highlights of v1.2.0a1
This release includes major (breaking) changes to both the core assembly (in the TokenizedString
class) and the Publisher
and C
packages.
Publisher
now reuses the dependency tree declared at build time in order to determine runtime dependencies to be included in a distribution. You only need to specify the top-most application to include.Publisher
continues to allow additional files and directories to be published alongside an application.Publisher
defines 'default layouts' for software distributions, which are platform specific and application-type specific (although package scripts are written mostly agnostically). Users may also define their own layouts.Bam.Core.TokenizedString
has been updated to be more flexible to handle the layout system above; macros may be found from module-hierarchies; partially parsed strings may be embedded into others more easily; theParse()
function now only performs parsing; theToString()
function only returns a parsed string, but will raise an exception if used on any incompletely parsed string; aliased strings have been removed andSet()
function introduced to (under certain conditions) modify aTokenizedString
.C
packages has changes to theC.OSXFramework
class signature, andC.SharedObjectSymbolicLink
modules added for the Linux symlinks to shared objects as first class modules now (simplifying publication).
Additionally:
- Unit tests have been added for the Core assembly.
- Thread safety has been hardened for all build modes.
- Performance improvements in the Core assembly.
- And much more
Known issues
Release version v1.1.5
Highlights of v1.1.5
This is a bug fix release for an update to VisualStudio 2017
- Now supports the latest VisualStudio 2017 15.5 release, when specifying
--VisualC.version=15.0
on thebam
command line (or in default packages).
Known issues
Release version v1.1.4
Highlights of v1.1.4
This is unchanged since v1.1.4 beta 1, so includes:
- Supporting Xcode 9 with macOS 10.13 SDK. Use
--Clang.version=Xcode9
to test. - Fixed stack overflow bug during package dependency evaluation.
- Added
C.ICommonCompilerSettings.NamedHeaders
, that is a list of headers to process as if appearing as the first line of each affected source file. Supported on VisualC, Mingw, Gcc and Clang (macOS). Added test case, ProcessNamedHeaderTest. - Fixed Xcode project generation when an
C.IAdditionalSettings
string contained a space, e.g.-include limits
.
Known issues
Release version v1.1.4b1
Highlights of v1.1.4 beta 1
- Supporting Xcode 9 with macOS 10.13 SDK. Use
--Clang.version=Xcode9
to test. - Fixed stack overflow bug during package dependency evaluation.
- Added
C.ICommonCompilerSettings.NamedHeaders
, that is a list of headers to process as if appearing as the first line of each affected source file. Supported on VisualC, Mingw, Gcc and Clang (macOS). Added test case, ProcessNamedHeaderTest. - Fixed Xcode project generation when an
C.IAdditionalSettings
string contained a space, e.g.-include limits
.
Known issues
Release version 1.1.3
Highlights of v1.1.3
This is a bug fix update for v1.1.2.
- Fixed regression from v1.1.2 that stopped functionality on macOS and Linux.