-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add %virtual_includes% includes substitution #6343
Conversation
Summary: use of include_prefix prevents the facility of `includes` from supplying the virtual_includes prefix without a substitution pattern. The system_include_paths configuration list will contain, for each member of `includes`, the _virtual_includes root in place of the string `%virtual_includes%`. Fixes T161160 Test Plan: Tested in conjuction with uwebsockets artifactory package integration into the AV workspace Reviewers: #bazel, elischleifer, cmoore Reviewed By: #bazel, cmoore Maniphest Tasks: T161160 Differential Revision: https://code.int.uberatc.com/D71932 Conflicts: src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java
(sorry for the late reply!) I'm not exactly a big fan -- this adds another little macro substitution in the BUILD language. At the very least, this should be implemented using the Is there a good reason for both |
The usecase for the combination is to remove some warnings that are suppressed under I don't care what does the substitution, and I agree about the test. I'll try to find some time to work it up with the $(VARIABLE) mechanism and with verification. |
I'm afraid I don't understand the "remove some warnings... that are not otherwise distinguishable" part :( Do you have an example? |
Explaining this use case is going to be difficult, but here goes: We are building 3rd party libraries that provide headers as a part of their interface that use deprecated features of C++ standard libraries (my canonical example is apache avro, using This substitution closes the gap for |
Well, this is indeed difficult to understand :) Let me see if I understand this correctly: what you want to do is to be able to say e.g. in
Then use e.g.
Am I correct? How about making |
You've got it right there, sorry I couldn't put it more succinctly. You can do that change if you like, but I would probably be loathe to have the automatic system include mechanism ( |
You've identified |
I have a similar use case. I would like CUDA headers to be quote-included as virtual headers (#include "third_party/gpus/cuda/include/cuda_runtime.h"). The CUDA headers themselves and Eigen include CUDA headers as '#include <cuda.h>'. So I need to combine both 'includes' and 'include_prefix'. I think the following approach with two dependent header targets works:
|
Closing for lack of activity. If you want to pick it up again, please comment. |
use of
include_prefix
prevents the facility ofincludes
from supplyingthe virtual_includes prefix without a substitution pattern. The
system_include_paths configuration list will contain, for each member of
includes
, the _virtual_includes root in place of the string%virtual_includes%
.