Age | Commit message (Collapse) | Author |
|
... to pass along toolchain settings for current and future
toolchain definitions. Configuration variable
COMPILER_FAMILY is replaced by TOOLCHAIN_CONFIG["FAMILY"].
|
|
|
|
... as they could contain run-libs.
|
|
Using only our third-party descriptions, the build is independent of
PKG_CONFIG_PATH. However, when combinging our third-party descriptions
with dependencies taken from the system via pkg-config there is a
dependency of PKG_CONFIG_PATH due to those indirect dependencies.
Therefore, allow flexible PKG_CONFIG_PATH to support such a mixed
bootstrapping.
|
|
|
|
|
|
This update also removes upb as external dependency.
Co-authored-by: Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com>
|
|
... as the BUILD.bazel files that are the basis for the TARGETS
files seen to declare the dependencies in an incomplete way. Target
`grpc_base_c` needs `grpc_init()` and `grpc_shutdown()` from target
`grpc` (source `init.cc`). Adding this target dependency results
in a cycle.
This commit solves the issue by producing fewer but larger
libraries (as done in GRPC's CMakeLists.txt):
- `libgpr.a`: all gpr code
- `libgrpc.a`: all gprc code, depending on `libgpr.a`
- `libgrpc++.a`: all grpc++ code, depending on `libgrpc.a`
|
|
|
|
Compared to the previous commit, the action graphs for just
and its unit tests are unchanged.
- Git hash of action graph for ["",""]:
c6e75f17abd7ffaab6ff9bb725ad67ec0bf6c973
- Git hash of action graph for ["test/buildtool","TESTS"]:
8063dfb3dd7daa9ae01d95c177e14946f785c57e
Refactor:
- "local cflags" to "private-cflags"
- "local defines" to "private-defines"
- "link externals" to "private-ldflags"
- "deps" to "private-deps" for (test) binaries
- "proto" to "private-proto" for binaries
Improvements:
- consistent variable declaration order:
OS, ARCH, HOST_ARCH, TARGET_ARCH,
CC, CXX, CFLAGS, CXXFLAGS, ADD_CFLAGS, ADD_CXXFLAGS,
AR, ENV, PATH
- use fields close to their definition (in RULES)
- use common expression for binaries and test binaries
- split expression "flags" and "compiler"
... to separate ones for CC and CXX.
- rename "transition" to "deps-transition"
... to avoid conflicts with other transitions.
- support "defaults-transition" for CC expressions
Implement:
- "cflags" for libraries
- "private-cflags" for (test) binaries
- "private-defines" for test binaries
- "private-ldflags" for test binaries
- (public) "defines" for libraries
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
So far, we did not export ["@", "grpc", "", "grpc++_codegen_proto"]
and ["@", "grpc", "src/compiler", "grpc_cpp_plugin"]. Those targets
where used implicitly in the generation of protobuf. As flexible
config we use all variables those targets currently depend upon.
This will have to be extended once cross compilation will be
added. So far, the "TARGET_ARCH" is only used by targets that have
different source files (typically inline assembly) for different
target architectures. With cross compilation, also the tool chain
will depend on the target architecture.
|
|
|
|
... and headers should be treated as headers.
|
|
The idea, as documented, of a header directory is to have a
directory, closed as a tree, owned by the respective library and
internally handled in an efficient way (as a single tree). If we
open up that directory, we just have staged data, and therefore
should treat it as such.
|
|
|
|
|
|
This is the initial version of our tool that is able to
build itself. In can be bootstrapped by
./bin/bootstrap.py
Co-authored-by: Oliver Reiche <oliver.reiche@huawei.com>
Co-authored-by: Victor Moreno <victor.moreno1@huawei.com>
|