Releases: zyga/zmk
The one we can reuse
Changes in 0.6.0:
- The
Configuremodule now setsConfigure.DebugBuildto eitheryes,noor
empty value (default) in response to theconfigurescript command line
options--enable-debugand--disable-debugrespectively. - The
ToolchainandConfiguremodules support Objective-C better: theOBJC
environment variable is now recognized and remembered during configuration.
Documentation is updated to reflect this. - The
Toolchainmodule adds-gtoCFLAGSwhenConfigure.DebugBuildis set
toyes. - ZMK self-tests are no longer looking into hidden directories when looking for
unit tests. This notably fixes support for the Debiandgittool which uses
.gitfor storing local state that looks like the source tree. - ZMK is now compliant with the REUSE toolkit.
The well-linked release
-
ZMK now defines
ZMK.BugFixesas a set of identifiers of issues that were
known and addressed inside the library. Specific bugs may gain stable identifiers
that, once addressed, are added to the list in the next release of the library.This mechanism is intended to enable hot-fixes, which are applied to the
makefile of a specific project, which update or replace part of zmk to fix a
specific issue while doing so in a way which eventually disables the
workaround. -
The
Symlinktemplate is now documented with a dedicated manual page -
The
Symlinktemplate no longer retains the sub-directory related to the
placement in the development tree after installation, matching the behavior
of the Program template.This is a backwards incompatible change resulting from the fact that
previous behavior was simply wrong. There are additional tests checking
various combinations of this behavior now.This issue is identified in
ZMK.BugFixesaszmk-issue-80 -
ZMK integration tests no longer fail on Haiku
The BitBake friendly release
-
The
Program.Testtemplate no longer fails with syntax error when computing
test coverage. -
The
Toolchainmodule no longer misidentifies clang on FreeBSD. -
The
Toolchainmodule has initial integration test suite that checks the real
interaction with the host system. The integration test suite has reference
data for FreeBSD and MacOS. -
The
Coveritymodule gained support for checking if scan result is viable for
submission and an ability to submit the scan automatically, using the new
upload-coverity-scantarget. See the manual page for additional information
about project configuration. -
ZMK now supports additional static analysis tools:
clang-tidy,clang-analyzer
(viascan-build),cppcheckandsparse. They each define a CamelCase-named
module and aSourcesattribute which includes the set of files to scan. -
The
distcleanno longer forgets to runcleantarget. -
ZMK now allows installing multiple headers simultaneously with the
use of theHeaderGrouptemplate.HeaderGroupsupports group customization of
InstallDirandInstallModeand otherwise behaves identical to the Header
template used multiple times, manually. -
The
ClangTidytemplate now passes-- $(CPPFLAGS)if there are non-empty
CPPFLAGSdefined. This can be used to provide include paths and macro
definitions appropriate for the project. -
The
Sparsemodule now passes$(Sparse.Options)viaCFLAGSset at the environment
level before invoking recursive$(MAKE). This avoids clobberingCFLAGSset in
the build system (e.g. to pass-fpic) as make treats command line overrides
differently from environment values. -
The
Configuremodule now supports setting the target triplet. The generated
configuration script handles the--target=command line option and the result
is available as$(Configure.TargetArchTriplet). -
The
configurescript now accepts--exec_prefix=as an alternate spelling of
--exec-prefix. -
The
configurescript now accepts but ignores--oldincludedirfor compatibility
with some build systems. -
The
Configuremodule now supports configuration of static and dynamic
libraries with the new configuration script options:--enable-static,
--disable-static,--enable-dynamicand--disable-dynamic. Both library types
are enabled by default. The values are stored and inhibit expansion of
appropriate templates. -
The
HeaderandHeaderGrouptemplate no longer expand$(includedir)too early,
allowing customizedincludedirto be respected. -
The
Configuremodule no longer breaks in out-of-tree builds and no special
care is required to support that anymore. -
ZMK is now able to use an explicit sysroot for all activities.
The configure script now accepts--with-libtool-sysrootwhich sets
$(Configure.SysRoot). TheToolchainmodule defines$(Toolchain.SysRoot)which
defaults to whatever was configured. The templatesObjectGroup,Library.So,
Library.DyLibandProgramnow pass the sysroot argument when
Toolchain.SysRootis non-empty. Lastly thePVSmodule similarly passes
a non-empty sysroot when invoking the pre-processor.
Extra touches release
Changes in 0.4.2:
-
The PVS module no longer fails when running the pvs-report target.
-
The Header module no longer clobbers custom InstallDir.
-
The Library.DyLib template no longer creates symlink foo -> foo.dylib when
the library is not versioned. In addition the amount of code shared between
Library.So and Library.DyLib has increased.
Practically tested release
Changes in 0.4.1:
-
The Library.So template no longer creates symlink foo -> foo.so when the
library is not versioned. -
The ObjectGroup template no longer fails during out-of-tree builds with
dependency generation and sub-directories in source file paths by attempting
to put the generated dependency information alongside the source code. -
The ObjectGroup template no longer fails during out-of-tree builds when
the original project explicitly uses $(ZMK.OutOfTreeSourcePath). -
The PVS module longer fails when the original project uses
sub-directories to organize the source tree.
Pretty good release
Backwards incompatible changes in 0.4:
-
The Configure module introduces a backwards incompatible change in the
name of the generated configuration file. In older releases the file was
called GNUmakefile.configure.mk, starting with this release the name is
config.$(NAME).mk. $(NAME) is the name of the project, also available as
$(Project.Name). This also restricts the configuration system to projects
that define a name. The background of this change is a realization that prior
approach caused confusing an buggy behavior, where Make would search the
include path, which also contains all of PATH, for any file named
GNUmakefile.configure.mk and include the first one it found.Projects using zmk are advised to change their manually included
configuration file to one that contains their project name.
Changes in 0.4:
-
The Symlink template used by Library.So and Library.DyLib will now work
correctly when invoked with -B switch (aka --always-make), by force-creating
symbolic links that already exist. -
Program template no longer forgets to add the .exe suffix to installed executables.
-
The ObjectGroup template used by Program, Program.Test, Library.A, Library.So
and Library.Dylib now supports sub-directories in source file names. Object files
created by the object group are now created in directories corresponding to the source
files. -
The ObjectGroup template now supports additional C++ extensions: .cxx and .cc.
This is in addition to the .cpp extension that was supported before. -
The ObjectGroup template used by Program, Program.Test, Library.A, Library.So
and Library.DyLib is now performing rudimentary detection of a missing compiler. -
The GitVersion module now provides GitVersion.Origin attribute
to indicate how the version information was obtained. The value "git" is used
when git history along with git tags were used. The value "file" is used when
the .version file was read. -
The Tarball.Src template no longer breaks when used from a dist archive.
-
The Program and Script modules no longer attempt to transform installed name
when the Configure module is not imported. -
The internal toolchain.GCC module no longer attempts to invoke gcc and g++
if they are not installed. -
The ManPage module again checks for errors in manual pages. This feature
was disabled in an earlier release as it was showing a problem with zmk
that was not understood at the time. -
The Tarball.Src module only signs the release if both GPG and GPG keys are
available.
The testful release
- The release archive now contains the full collection of test files.
The source release
- The release archive no longer contains the pre-compiled manual pages. Instead
the .in files are shipped, to be compiled locally.
The more installable release
- InstallUninstall no longer reuses the relative directory in the source tree
to represent the target directory. Instead the InstallDir property is the
only way to influence the final path. This was a late discovery but one that
is ultimately only sensible. ZMK itself was adjusted to install correctly in
this new scheme.
Fixes for MacOS
-
Tests no longer hang on case-insensitive filesystems.
-
The Directory module no longer issues warnings on MacOS.