2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-20 02:32:13 +00:00
Commit Graph

12274 Commits

Author SHA1 Message Date
René Ferdinand Rivera Morell
512ea1f073 Release notes for 4.3.0. 2020-06-25 18:04:14 -05:00
Rene Rivera
6b40dd361e Fix path to portable install style bootstrap. 2020-06-25 13:52:05 -05:00
Rene Rivera
713c6037af Merge branch 'develop' into feature/native-jambase 2020-06-25 09:51:05 -05:00
Rene Rivera
34bcd0ae07 Merge branch 'feature/portable-install' into develop 2020-06-25 09:20:42 -05:00
Rene Rivera
a3bdb4fd98 Use newest available VS for bootstrap build.
This was detecting the "oldest" VS install instead of the most recent
one when multiple VS installs are available. It's always better to use
the latest one as it will have bug fixes.
2020-06-25 09:15:48 -05:00
Rene Rivera
15e1928399 Fix is_root check to account for Windows paths.
Windows drive style paths should also be considered rooted as otherwise
we can't bootstrap when we specify one of those paths. This caused a
regression in Boost where that is regularly used.
2020-06-25 08:37:43 -05:00
Rene Rivera
4f6f4a2510 Add missing early exits to bootstrap sequence.
Some tests failed because the bootstrap would continue to run even
detecting a problem. This puts in the missing early return statements
in the boost-build builtin rule to get the short circuit on error
like the original Jambase.
2020-06-23 22:15:07 -05:00
Rene Rivera
e037347820 Add "portable" install layout for B2.
This implements two styles of install layouts for B2: standard and
portable. This uses the new symbolic stage install locations. The
portable layout creates a structure relative to the B2 executable.
And hence allows for moving the B2 executable anywhere. This is
important for Windows and MacOS where there is no reasonable
packagining structures.
2020-06-23 07:46:53 -05:00
Rene Rivera
275dc6e6bf Work around some older compiliers.
Some older compilers don't coerce in the ctor even if there's one
available.
2020-06-22 17:36:23 -05:00
Rene Rivera
a511f6517c Add new startup.cpp for b2 engine build. 2020-06-22 10:38:48 -05:00
Rene Rivera
59b7a6dc69 Port Jambase to C++.
This ports the minimal Jambase to native C++. This removes the need for
mkjambase and the Jambase files. To accomplish that it adds C++
utility wrapers around Jam language primitives. Which makes future
similar work much easier.
2020-06-22 08:48:24 -05:00
Nikita Kniazev
269272327e Add MSVC /Gw switch (#618)
The flag makes it possible to LTO data along with code.
2020-06-10 17:54:17 -05:00
joriscarrier
5faca0dfca fix: link statically against boost-python on linux (#581)
Co-authored-by: Joris Carrier <joris.carrier@ugloo.com>
2020-06-10 17:52:11 -05:00
Edward Diener
22757bbd6f Merge pull request #567 from eldiener/develop
Allow linking for gcc/mingw and clang targeting gcc on Windows to use response files to mitigate Windows command line limitations.
2020-06-09 20:12:26 -04:00
Rene Rivera
c553a3a17a Fix replacede location translation within conditionals.
When using conditionals the location, if using replacements, would get
mungerd as the replacement part would fall in the middle of the path.
Using a custom translate-path rule we can prevent the munging
from happening before it gets to back to the stage target class.
2020-06-06 08:01:03 -05:00
Rene Rivera
798f7fb94d Add translate-path feature.
The translate-path feature allows for custom path handling, with a
provided rule, on a per target basis. This can be used to support custom
path syntax.
2020-06-06 07:56:41 -05:00
Edward Diener
992e1044ba Using latest clang-linux-3.9.0.py. Corrected msvc.jam once again. 2020-06-04 22:21:11 -04:00
Edward Diener
0139e6f24e Merge branch 'develop' of https://github.com/boostorg/build into cppbuilder 2020-06-04 18:40:42 -04:00
Rene Rivera
148a69cc9b Allow for new stage dirs without sub-path.
It's useful to set up stage install dirs as aliases to others to allow
for external overrides. This makes it possible to also have such
aliases without needing to make them a sub-path of an
existing dir path.
2020-05-31 08:04:10 -05:00
Rene Rivera
ba26d04fd0 Post-fix doc tag names to be more descriptive.
Change doc tag names on stage changes to be more descriptive.
And add missing copyright statements  on changes.
2020-05-28 21:34:32 -05:00
Dmitry
51ad47134a implement configurable installation prefixes that use features (#503)
* a feature to control install prefix for install targets

* usable default for install-prefix on Windows

* additional named installation prefixes based on Autotools

* allow users to add named installation directories

* fix named directories <location> handling when requesting a subproject build

* examples for named installation directories

* document named install directories-related functions, make get-package-name more conveninent to users

* feature to allow staging into a location different than active install-prefix

* support for getting relative paths with stage.get-dir
2020-05-28 07:50:06 -05:00
Nikita Kniazev
b613e6dbf3 Embed manifest via linker (#604)
The feature is enabled by default only for MSVC 11 and above not to break
derived toolsets.

Unfortunately, it cannot be enabled on clang-cl with MSVC linker at the moment
because it because of some path issues:
```
>clang-cl test.cpp /link /manifest:embed
LINK : fatal error LNK1158: cannot run 'rc.exe'
clang-cl: error: linker command failed with exit code 1158 (use -v to see invocation)
```

Note: `embed-manifest-file` feature was broken before the change and still is
broken under `embed-manifest-via=mt`. The fix seems to be obvious, but I am not
fully understand what happens inside link/link.dll rule to fix it here.
2020-05-27 14:43:52 -05:00
Edward Diener
5d2bae3048 Merge branch 'develop' of https://github.com/boostorg/build into cppbuilder 2020-05-23 21:16:14 -04:00
Nikita Kniazev
60270e4322 Missing import in property-set.create (#611) 2020-05-19 19:43:12 -05:00
Edward Diener
b03b5d2808 Merge branch 'develop' of https://github.com/eldiener/build into cppbuilder 2020-05-19 11:50:13 -04:00
Peter Dimov
ac44902f4e Fix <runtime-debugging> not being encoded for clang-win (as identified in #586) (#605) 2020-05-15 17:43:49 -05:00
Nikita Kniazev
d9efdb9fe2 Updated scarce :chars documentation with :BS example (#607)
Also, some clarification to `:B` and `:S` expansions.
2020-05-15 17:43:13 -05:00
Rene Rivera
c2137c3503 Allow wildcard matching for arg_file type args. 2020-05-14 20:24:55 -05:00
Edward Diener
e1b30dddd9 Corrected version checking. A version like 14.2xxx, where xxx is a non-number, has always been allowed to distinguish different setups of the same version or versions that do not differ by version number but do differ in implementation, such as 14.2 and 14.2 preview. 2020-05-13 23:22:10 -04:00
Edward Diener
06adb9c6fe Updated the 64-bit assembler to use the built-in one in bcc64. 2020-05-13 20:32:45 -04:00
Edward Diener
1e0dbeb6d4 Merge branch 'develop' of https://github.com/boostorg/build into cppbuilder 2020-05-13 16:41:33 -04:00
Edward Diener
2f914d1acf Use nasm as the 64-bit assembler 2020-05-13 16:41:07 -04:00
Peter Dimov
69c242dca1 Add missing assembler options to clang-win.jam, to enable Context to build (#602) 2020-05-12 07:32:31 -05:00
Nikita Kniazev
a11b1c104f Fix timestamp_delta_seconds (#603)
* The multiplier 1000000 is wrong
* Return seconds as function name and description says
* Use `difftime` instead of assuming `time_t` is in seconds
2020-05-12 07:31:33 -05:00
Nikita Kniazev
fecf350ce8 Remove leftover manifest generation early exiting (#599)
* Remove leftover manifest generation early exiting

It should have been removed in dd3dbcc9b6

* Remove unneeded manifest existence check

The commit it was added in d8e98e3abc says it is
fixing the problem that MSVC 8.0 does not produce a manifest file for static
libraries, but the code it touches is for shared libraries and executables.

* Collapse the same branches
2020-05-12 07:31:03 -05:00
Nikita Kniazev
85de9920a9 Fixed negation in conditional (#594) 2020-05-12 07:30:04 -05:00
Rene Rivera
319b6aa2a3 Rewrite yyacc util to actual C++.
Rewriting the yyacc utility in C++ makes it ASAN safe and hence makes it
possible to build an ASAN enabled b2 engine. To eventually make all
of the b2 engine ASAN safe.
2020-05-11 20:41:35 -05:00
Nikita Kniazev
72746a1444 Pass /nologo to rc (#601)
Supported at least with Resource Compiler Version 6.1.7600.16385 that comes in
Windows SDK v7.0A, the oldest you could obtain nowadays.
2020-05-10 19:55:24 -05:00
Andrey Semashev
e382e3acb1 Updated instruction-set feature with new x86 targets. (#597)
* Changed icelake to icelake-client and icelake-server. The single
  icelake switch is not accepted by gcc.
* Added cascadelake, cooperlake and tigerlake Intel targets.
* Added znver2 AMD target.
* Added c7 VIA target.
* Reordered the list of targets in instruction-set definition
  to group targets by CPU vendors.
* Updated toolsets with the new and updated values of instruction-set.
* Updated .py files as well. Added instruction-set values that were
  missing compared to .jam files.
2020-05-10 19:40:32 -05:00
Nikita Kniazev
71ec792806 Set CRLF line endings for .bat/.cmd files (#571)
Git does not understand `svneol`
2020-05-10 19:39:24 -05:00
Nikita Kniazev
f8327ba35b apt-get -o Acquire::Retries=3 (#600) 2020-05-10 19:27:23 -05:00
Nikita Kniazev
7fb91652ca Parallel B2 engine compilation on MSVC (#598) 2020-05-08 22:43:50 -05:00
Nikita Kniazev
f3f2b103d4 Fix config_toolset.bat VC14 flags (#595) 2020-05-06 20:52:04 -05:00
Andrey Semashev
677e2f3d54 Add cxxstd value 20 for C++20 (#592)
* Added cxxstd value 20 for C++20.

The -std=c++20 is supported by clang 10.

* Updated cxxstd=latest for clang 5.0 and newer.

clang 5.0 supports -std=c++17. clang 6.0 supports -std=c++2a.
clang 10.0 supports -std=c++20.

* Updated cxxstd=latest for gcc.

gcc 4.9 supports -std=c++14. gcc 6 supports -std=c++17. gcc 10 will support
-std=c++20.

* Added support for cxxstd=20 to toolsets that don't support C++20.
2020-05-06 10:56:38 -05:00
Nikita Kniazev
e256ee6312 Use /Zc:inline and /Zc:throwingNew flags (#575)
* Use /Zc:inline flag

VC12.0 (VS2013 Update 2) introduced /Zc:inline opt-in standard conformance
compiler flag that also similar to linker /opt:ref removes unreferenced
variables and functions that have internal linkage

* Use /Zc:throwingNew flag

VC14.0 introduced /Zc:throwingNew opt-in flag that disables a workaround
for not throwing operator new in VC up to 6.0
2020-05-05 13:37:51 -05:00
Nikita Kniazev
0eadb37690 Print fopen fail reason (#583) 2020-05-05 08:46:17 -05:00
Mateusz Łoskot
3a4bc7e4a0 Replace VS 2017 with 2019 for reference to msvc-14.2 [ci skip] (#588) 2020-05-04 20:01:28 -05:00
Nikita Kniazev
4201934664 Fill extra and pedantic warning options for every compiler (#576)
I tried my best but since I do not have access to all these compilers the
changes are based on docs I have found.
2020-05-04 19:54:05 -05:00
Edward Diener
2cfc73214d Merge branch 'develop' of https://github.com/boostorg/build into cppbuilder 2020-05-02 00:38:21 -04:00
Edward Diener
3c06be3d2f Updated fies. 2020-05-02 00:37:39 -04:00