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

1940 Commits

Author SHA1 Message Date
Michael G. Kazakov
bb35ad8556 Merge remote-tracking branch 'upstream/develop' into develop 2020-11-17 11:04:23 +00:00
Giovanni Mascellani
0b06096db7 Fix encoding in copyright headers. (#662) 2020-10-11 11:15:36 -05:00
Michael G. Kazakov
b762e4f74c Added ASAN support on MSVC
This change passes -fsanitize=address to the compiler and ensures synchronous pdb's generation. The linker is provided with corresponding libraries and is prohibited from incremental linking. Usage of address-sanitizer=on also assumes that debug-symbols=on and debug-store=database.
2020-09-24 14:16:17 +01:00
EGuesnet
37832aa3eb Erase -brtl for AIX (#628) 2020-09-16 20:04:33 -05:00
Rene Rivera
30bb04845e Add missing compileflags feature.
fixes #653
2020-09-12 09:13:44 -05:00
Nikita Kniazev
ec31848830 Default MSVC to a native platform (#596)
This also removes ambiguous implicit address-model ARM/ARM64 values.
2020-09-11 14:14:12 -05:00
hia3
0485ed055b optional package-name of package.install-data (#630)
Judging by this line:
package-name ?= target-name ;
package-name argument meant to be optional.
2020-09-01 21:53:40 -05:00
sjcooke
59065850ec Add missing relevant features for searched lib targets (Fixes #515) (#640)
* Add missing relevant features for searched lib targets (#515)
* Added a regression test for searched lib targets (#515)
2020-09-01 21:52:44 -05:00
Martin Aumüller
456be0b7ec use '-arch arm64' for 64-bit builds using darwin.jam (#642)
Even for 64-bit architectures, b2 would add '-arch arm' to the compiler
options - but this is only valid for 32-bit arm builds.
The problem was also observed here: https://stackoverflow.com/a/47096479
2020-08-29 00:02:45 -05:00
Rene Rivera
54f811b759 Remove limit on one link at a time limit.
The reason for limiting links to one at a time is long obsolete. Hence
we can remove almost all uses of JAM_SEMAPHORE to impose that
one-link-at-a-time limit.
2020-08-28 10:36:41 -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
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
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
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
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
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
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
3c06be3d2f Updated fies. 2020-05-02 00:37:39 -04:00
Edward Diener
1c94d7d0f3 Merge branch 'develop' of https://github.com/boostorg/build into cppbuilder 2020-04-21 16:54:18 -04: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
Edward Diener
cc1245b9e3 Create linking specifically for gcc/mingw(-64) on Windows. 2020-04-14 23:19:16 -04:00
Edward Diener
5802986968 Use response files for gcc on Windows and clang targeting gcc on Windows. Use forward slashes for the response file names and paths in the response files. Remove irreleavnt RPATH and SONAME usages in the actions of linking and linking a DLL. 2020-04-14 18:52:07 -04:00
Edward Diener
f9c00aaee6 For gcc use response file under Windows as well as forward slash paths. 2020-04-14 09:40:27 -04:00
Edward Diener
4530314f17 Improved Embarcadero generated command lines by using response files. Corrected system library paths. (#564)
* Use a response file for direct linker dependencies.

* Improved the command lines generated for compilation and linking by using response file. Corrected the system library files directories which should be used for bcc32x and bcc64.

Co-authored-by: Edward Diener <eldlistmailingz@tropicsoft.com>
2020-04-07 07:35:38 -05:00
Nikita Kniazev
943a28a8ba Fix pch path conflict on GCC (#563)
* Follow-up to removed restriction of pch naming on GCC

* Fix pch path conflict on GCC

gcc-pch-generator rewrites target name to a value derived from a header name
and this cases path conflict if multiple pch are created from the same header.

hello.cpp is duplicated in the test for the same reason but for `exe` target --
`exe hello-afx : hello.cpp ;` uses `hello.o` for object file name.
2020-04-03 20:27:41 -05:00
Nikita Kniazev
8198576481 Remove pch target naming restriction on GCC (#561)
Do not require pch target to have the same name as the header base name.

The restriction was added in 76d041d7c1 without
a rationale and only for GCC while reworking PCH support for GCC and MSVC.
2020-04-03 07:30:15 -05:00
Nikita Kniazev
f384d2f5a8 force-include feature (#558)
Specifies an include path that has to be included in a way like if
`#include "file"` appeared as the first line of the primary source file.
2020-04-02 11:56:47 -05:00
Bo Anderson
b3a59d2659 Fix compiler version check on macOS (#560)
Fixes #440.
2020-04-01 19:31:47 -05:00
Edward Diener
289cf16bf2 Embarcadero C++ clang-based compilers only support C++17, so cxxstd is turned off for all levels. (#559)
Co-authored-by: Edward Diener <eldlistmailingz@tropicsoft.com>
2020-03-28 21:39:02 -05:00
Edward Diener
221c8db153 The dinkumware library used by the Embarcadero clang-based compilers does not work with rtti turned off. I have reported this to Embarcadero as a potential bug but I strongly suspect that this is by design. (#556)
Co-authored-by: Edward Diener <eldlistmailingz@tropicsoft.com>
2020-03-27 13:52:24 -05:00