2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-14 12:42:11 +00:00
Commit Graph

12265 Commits

Author SHA1 Message Date
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
Rene Rivera
7d9866256d Allow testing toolsets that use response files.
This adds exclusions for toolsets that use response files for some
commands. Mostly it ignores the generated rsp files.
But also adds a special arg_file value to the MockProgram for future
use for possible content checking.
2020-05-01 10:13:28 -05:00
Mateusz Łoskot
7c44b005d5 Ignore VSCode workspace file [ci skip] 2020-04-30 21:47:48 +03:00
Mateusz Łoskot
e31d397d03 Add missing arguments separator in launch.json [ci skip] (#578) 2020-04-24 20:31:36 -05:00
Edward Diener
1c94d7d0f3 Merge branch 'develop' of https://github.com/boostorg/build into cppbuilder 2020-04-21 16:54:18 -04:00
Nikita Kniazev
ae6f588f92 Replace /Ox with /O2 and remove /Zi (#572)
Reduces b2 executable size for 60% (1174KiB vs 465KiB)

/O2 is essentially /Ox /GF /Gy
/Zi implies /debug which disables /opt optimizations
2020-04-19 17:17:39 -05:00
Nikita Kniazev
c84805991d Build B2 using native arch MSVC (#565) 2020-04-18 13:06:03 -05:00
Alexander Karzhenkov
1b33c2cd50 Add QNX target option to archiver command (#570) 2020-04-18 13:05:02 -05:00
Alexander Karzhenkov
b2ab623790 Select appropriate QNX target platform (#568)
Select appropriate QNX target platform
2020-04-16 10:12:33 -05:00
Edward Diener
2627ef3a85 Create cross-platform linking for clang-linux. Update embarcadero to use its own named JAM_SEMAPHORE. 2020-04-15 22:12:45 -04:00