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

4546 Commits

Author SHA1 Message Date
Rene Rivera
2022e93af8 Bump version to 4.7.0. 2021-09-21 22:15:28 -05:00
Matt Chambers
0a0df47a67 Use 64-bit MSVC tools on 64-bit host (#88) 2021-09-17 09:04:44 -05:00
DoctorNoobingstoneIPresume
861cd41c2b The engine can now be built with MinGW-w64 configured with --threads=win32. (#68)
* The engine can now be built with MinGW-w64 configured with --threads=win32.

This is the case for i686-w64-mingw32-g++ and x86_64-w64-mingw32-g++
distributed with the last versions of Cygwin compatible with Windows XP
(www.crouchingtigerhiddenfruitbat.org/Cygwin/timemachine.html).

The MinGW-w64 toolchains are very powerful, just like their gcc counterparts.
Even the ones with win32 threading model (as opposed to posix threading model),
while not able to use std::thread, can still build-and-use Boost.Thread.
(which, arguably, is more powerful than the Standard counterpart
for example with its support for thread interruption
-- which is less intrusive than the one offered by C++20 std::jthread).

For Windows XP, MinGW-w64 toolchains might be the only ones to support C++11.
Visual C++ has only been supporting C++11 since 2013
(and those versions require-and-often-target newer versions of Windows).

The only part of <thread> we were using was std::thread::hardware_concurrency
(in order to obtain the default value for b2's -j option).
For Windows, we now use dwNumberOfProcessors (in SYSTEM_INFO) and GetSystemInfo.
2021-09-09 08:24:22 -05:00
gnaggnoyil
1ad9483a0d remove NOENTRY flag of suppress-import-lib feature under MSVC (#86) 2021-09-08 20:31:01 -05:00
Brad Smith
dcffeb632e Do not unconditionally define unix on OpenBSD. (#85)
This resolves a warning that popped up when we switched to Clang as
Clang defines unix in addition to __unix__ unlike GCC.
2021-09-07 07:11:52 -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
Dmitry
c276640527 Add Boost.Json to contrib/boost.jam (#82) 2021-09-02 22:30:54 -05:00
Dmitry
7402029c33 Skip targets with <build>no in usage requirements (#81) 2021-09-02 22:30:08 -05:00
Dmitry
ac2cf96483 Evaluate conditionals in a loop (#80) 2021-09-02 22:25:34 -05:00
Nikita Kniazev
23212066f0 Allow only suffixes starting with a digit (#79)
An easiest way to ignore toolset platform subfeature suffixes (-linux/darwin/win).
2021-09-02 22:23:08 -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
5731edb171 Bail out when list of lists limit is reached (#52)
Previously it was silently not appending anything, what also was leading to silently dropping rule parameters.
2021-07-11 21:39:31 -05:00
Nikita Kniazev
ab2c3a1cef Print scandir error message (#50) 2021-07-11 21:30:54 -05:00
Nikita Kniazev
d89f209402 Fix a memory leak from @() feature implementation (#51)
There are still some memory leaks left to catch, but those are seems to be introduced far back.
2021-07-11 15:15:25 -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
René Ferdinand Rivera Morell
2fd5be1d96 Start a patch release. 2021-06-09 21:49:17 -05:00
tee3
5c39c4e942 property: Fix print in error condition in property.find. (#35)
* property: Add a test to show the issue with property.find.
* property: Fix property.find to print the ambiguous key
2021-06-01 07:04:35 -05:00
Rene Rivera
91fd728f3e Add a default exec path logic.
This adds default/fallback logic to determine the b2 exec absolute path
as possible. It uses the arg0 and current dir or path to construct the
liekliest path.

fixes #25
2021-05-29 22:09:13 -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
Samuel Debionne
078c68a2e5 Add default value for cxx and cxxflags options for the cxx toolset (#24)
Add default value for cxx and cxxflags options for the cxx toolset
2021-05-28 19:55:04 -05:00
Rene Rivera
00e3b9e62f Update grammar with latest bison. 2021-05-26 16:57:50 -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
Stéphan Kochen
2c4217ebb6 Set macOS default-toolset to clang (#30) 2021-05-12 07:23:15 -05:00
tkoecker
5aaf51b80e Check for needing -pthread for gcc engine build.
Some platforms, like AIX, when building with gcc need `-pthread` option to enable std thread support. This adds an alternate check with that option as fallback to plain gcc compile.
2021-05-04 08:53:48 -05:00
tkoecker
635fa23ee1 work around parse error on old busybox shells (#22) 2021-05-03 14:32:25 -05:00
Tanzinul Islam
da7efaa25b Avoid use of "local" in /bin/sh-based script (#26)
Looks like `/bin/sh` on Solaris doesn't have extra `bash`/`ksh` features, and [`local` is not in POSIX](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html).

Closes: boostorg/build#722
2021-05-03 13:47:52 -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
René Ferdinand Rivera Morell
aabf877be6 Start of 4.6.0 2021-04-23 18:40:31 -05:00
René Ferdinand Rivera Morell
4b56c50e19 Start of 4.6.0 2021-04-23 18:39:52 -05:00
Rene Rivera
c7a67d2484 Doc additions/fixes for release. 2021-03-30 21:39:32 -05:00
NeroBurner
3a8593fa9e Handle spaces in CXX path in config_toolset.bat (#13)
Surround the `CXX` path with double quotes to support spaces in the path.
Otherwise if the `CXX` variable is set to a path containing spaces like

```
C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe
```

the following error message is printed:

```
'C:/Program' is not recognized as an internal or external command,
operable program or batch file.
```
2021-03-26 20:02:30 -05:00
Rene Rivera
af7a01d213 Disable pygments.rb as it has crossversion compat issues.
Using pygments.rb fails on Ruby3 because of missing class create
methods. Which makes using the same script for ruby2 and ruby3
a problem. We aren't using pygments currently anyway, so
disable it for now.
2021-03-26 07:51:27 -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
René Ferdinand Rivera Morell
dec7030d3f Reenable ability of generators to return property-set as first item
Re-introduces functionality that was present in B2, but removed when the "" feature was introduced
Previously, generators could return a property-set as the first item in the result list, this feature removed that. It doesn't seem clear to me that removing this functionality was intentional or necessary to make the feature work. I suspect it was overlooked because the built-in generators did not utilize this functionality that the system supported
2021-03-23 07:18:53 -05:00
Rene Rivera
c4151cbfcf Bump version to 4.5.0 for next release cycle. 2021-03-08 22:49:57 -06:00