mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Cleanup the new dependencies and our tooling setup. (#943)
I didn't fully configure the new dependencies correctly or fully get them working with our tooling rigging for compilation databases. - I needed to fix the sha256 of the benchmark. I pasted the wrong one, but didn't test it effectively. - Didn't successfully enable the use of Abseil from GoogleTest (including nice things like its symbolization, etc). Doing this is a bit awkward as it needs to go into our `.bazelrc`, but it works. - Didn't add libraries other that GoogleTest to the compile flags. - Didn't teach the compilation database creation step to cause these external repositories to be linked in and populated nicely. All of these are fixed. As I was making changes to the Python script here, I've added a test to at least type check it and fixed the type errors reported.
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
# Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
||||
# Exceptions. See /LICENSE for license information.
|
||||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
|
||||
load("@mypy_integration//:mypy.bzl", "mypy_test")
|
||||
|
||||
# Note that this Python script is intended to be run directly, and not through
|
||||
# Bazel. We have a rule for it so we can type check it.
|
||||
py_binary(
|
||||
name = "create_compdb",
|
||||
srcs = ["create_compdb.py"],
|
||||
)
|
||||
|
||||
mypy_test(
|
||||
name = "create_compdb_mypy_test",
|
||||
include_imports = True,
|
||||
deps = [":create_compdb"],
|
||||
)
|
||||
@@ -129,10 +129,25 @@ print("Found %d generated files..." % (len(generated_file_labels),))
|
||||
print("Building the generated files so that tools can find them...")
|
||||
subprocess.run([bazel, "build", "--keep_going"] + generated_file_labels)
|
||||
|
||||
# Also build some specific targets that depend on external packages so those are
|
||||
# fetched and linked into the Bazel execution root. We try to use cheap files
|
||||
# where possible, but in some cases need to create a virtual include directory.
|
||||
subprocess.run(
|
||||
[
|
||||
bazel,
|
||||
"build",
|
||||
"--keep_going",
|
||||
"@llvm-project//llvm:LICENSE.TXT",
|
||||
"@com_google_absl//:LICENSE",
|
||||
"@com_google_googletest//:LICENSE",
|
||||
"@com_github_google_benchmark//:benchmark",
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
# Manually translate the label to a user friendly path into the Bazel output
|
||||
# symlinks.
|
||||
def _label_to_path(s):
|
||||
def _label_to_path(s: str) -> Path:
|
||||
# Map external repositories to their part of the output tree.
|
||||
s = re.sub(r"^@([^/]+)//", r"bazel-bin/external/\1/", s)
|
||||
# Map this repository to the root of the output tree.
|
||||
|
||||
Reference in New Issue
Block a user