waf/ChangeLog

175 lines
8.0 KiB
Plaintext

NEW IN WAF 1.9.11
-----------------
* Detect Visual Studio 2017 Build Tools using vswhere.exe #1945
* Improve preprocessor performance on system paths in verbose mode #1950
* Better installation defaults for windows import libraries #1860
* cpplint enhancements: --cpplint-root #1953 #1956
* eclipse project generator enhancements #1957 #1958
NEW IN WAF 1.9.10
-----------------
* Detect -pie and -rdynamic in parse_flags #1936
* Fix Fortran module naming case
* Improve Visual Studio 2017 compilers detection (no vswhere/tools yet) #1925
* Prevent unnecessary Vala rebuilds due to vapi file installation
* Process .vapi files as input source files
* Reflect the current build group in bld.current_group
* Obtain NO_LOCK_IN_TOP/RUN/OUT from os.environ too
* Xcode9 generator fixes and example update #1939 #1943
NEW IN WAF 1.9.9
----------------
* Fix QT5 detection on macOS 1912
* Fix Clang compilation database when no c compiler is found #1914
* Fix python 3 compatibility with cppcheck #1921
* Fix the thread index in parallel_debug
* Fix install task for mac_files #1911
* Fix msvc version detection #1907
* Add VS2017 support #1927
* Add newer fortran flag detection #1916
* Add unity builds settings per task generator
* Add run_build_cls parameter to conf.run_build/conf.check
* Add a warning for missing cflags/cxxflags in gccdeps
NEW IN WAF 1.9.8
----------------
* Keep winres flags in subsequent detections #1908
* New -qopenmp option #1900
* Enable Java compat attribute as numbers #1899
* Qt5 library detection enhancements
* Save compiler optimization flags from foo-config #1887
* Emscripten enhancements #1885
* Fix chmod with tuple rules #1884
* Include all vars in tuple rules #1883
* Compile glib2 schemas per directory #1881
* Boost libraries detection enhancements
* Work around an annoying Python 3.6 regression #1889
NEW IN WAF 1.9.7
----------------
* Conceal Python 2.6 subprocess errors on Unix-like systems
* Read variables from self.vars #1873
* Revert archive permissions to be world-readable #1875
NEW IN WAF 1.9.6
----------------
* Display @argfile contents in msvcdeps #1831
* Enable configurable preprocessor cache sizes #1833
* Allocate lru cache entries lazily
* Let unity builds use relative paths for msys #1834
* Added --dump-test-scripts to the unit test module #1852
* Added a warning on ant_glob '.' uses #1853
* LaTeX configuration tests output results to config.log
* Accept functools.partial() as task rules #1865
NEW IN WAF 1.9.5
----------------
* Fix the command-line option for the python executable (--python -> --pythondir) #1812
* Add support for older PyQt4 bindings #1813
* Expand properly `--xyz=${VAR}` when `shell=False` #1814
* Add qt5 5.7.x new libraries to qt5 tool #1815
* Add install_user and install_group to bld.install/bld.install_as/bld.symlink_as
* Reduce unnecesary build outputs verbosity #1819 #1828
* Prevent broken console encoding settings from causing additional failures #1823
* Let "waf --zones=argfile" display @argfile contents
NEW IN WAF 1.9.4
----------------
* Enable 'waf dist' in arbitrary paths #1806
* Handle subprocess timeouts in Python 3.3 #1807
* Set the configuration test build class on conf.run_build_cls
* Provide execution order constraints in parallel configuration tests
* Accept Task.cwd as str type
NEW IN WAF 1.9.3
----------------
* Improve the behaviour of parallel configuration tests (conf.multicheck) #1793
* Fix the Fortran Nag compiler detection #1797
* Detect Qt 5.7 (-std=c++11 flag) #1800
* Detect Boost python on Gentoo #1802
* Update the strip and netcache examples
NEW IN WAF 1.9.2
----------------
* Fix a Python 3 encoding error when displaying the file hash in 'waf dist' #1769
* Force qt5 static library detection with 'QT5_XCOMPILE=1 QT5_FORCE_STATIC=1 waf configure' #1588
* Force the parent os.environ value as default in pre-forked processes #1791
* Support flexflags as arguments #1782
* Update a few extensions: xcode, pytest, msvcdeps, cppcheck, win32_opts, codelite
* Store Task.last_cmd selectively, so that extensions can use them (clang_compilation_database)
* Set TaskBase.keep_last_cmd to keep the last command executed
* New pyqt5 extension #1790
* Remove all non-BSD code from the Waf archive file
NEW IN WAF 1.9.1
----------------
* Execute proceses with run_regular_process when arguments are not serializable #1764
* Do not de-duplicate configuration flags assigned through uselib_store (conf.check tests)
* Enable SVG pictures in the documentation
NEW IN WAF 1.9.0
----------------
* General enhancements:
- Detect Clang first on many platforms, in particular on FreeBSD #1528
- Remove Node.cache_sig and Node.sig so that dependencies involve file contents by default #1580
- Change cflags in the beginning / cppflags at the end #1505
- Merge ${FOO}${BAR} flags in commands executed without a shell (no spaces inserted)
- Interpret empty command-line defines as integer values for dependency calculation #1704
- Waf tools are not cached on "waf configure" by default anymore; pass conf.load(.., cache=True)
- Enable a consistent progress bar output #1641
- Add ${VAR?X} constructs in script expressions to enable simple conditional outputs
- Enable 'waf dist' to package arbitrary symlinks in tarballs #1719
- Enable regexp objects in @extension besides strings for file extensions
- Match extensions in the order of last definition
- Task generators are now processed group-by-group, so the next task generators are
processed when all tasks in a previous group are complete; bld.post_mode=POST_LAZY
becomes thus the default (playground/dynamic_build/ examples)
- Process Qt5 files in the way suggested by the Qt documentation
- Installation methods install_files/install_as/symlink_as create regular task generators
and regular tasks so that installation outputs can be re-used easily
- Subclass waflib.Build.ConfiguredContext to enable configuration-dependent user commands
- Enable @argfile procesing in Task.exec_command when argument limits are exceeded
- Apply optional tsk.env.PATH values in Task.exec_command
- Enable ut_str to process scriptlet expressions for C/C++ unit tests
- Minimize the amount of paths added to unit test environment variable
- Restore configuration values with Configure.autoconfig='clobber' #1758
- Rebuilds are applied on file contents so that update_outputs is no longer needed
* Performance highlights:
- Reduce the key size in bld.task_sigs by adding bld.node_sigs and bld.imp_sigs
- Remove __hash__ and __eq__ from Context, Node and Task #1629
- Detect visual studio versions lazily by default
- Remove the uses of run_once that can consume a lot of memory; add a proper LRU cache
- Enable pre-forked builds by default to achieve faster builds, up to 2x speedup on short-lived processes
- Enable faster consumers in Runner.py
- Add the tool 'nobuild.py' to help with performance troubleshooting
- Enable profiling with the --profile command-line option
* API changes:
- The minimum Python version required is Python 2.5
- Add Task.get_cwd()
- Remove the command called 'update'
- Remove unused variables and functions:
- TaskBase.attr()
- Build.POST_BOTH
- Options.platform
- Options.cmds
- Task.dep_vars (define Task.vars on instances if necessary)
- Utils.nogc
- Configure.err_handler
- All duplicate split() functions from Utils
- Remove the unused attribute 'mac_resources', use 'mac_files' instead (see demos/mac_app)
- Remove qt4 and kde4 from the default modules
- Refactor msvc.py
- Task.sig_vars, Task.sig_explit_deps and Task.sig_implicit_deps return None
- Use relative paths in apply_incpaths by default (and absolute ones when paths cross drives)
- Modify Utils.run_once so that it accepts a list of *args
- Better consistency between check_cfg and check_cc variables
- task_gen.mapping and task_gen.prec are not defined by default on instances anymore, but
instances can still define their own mappings to override the defaults, but in
that case all mappings/precedences must be present. These features were not used in Waf 1.8.
- Do not truncate _task suffixes from Task class names if present