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

1988 Commits

Author SHA1 Message Date
Matt Chambers
0a0df47a67 Use 64-bit MSVC tools on 64-bit host (#88) 2021-09-17 09:04:44 -05:00
gnaggnoyil
1ad9483a0d remove NOENTRY flag of suppress-import-lib feature under MSVC (#86) 2021-09-08 20:31:01 -05:00
SSE4
b863465f87 - fix iconv detection for boost.locale on iOS (#83)
* - fix iconv detection for boost.locale on iOS
* clang-darwin doesn't need --start-group
* clang-darwin doesn't need -lrt
* Also need appletv to have the same exception. `appletv` is another Xcode clang related platform that would have the same limitations.
2021-09-02 22:34:39 -05:00
Volo Zyko
320c2b2ed5 Add arm/arm64 target support in clang-win config (#74) 2021-08-15 22:26:30 -05:00
psandana
37622df644 Avoid warnings about threading model for qt5.
Fixes #64 qt5.jam warning <threading>multi ignored.
2021-08-03 20:26:24 -05:00
Nikita Kniazev
6dda4098e7 Unify Clang and GCC PCH creation (#70)
Clang has GCC-compatible PCH generation interface, no need to override and re-implement PCH generation in Clang at all.
2021-08-03 20:22:23 -05:00
Nikita Kniazev
4380676c06 Use adaptive response files feature on MinGW (#65) 2021-07-31 04:59:04 -05:00
Nikita Kniazev
da10b56586 Remove architecture=combined/combined-x86-power (#63)
combined-x86-power seems to be completely unused and combined is used only in darwin toolset for Objective-C compilation which seems to be broken for 4 years because it uses gcc.set-fpic-options which was removed in 12decb3ce6.

Boost has three libraries that mentions architecture=combined, I have checked they will not brake after this change.
2021-07-30 21:31:56 -05:00
Nikita Kniazev
a844236dd8 Move Objective-C support to GCC toolset (#62)
Removes code duplication in darwin and clang-darwin toolsets.

Removes undocumented `<flags>` from several toolsets, there is documented `<compileflags>` that should be used instead.
2021-07-28 16:57:47 -05:00
Nikita Kniazev
f8c6e33e49 Fix typo in compileflags documentation (#60) 2021-07-27 11:38:24 -05:00
tee3
e37f6e40b4 Support values for instruction-set feature for Xilinx ZYNQ (#34)
* features: Support values for instruction-set feature to support Xilinx ZYNQ.

This adds several values for instruction-set (with extensions) to
support various ARM processors associated with Xilinx ZYNQ processors.

These instruction sets are used in various combinations for bare-metal
or FreeRTOS configurations.

* gcc: Support values for instruction-set feature for Xilinx ZYNQ.
2021-07-27 09:33:01 -05:00
Nikita Kniazev
1501b14289 Cleanup darwin toolsets static linking (#59)
After removing `ranlib` call there is no more darwin-specific logic, it duplicates base/parent logic and could be removed.
2021-07-27 08:21:39 -05:00
YunQiang Su
230cae51fa MIPS: add generic mips architecture (#58)
Currently, mips1 is used as generic mips architectures, but it is
confusion.
We will remove mips1 and other unused mips* architectures.
2021-07-26 22:10:13 -05:00
Nikita Kniazev
2b1a9de81b Replace ranlib call with s flag in ar call (#56)
`ar s` seems to be widely supported for a very long time:
  - at least binutils 2.10 (June 2000)
  - at least Darwin 8.0 (April 2005)
  - since FreeBSD 3.0 (October 1998)

Note: Most of other (non-widely used) toolsets do not call `ranlib` and do not call `ar` with `s` flag either. I have no idea if they are correct or not, so I am not touching them here.
2021-07-25 21:52:12 -05:00
Nikita Kniazev
2816f8d5f7 clang-linux cleanup (#47)
Removed empty rules
Removed PCH suffix override (missed in
Fix clang-pch implementation to actually use pch instead of pth. boostorg/build#368)
Removed PCH file explicit removal before creation (should be tested in pch.py test)
Unified <pch>on and <pch>off compilation actions

* clang-linux: space concat via module global variable
* clang-linux: unify pch and non-pch compilation
* clang-linux: remove overridden pch suffix

Missed in #368

* clang-linux: no need to explicitly delete pch file
* remove empty compile.c/c++.pch rules
2021-07-11 14:59:15 -05:00
Nikita Kniazev
98cdf85e5a Fix type bases registering (#46)
The issue is also was a blocker for preprocessed test
2021-06-25 23:20:35 -05:00
Nikita Kniazev
8a20d6c430 Fix preprocessing on MSVC compiler (#44) 2021-06-24 11:35:18 -05:00
Nikita Kniazev
b522b50bf0 Clang: Use --version instead of -dumpversion (#39)
* Clang: Use --version instead of -dumpversion

Fixes issue when Clang 8 and below determined as 4.2.1 version.

* Bootstrap and test with versioned toolset

Eliminates need to manual configure toolsets via `user-config.jam` for testing, and allows to pass to `bootstrap.sh` the same toolset string as you would to B2 invocation what eliminates need to specify a custom exec via `--cxx=`.
2021-06-11 17:49:01 -05:00
Rene Rivera
ecaa7a9bda Allow empty free optional feature valus in CLI.
Features that are narked as 'free' and 'optional' will now be
ignored when the value specified on the command line is
empty. Hence once can specify `cxxflags=` on the command
line without errors. All current "flags" features are now optional.

fixes #5
2021-05-29 10:57:03 -05:00
Rene Rivera
f2efcabb90 Fixes missing exec and lib path for intel-linux.
Specifying the intel-linux compiler in the path would result in failure
because the path to the compiler would never get detected and hence
the path to the compiler libs would also be missing. This fixes the
issue by explicitly computing the absolute path to the compiler exec
always for both already specified and as found in PATH.

fixes #23
2021-05-28 21:34:27 -05:00
Peter Dimov
8b923d8eaf Declare the /python//numpy target to hold the include path (fixes #725) 2021-05-24 20:17:08 -05:00
Nikita Kniazev
64dbb277b0 Include pch header automatically and on-demand (#19)
Previously it was needed to include pch header in every source file, but Clang does it automatically making the usage non-uniform. It is also a very noisy process to add pch header to an existing project. Automatic on-demand header inclusion solves both issues.

* pch: msvc source automatic header folder inclusion
* pch test refactoring
* pch test msvc automatic pch source generation
* Include pch header automatically and on-demand
* no more need in gcc pch naming hack
2021-05-03 10:56:15 -05:00
Nikita Kniazev
9552adf7e5 Versioned Clang automatic configuration (#1)
* Versioned Clang automatic configuration

Currently, without annoying `toolset.using` directives in `user-config.jam`, `b2 toolset=clang-xx` silently uses clang++ binary, even if it is a different version than requested. Instead of copycating GCC or reinventing a wheel I have generalized GCC automatic configuration and used it for Clang.
2021-04-23 18:42:53 -05:00
Rene Rivera
c7a67d2484 Doc additions/fixes for release. 2021-03-30 21:39:32 -05:00
Alexander Grund
ca7d1729b1 Also check for m-suffixed python include folder (#4)
* src/tools/python.jam
    (compute-default-paths): When the python include folder without any
    suffix does not exist, but one with a m-suffix does, use the latter
2021-03-24 09:30:33 -05:00
Rene Rivera
c9cc1ae2ed Replace refs to boost.org witth bfgroup.xyz. 2021-02-20 21:35:16 -06:00
Nikita Kniazev
e652fa47bd Implement PCH on clang-win and clang-darwin (#626)
* clang-win: enable PCH
* clang-darwin: implement PCH
2021-02-01 22:42:29 -06:00
Rene Rivera
5ede4e8d8d Rewrite intel-linux to support oneAPI release.
This rewrites the inte-linux toolset to support auto detection and
oneAPI version of compiler.
2021-01-22 07:39:14 -06:00
Edward Diener
e63cedb6c4 Support the new Intel OneAPI product (#700)
Fix for the latest icl.exe in the Intel OneAPI product. The icl.exe major version number in the oneAPI product starts with "2021" rather than "21", but the fix supports also specifying the major version number of icl.exe in the oneAPI as starting with "21". In the oneAPI product the setup file is called "setvars.bat" and not "iclvars.bat". Finally all tests for icl major versions are changed from the previously faulty string comparisons to the correct number comparisons.
2021-01-18 10:40:46 -06:00
Peter Dimov
93dabd5a9a Autodetect the clang-win default address-model from Target: in the -v output (#694) 2020-12-29 10:08:17 -06:00
Peter Dimov
527589168e Add missing case for <architecture>x86/<address-model> (#692) 2020-12-28 05:26:13 -06:00
Rene Rivera
f7cadeffcf Merge branch 'develop' into pr/660 2020-12-27 08:47:18 -06:00
Rene Rivera
f5584205b0 Fix missing C++ flags args for msvc.
Recent change fixed the use of CFLAGS vs. C++FLAGS which caused a bunch
of C++ options to dissappear. This brings then back by setting them to
appropriate OPTIONS, CFLAGS, or C++FLAGS var.
2020-12-27 07:54:24 -06:00
Rene Rivera
f694f2eedd Adjust new asan support.
The proposed asan support didn't fit into the regular msvc init structure.
This fixes that aspect and cleans up the support to correctly be minimal
and to add the missing runtime libs needed to actually enable the
asan support.
2020-12-26 23:21:47 -06:00
Rene Rivera
40b22386cd Merge branch 'develop' of https://github.com/mikekazakov/build into pr/660 2020-12-26 12:08:27 -06:00
Rene Rivera
8d37b68e1d Move more/all link options after /link. 2020-12-25 23:25:11 -06:00
Rene Rivera
30a7e738ad Move link option order to fix clang-cl invoke.
Clanf-cl is a bit more picky than plain msvc link command about order of
link option when linking. This moves the linkflags to the end of the
command as clang-cl needs.
2020-12-25 22:24:52 -06:00
Rene Rivera
ab34158599 Make clags and cxxflags apply to their respective compile commands.
This undoes what this 1a0949fbe6
did in a different way. As we now expect to have the two flags separate.

fixes #690
2020-12-25 16:14:36 -06:00
Rene Rivera
e0870c4321 Possible fix for missing response file args in clang-win. 2020-12-22 23:08:16 -06:00
Rene Rivera
714840f36f Add documentation for response-file feature. 2020-12-21 21:08:12 -06:00
René Ferdinand Rivera Morell
f62f474ed3 Fix use of mutiple conflicting @() in one action.
In the case where multiple @() substitutions happen in one action the
dynamic choice of file vs content would apply to all. This would cause
problems as some of them might not be command options. This change
adds an ":O=" options specifier to variables that can control what type
of @() substitution can happen for each expansion. By specifying "O:=FC"
one can select to allow either file or content expansion making that @()
instance dynamic. When not specified the default is as if "O:=F".
2020-12-17 08:41:47 -06:00
René Ferdinand Rivera Morell
4f86b3da88 Merge remote-tracking branch 'origin/develop' into feature/response-file-feature 2020-12-14 14:58:18 -06:00
Pino Toscano
25879fc24d Basic changes for GNU/Hurd (#676)
* Define OSMINOR & OS_HURD on GNU/Hurd

Add a way to identify GNU/Hurd with b2, and also in the Python support.

* Use /proc/self/exe for executable_path on Hurd

Use the Linux compatibility procfs translator to get the full path of
the current executable.

* Define _GNU_SOURCE on any GNU libc-based OS

Make sure to enable GNU features when building on any OS that uses
GNU libc.
2020-12-14 13:37:32 -06:00
René Ferdinand Rivera Morell
b2043d7c7a Support dynamic response files for msvc. 2020-12-14 09:15:10 -06:00
Rene Rivera
e206f0d602 Initial implementation of dynamic response files.
This implements the ability for response file "@()" substitution to
dynamically adjust to either expand the content or create the response
file depending on the possible command line length. This should
reduce the create of such response temp files improving build
performance.
2020-12-13 21:30:03 -06:00
Tanzinul Islam
495b7ee997 Ensure Embarcadero toolset name is only "embtc" (#675)
* Ensure Embarcadero toolset name is only "bcb"

This brings uniformity with the `borland` toolset. There is no danger of
mixing object files compiled with both the classic and Clang-based
compilers, as the linker now [warns about it][1].

This change, along with boostorg/config#346, fixes the expected library
names in a versioned-layout build.

[1]: https://blogs.embarcadero.com/issues-mixing-classic-and-clang-objects-linker-warnings-improving-app-stability/

* Change toolset name to embtc
2020-12-02 09:44:47 -06:00
Basil Fierz
003a3c29c1 Adapt for Emscripten 2.0 change of default behaviour for archives (#674)
When building archives Emscripten 2.0 requires the usage of the `-r` in order to create an archive and not link an executable.
2020-11-24 17:04:10 -06:00
Michael G. Kazakov
d001c81fee moved ASAN-related definitions under a version check 2020-11-17 11:51:34 +00:00
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