* Updated borland.jam to support latest Embarcadero C++ using the 32-bit compilers bcc32/bcc32c.
# Conflicts:
# src/tools/borland.jam
* Don't pass command line options which bcc32c can not handle.
(cherry picked from commit 7c1ae7d6b1)
* Only set shared when creating DLL.
(cherry picked from commit c71077e2ef)
* Use -b- only with bcc32.
(cherry picked from commit 5be4246c43)
* Add embarcadero toolset for C++ Builder using clang technology. This initially includes bcc32c and bcc32x for 32-bit Windows and bcc64 for 64-bit Windows.
(cherry picked from commit 3dc0664ecf)
* Clean up conditional flags when the condition is not needed.
(cherry picked from commit 2bce8908d0)
* Fixed syntax and other errors.
(cherry picked from commit 3d350030c2)
* More fixes for embarcadero jam file syntax problems. Set the default EXE to a console application.
(cherry picked from commit 61844755ce)
* Added support for static library archive with tlib/tlib64.
(cherry picked from commit 365de8eb71)
* Update before further changes.
(cherry picked from commit 3a7e024686)
* Simplify requirements.
(cherry picked from commit 250ec1d7ed)
* Dropped support for bcc32c since it errors out with quite a number of clang command line options. That compiler is supported by the borland.jam file.
(cherry picked from commit 7648561a8c)
* Support for asm, archive, and user-interface options. Addition of precompiled header type.
(cherry picked from commit 25adec6e69)
* Added docs. Removed precompiled headers.
(cherry picked from commit 5af0447386)
* Remove change to version.jam and put code locally into borland.jam.
(cherry picked from commit 2ef8485e7a)
* Fixed a number of syntax issues. Fix the methods for finding the root directory. Updated the documentation.
(cherry picked from commit a52cda799f)
* Adding address model options for compile and link.
(cherry picked from commit 439c9fdaaf)
* Added linker option to generate the import library.
(cherry picked from commit b934a4fd8a)
* Update import library switch to link.dll.
(cherry picked from commit c8891dda7d)
* Added my copyright to borland.jam toolset and fixed the creation of DLLs and static libraries in the embarcadero.jam troolset.
Co-authored-by: Edward Diener <eldlistmailingz@tropicsoft.com>
* Add png16 and libpng16 to library names in libpng.jam
On Windows, this allows to successfully find the library installed
using vcpkg which deploys the library named as libpng16.lib
and not png16.lib or png.lib.
* Add rationale behind listing multiple libpng names
armasm and armasm64, the MSVC toolchain's assemblers for arm and arm64
respectively, have completely different invocations than their ml and
ml64 counterparts targetting x86 and x86-64.
Here's the full output of armasm's help:
```
cmd> armasm64 -h
Microsoft (R) ARM Macro Assembler Version 14.23.28106.4 for 64 bits
Copyright (C) Microsoft Corporation. All rights reserved.
Usage: armasm [<options>] sourcefile objectfile
armasm [<options>] -o objectfile sourcefile
armasm -h for help
<options>: (Upper case shows allowable abbreviation)
-Errors errorsfile redirect stderr diagnostics to errorsfile
-I dir[;dir] add dirs to include search path
-PreDefine directive pre-execute a SET{L,A,S} directive
-NOWarn turn off warning messages
-ignore <warning-num> don't report warning-num
-Help help (this information)
-via <file> read further arguments from <file>
-machine <machine> set the PE machine type field
-g generate debugging info
-gh:SHA_256 use SHA256 for file checksum in debug info (experimental)
-errorReport:<option> report internal assembler errors to Microsoft
none - do not send report
prompt - prompt to immediately send report
queue - at next admin logon, prompt to send report (default)
send - send report automatically
<machine>: ARM64
```
Adds gnu11 (libstdc++ with new ABI) and libc++ values to stdlib feature.
The value gnu was already in use by sun toolset, so this commit sets it as
libstdc++ with old ABI. Adds support for that feature to gcc, clang-linux and
clang-darwin toolsets. Refactors sun toolset to use stdlib feature via toolset
flags.
* add LTO support
Adds lto feature with 2 values: off (the default) and on. The feature
enables link-time optimizations. Also adds support for the feature to
gcc, clang and msvc toolsets.
* add docs for lto feature
* add lto-mode subfeature
* change lto-mode=full to be the default for uniform behaviour
* make lto feature optional
* build: Support toolset=msvc even as Cygwin build.
Fixes: https://github.com/boostorg/build/issues/459
* msvc.jam: Avoid segmentation fault if ProgramFiles env is missing.
When we run in an 'env -i' session in Cygwin, which may not have the
"ProgramFiles(x86)" or "ProgramFiles" environment variables set, we
really should not end up in a segmentation fault.
* msvc.jam: On Cygwin, query cygpath on missing ProgramFiles env.
When we run in an 'env -i' session in Cygwin, which may not have the
"ProgramFiles(x86)" or "ProgramFiles" environment variables set, we can
try to query cygpath instead.