Changelog

Version 0.11.0 (2022-09-04)

Added
  • embed pyyaml

  • add value ‘all’ for variable ‘for’ in the ‘byfilter’ parameter

  • add buildconf parameter export-* for libpath, stlibpath and all *flags

  • add the ‘cleanall’ command as replacement for the ‘distclean’ command

  • remake/improve/extend substitutions (buildconf variables inside a text)

  • add some syntactic sugar for buildconf

  • get rid of ${TARGET} and rewrite substitution of ${SRC} and ${TGT}

  • add ability to use ‘and’, ‘or’ and ‘not’ in the ‘*.select’

  • add ‘host-os’ and ‘distro’ for the ‘*.select’ conditions

  • add ‘if’ for the ‘byfilter’ parameter

  • add the ‘run’ command

  • support qt5 for c++ (almost done) #31

  • enable absolute paths in path patterns

  • add runtime lib paths for the ‘run’ command and for the ‘run’ feature

  • support python 3.10

Changed
  • update waf to 2.0.23

  • fix bug with auto detection of interpreter in ‘runcmd’

  • rename ‘include’ to ‘incl’ and ‘exclude’ to ‘excl’ for buildconf parameter ‘source’

  • rename buildconf parameter ‘matrix’ to ‘byfilter’

  • rename ‘export-config-actions’ to ‘export-config-results’

  • rename buildconf parameter ‘config-actions’ to ‘configure’

  • remake and improve the buildconf parameters ‘export-*

  • prioritize yaml buildconf format

  • fix bug of no automatic reconfiguration with changed env/cli args for install/uninstall

  • rename buildconf ‘features’ to ‘general’

  • fix bug with ‘enabled.select’

  • improve buildconf validator

  • extend/improve install directory vars

  • fix problem when not all values from buildconf.cliopts have effect

  • fix order of reading config values from env, cli and config file

  • fix terminal width detection in CLI

  • improve system libraries detection

  • fix bug when zenmake could not find toolchain from sys env vars like CC, CXX, etc

  • fix problem with found zero-byte executables (mostly windows problem)

  • fix problem with short file names (8.3 filename) on windows

  • fix bug when getting rid of CXX in cmd line does not induce reconfigure

  • make stop child procces in the ‘run’ command on keyboard interrupt

  • many other fixes

Removed
  • drop python 2.x, 3.4 and pypy

  • remove task features aliases: more problems than profits

  • remove redundant ‘default-buildtype’ parameter

  • remove the ‘platforms’ parameter

Version 0.10.0 (2020-09-23)

Added
  • support Fortran language

  • add basic D language support

  • add selectable parameters for buildconf task parameters

  • support external dependencies

  • add ‘tryall’ and ‘after’/’before’ for parallel configuration actions

  • add correct buildconf validation for nested types

  • add configuration action ‘call-pyfunc’ (‘check-by-pyfunc’) to parallel actions

  • add configuration action ‘check-code’

  • add configuration actions ‘pkgconfig’ and ‘toolconfig’ (support pkg-config and other *-config tools)

  • add configuration action ‘find-file’

  • add ‘remove-defines’ for configuration action ‘write-config-header’

  • add option to add extra files to monitor (‘monitor-files’)

  • add buildconf task parameters ‘stlibs’ and ‘stlibpath’

  • add buildconf task parameters ‘monitlibs’ and ‘monitstlibs’

  • add buildconf task parameter ‘export-config-actions’

  • add buildconf task parameter ‘enabled’

  • add buildconf task parameter ‘group-dependent-tasks’

  • add add buildconf task parameter ‘install-files’

  • add parameter ‘build-work-dir-name’ to buildconf ‘features’

  • add simplified form of patterns using for buildconf task parameter ‘source’

  • add custom substitution variables

  • add detection of msvc, gfortran, ifort and D compilers for command ‘sysinfo’

  • add number of CPUs for command ‘sysinfo’

  • add ‘not-for’ condition for config var ‘matrix’

  • add ability to set compiler flags in buildconf parameter ‘toolchains’

  • add ability to use ‘run’ in buildconf as a string or function

  • add cdmline options –verbose-configure (-A) and –verbose-build (-B)

  • add cmdline option ‘–force-edeps’

  • add c++ demo project with boost libraries

  • add demo project with luac

  • add demo project with ‘strip’ utility on linux

  • add demo project with dbus-binding-tool

  • add demo projects for gtk3

  • add demo project for sdl2

  • add codegen demo project

Changed
  • improve support of spaces in values (paths, etc)

  • improve unicode support

  • use sha1 by default for hashes

  • correct some english text in documentation

  • detach build obj files from target files

  • remove locks in parallel configuration actions

  • small optimization of configuration actions

  • improve validation for parallel configuration actions

  • improve error handling for configuration actions with python funcs

  • improve buildconf errors handling

  • improve use of buildconf parameter ‘project.version’

  • remake/improve handling of cache/db files (see buildconf parameter ‘db-format’)

  • reduce size of zenmake.pyz by ignoring some unused waf modules

  • apply solution from waf issue 2272 to fix max path limit on windows with msvc

  • rename ‘–build-tests’ to ‘–with-tests’, enable it for ‘configure’ and add ability to use -t and -T as flags

  • rename ‘sys-lib-path’ to ‘libpath’ and fix bug with incorrect value

  • rename ‘sys-libs’ to ‘libs’

  • rename ‘conftests’ to ‘config-actions’

  • rename config action ‘check-programs’ to ‘find-program’ and change behaviour

  • make ordered configuration actions

  • disable ‘:’ in task names

  • refactor code to support task features in separated python modules

  • don’t merge buildconf parameter ‘project’ in sub buildconfs (see ‘subdirs’)

  • fix bug with toolchain supported more than one language

  • fix some bugs with env vars

  • fix compiling problem with the same files in different tasks

  • fix bug with object file indexes

  • fix command ‘clean’ for case when build dir is symlink

  • fix Waf bug of broken ‘vnum’ for some toolchains

  • fix parsing of cmd line in ‘runcmd’ on windows

  • fix processing of destdir, prefix, bindir, libdir

Removed
  • remove configuration action (test) ‘check’

Version 0.9.0 (2019-12-10)

Added
  • add config parameter ‘startdir’

  • add config parameter ‘subdirs’ to support sub configs

  • add ‘buildroot’ as the command-line arg and the environment variable

  • print header with some project info

  • add parallel configuration tests

Changed
  • fix default command-line command

  • fix problem of too long paths in configuration tests on Windows

  • fix some small bugs in configuration tests

  • rid of the wscript file during building

  • improve buildconf validator

  • improve checking of the task features

  • update Waf to version 2.0.19

Removed
  • remove config parameters ‘project.root’ and ‘srcroot’