Comments (4)
I would prefer option 3. It's the clearest behavior. Even if it's not the most convenient.
from b2.
The issue is that there's no reason why all alias targets (and only alias targets) should be excepted like that.
Well because alias targets won't fail if one of their dependencies doesn't build, whereas other targets will.
from b2.
While all alias
targets themselves don't fail if their sources are skipped, their dependent targets can. Consider this:
lib foo : foo.cpp : <build>no ;
alias bar : foo ;
exe baz : baz.cpp bar ;
All sources of target bar
effectively become sources of target baz
. But not directly, so baz
won't be skipped.
That being said, option 3 is the most conservative behaviour, that creates least surprises.
from b2.
Actually, I had a thought about approach number 4:
- For
alias
targets do not skip the target due to<build>no
in usage requirements. - For all targets add
<build>no
to usage requirements if there is<build>no
in either requirements or usage requirements.
As as result the problematic case from the first post will be fixed (alias
target will not be skipped, so all of its non-skipped explicit sources will be built). But also non-alias downstream targets will be skipped, so problematic case from previous post is fixed too. Furthermore we'll have a nice auto-skip for tests:
lib foo : foo.cpp : [ requires cxx11_feature ] ;
run test1 : test1.cpp foo ; # skipped on C++03
from b2.
Related Issues (20)
- bootstrap fails on gcc-8.3 HOT 8
- version mismatch message HOT 2
- `--abbreviate-paths` leads to build config clashes HOT 2
- Building boost to web assembly fails HOT 1
- Enhanced `dll-path` & `hardcode-dll-paths` documentation HOT 1
- boost fail to be detected / No 'bootstrap.jam' was found by searching for / file STRINGS file "/usr/include/boost/version.hpp" cannot be read. HOT 2
- Bootstrap procedure writes to source directory HOT 1
- OSPLAT is not defined for riscv HOT 1
- breaking change with rsp file when migrating from boost 1.78 to boost 1.83 under windows/mingw64 HOT 8
- Cannot run bootstrap.bat with VC141 HOT 3
- commented modified rebuild HOT 2
- How to build Boost arm64 on MSVC using b2? HOT 1
- `ar` response files under MinGW contain paths with backslashes, which fails
- b2 fails to build for clang 3.6 HOT 1
- FreeBSD builds in CI HOT 2
- Manifest-related problems with b2 building in msvc-14.0 HOT 2
- Can't compile and install b2 with b2 HOT 1
- How to build clangw .lib HOT 2
- `b2` build fails on gcc 4.8 HOT 1
- b2 can't find MSVC toolset for Visual Studio 2022 v17.9.0 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from b2.