WSJT-X/boost/tools/build/notes/changes.txt

318 lines
12 KiB
Plaintext

Copyright 2004-2007 Vladimir Prus
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
Milestone 13 (in development)
Changes in this release:
The following bugs were fixed:
- gcc suport did not work on HP-UX systems
Milestone 12 (Oct 1, 2007)
Changes in this release:
- The Pathscale, PGI and mipspro compilers are now supported.
- Support for autoconfiguration of toolset based on command-line
toolset=xxxx request, and for default toolset
configuration as a fallback.
- Support for precompiled headers for gcc toolset,
and improvements for msvc.
- Mechanism for removing inherited requirements.
- The 'make' rule support specifying usage-requirements.
- New 'project.extension' rule for declaring standalone
projects.
- New 'conditional' convenience rule.
- New 'glob-tree' rule.
- The 'glob' rule accepts patterns to exclude.
- Inline targets are now marked explicit automatically.
- Toolsets can now implicitly add requirements to
all targets.
- New 'generate' rule.
- The executables produced by the 'run' rule are automatically
removed after run.
- The gcc toolset uses the version obtained by running
the compiler, if no explicit one is provided.
- The sun toolset now supports the 'address-model' feature,
and uses -KPIC for shared libraries.
- Free features on command line affect all targets, not
just 'directly requested' ones.
Documentation changes:
- Installation instructions for Linux distributors.
- Configuration options for all supported C++ compilers
are now documented.
The following bugs were fixed:
- The 'cflags' and 'linkflags' now work on Darwin.o
- The intel toolset now works on Windows.
- Fix library search options for CodeWarriour toolset.
- The <install-source-root> could cause duplicate
mkdir commands.
- Numerious fixes in Boost autolink support
- Numerious fixes in Boost.Python support.
- Indirect properties not evaluated in usage requirements.
- Generator that returns a property set but not target is
considered successful.
- On Darwin, when several compiler versions
are configured, -fcoalesce-templates is applied only to
versions that need it.
Milestone 11 (Jule 20, 2006)
Changes in this release:
- New C++ compilers: IBM xlf, HP aCC, HP CXX, Intel fortran compiler.
- New tools: Qt4 support, MS message compiler and IDL compiler.
- New main targets: 'notfile' and 'cast'.
- Core changes:
- Only one file required at top level of a project, named Jamroot.
- Jamfiles can now contain project-specific help messages.
- "Indirect conditional requirements" introduced
(http://tinyurl.com/mn3jp)
- Strip suffix in main target names when computing names of generated
files (URL)
- The 'source-location' project attribute can contain
several directories.
- Usage requirements are propagated not only direct dependents,
but to indirect dependents.
- Command line option changes (see http://tinyurl.com/zbycz)
- New option --build-dir
- The --clean option cleans only target below the current directory,
not globally.
- New --clean-all option was added.
- New option --debug-building
- Running "bjam some_directory" works even if there's no Jamfile
in the current directory.
- Toolset improvements:
- Assembling support with gcc, borland and msvc.
- Support amd64/ia64 cross-compiling with msvc.
- Improved, registry-based autodetection for msvc.
- Serialize execution of gcc.link actions
- Precompiled headers supported on MSVC
(Need documentation)
- New features <warnings> and <warnings-as-errors>
- The 'glob' rule accepts wildcards in directory names.
- The 'stage' rule was renamed to 'install'
(the old name still available for compatibility)
- The <tag> feature can accept user-defined function as value
(URL)
- The 'install' rule can install a directory hierarchy preserving relative
paths.
- The 'install' rule no longer allows to change library
name during install.
- The Jamfile referred via 'use-project' may declare project id different
from the one in 'use-project'.
- The 'using' rule now searches the directory of containing Jamfile.
The following bugs were fixed:
- The <library> feature was ignored for static linking
- Fix #include scanning for C files.
- Child projects were sometimes loaded before parent projects.
- Fix project references with absolute paths on Windows.
- The <dependency> feature was ignored for 'install' targets.
- A generator having the same type in sources and targets was causing hang.
- Use 'icpc' command for Intel, fixing errors with 8.1 and higher.
- Generation of PS files with the FOP tool really produces .PS files.
- No dependency scanning was done for C files.
- The 'constant' and 'path-constant' rules did not accept multi-element
value.
- Don't pass -fcoalesce-templates to gcc on OSX 10.4
- Fix static lib suffix on OSX.
- Fix rpath setting on Intel/Linux.
- The 'install' rule don't unnecessary scans #includes in installed
headers.
Developer visible changes:
- Ability to customize type's prefix depending on build properties.
- Generator's 'run' method can return usage-requirements.
- Main target rule is automatically declared for each new target type.
- 'Link incompatible' feature attribute was removed
- Generators no longer bypass unhandled sources, they just ignore them.
- If there are several applicable generators, immediately report ambiguity.
Provide a way to explicitly resolve conflicts between generators.
- The 'flags' rule can match absense of feature.
- Great improvement in response files handling
- The 'toolset.flags' rules allows value-less feature to signify
absense of this feature (fix hack-hack).
- Automatically declare main target rule for each declared target type.
- When inheriting types, inherit generators for the base type, as opposed
to using various hacks to invoke base generators when needed.
- Improve diagnostic for "duplicate actual target" and generator ambiguity.
Milestone 10 (October 29, 2004)
Changes in this release:
Many toolsets were added: Intel, Metrowerks, Comeau, aCC, vacpp.
Documentation was converted to BoostBook and improved.
Performance was improved.
- Toolsets initialization syntax is much more uniform. Compiler and linker
flags can now be specified.
- The algorithm for computing build properties was improved. Conditional
requirements can be chained, and a number of bugs were fixed.
- Specific order of properties can be specified.
- The main target rules can be called from everywhere, not necessary from
Jamfile.
- Check for "unused sources" removed.
- The <library> feature affects only linking now.
- The <file> feature now works only for libraries.
- Simpler syntax for "searched" libraries was added.
- New <dependency> feature.
Unix:
The right order of static libraries on Unix is automatically
computed.
The <hardcode-dll-paths> feature is the default.
gcc:
The -fPIC option is passed when creating shared libraries.
Problems with distcc were solved.
Sun:
It's now possible to use the sun linker (as opposed to gnu), and
to compile C files.
Darwin:
Shared libraries are now supported.
MSVC: Before resource files compilation, the setup script is invoked.
Options deprecated in 8.0 are not longer used.
The following bugs were fixed:
- The <unit-test> rule did not handle the <library> property (!!!!!!)
- Don't add "bin" to the build directory explicitly specified by the user.
- Allow <include-type> to select staged targets,
even with <traverse-dependencies>off.
- Includes for the form '# include <whatever>" did not work.
- (Qt) Add paths to all dependent libs to uic command
line, which helps if the UI files uses plugins.
- Using <toolset-msvc:version>xxx in requirements was broken.
- Error message printed when target can be found is much more clear.
- Inline targets in sources of 'stage' did not work.
- Don't produce 'independent target' warnings on Windows
- (gcc) The <link-runtime>static did not work.
- (gcc) Suppress warnings from the 'ar' tool on some systems.
- (gcc) Don't try to set soname on NT.
Developer visible changes:
- Generator priorities are gone, explicit overrides are used.
- 'Active' features were removed
- Support for VMS paths was added.
Thanks to Christopher Currie, Pedro Ferreira, Philipp Frauenfelder,
Andre Hentz, Jurgen Hunold, Toon Knapen, Johan Nilsson, Alexey Pakhunov,
Brock Peabody, Michael Stevens and Zbynek Winkler who contributed
code to this release.
Milestone 9.1 (Nov 6, 2003)
The following bugs were fixed:
- The 'unit-test' rule used to ignore <library> properties.
- The gcc toolset used to ignore <threading> property.
Milestone 9 (Nov 6, 2003)
Changes in this release
- Putting library in sources of other library now works even for static
linking, which makes expressing library->library dependency much
simpler.
- Performance was considerably improved.
- Regression testing framework now works on windows.
- The "alias" rule can have usage requirements and passes on usage
requirements of sources.
- The "stage" rule can traverse dependencies.
- Support for "def files" was implemented.
- Targets paths are now shorter.
- Darwin toolset was improved.
The following bugs were fixed:
- It was not possible to specify empty suffix for a target type derived
from other type.
- The stage rules used to generate incorrect suffix in some cases.
- It was possible to load Jamfile twice.
- The 'use-project' rule was broken when referring to a child project.
- Use of composite properties in requirements did not work.
Developer visible changes:
- New CALC builtin, which considerable improves performance.
- Source layout was reorganized.
- Handling of response file was simplified.
Thanks to Pedro Ferreira, Kirill Lapshin, Andre Hentz, Paul Lin,
Jurgen Hunold, Christopher Currie, and Brock Peabody, who contributed to
this release.
Milestone 8 (Oct 15, 2003)
Changes in this release:
- A regression testing framework was implemented.
- New <implicit-dependency> feature was added for better handling
of dependencies to generated headers.
- The link-compatibility checks not longer cause projects to be skipped,
and issue warning, not error, for main targets.
- Algorithm for selecting main target alternative was improved.
- The <dependency> feature was renamed to <use>.
- Project root constants were made available in project root itself.
The following bugs were fixed:
- failure to recognize shared libraries with version as such
- the 'path-constant' rule was mishandling absolute paths on Windows.
Milestone 7 (Sep 11, 2003)
Changes in this release:
- Performance was improved.
- Support for Sun and Darwin toolsets was added.
- <tag> feature, which changes the name of target depending of build
variant, was implemented.
- Old-style targets-ids are no longer supported.
- New 'glob' rule allows to easily perform wildcard matching in Jamfile.
- Improve bison/flex support to understand C++.
The following bugs were fixed:
- bogus error on use of project default-build attribute with several
main target alternatives.
- broken toolset inheritance
- hard error after skipping a target due to incompatible requirements
- incorrect behaviour of a generator when producing several targets of
the same type
- errors on use of the 'project-root' rule in Jamfile context
- inability to require specific compiler version for a main target.
- incorrect behaviour of "bjam msvc" when msvc is configured with explicit
version.
Thanks to Christopher Currie, Pedro Ferreira and Michael Stevens, who
contributed to this release.