Skip to content

Commit bcaadbe

Browse files
Update bazel doxygen script [AP-3535] (#154)
This PR support the templated Doxygen configuration files added to the hummingbird repo, which are used in starling-core. This PR adds support for a number of new templated variables. Related PR: - swift-nav/starling-core#898 - swift-nav/hummingbird#2
1 parent 0bf7940 commit bcaadbe

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

doxygen/doxygen.bzl

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
99
# WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
1010

11-
load("//tools:configure_file.bzl", "configure_file_impl")
1211
load("@rules_pkg//pkg:pkg.bzl", "pkg_zip")
12+
load("//tools:configure_file.bzl", "configure_file_impl")
1313

1414
def _swift_doxygen_impl(ctx):
1515
vars = ctx.attr.vars | {} # copy dict instead of referencing it
@@ -18,37 +18,36 @@ def _swift_doxygen_impl(ctx):
1818
doxygen_out = ctx.actions.declare_directory(ctx.attr.name + "_doxygen")
1919
vars["DOXYGEN_OUTPUT_DIRECTORY"] = doxygen_out.path
2020

21+
# this performs a CMake-like replacement of @VAR@ based on the vars dict
2122
config = configure_file_impl(ctx, vars, ctx.attr.name + "_Doxyfile")[0].files.to_list()[0]
2223

23-
input_dir = ""
24-
if "PROJECT_SOURCE_DIR" in vars:
25-
input_dir = vars["PROJECT_SOURCE_DIR"]
26-
27-
project_name = ""
28-
if "PROJECT_NAME" in vars:
29-
project_name = vars["PROJECT_NAME"]
30-
3124
ctx.actions.run_shell(
3225
inputs = [config] + ctx.files.deps,
3326
outputs = [doxygen_out],
27+
env = vars,
3428
command = """
3529
DOXYGEN_DOT_FOUND=NO
3630
DOXYGEN_DOT_PATH=
37-
3831
if command -v dot &> /dev/null
3932
then
4033
DOXYGEN_DOT_FOUND=YES
4134
DOXYGEN_DOT_PATH=$(which dot)
4235
fi
4336
37+
PRW=`pwd`
38+
39+
# backward compatibility with old CMake-style doxygen config files
4440
sed -i "s|@DOXYGEN_DOT_FOUND@|$DOXYGEN_DOT_FOUND|g" {config}
4541
sed -i "s|@DOXYGEN_DOT_PATH@|$DOXYGEN_DOT_PATH|g" {config}
4642
sed -i "s|@PLANTUML_JAR_PATH@|/usr/local/bin/plantuml.jar|g" {config}
47-
sed -i "s|@INPUT_DIR@|{input_dir}|g" {config}
48-
sed -i "s|@PROJECT_NAME@|{project_name}|g" {config}
43+
sed -i "s|@INPUT_DIR@|$PROJECT_SOURCE_DIR|g" {config}
44+
sed -i "s|@PROJECT_NAME@|$PROJECT_NAME|g" {config}
45+
sed -i "s|@STABLE_GIT_TAG@|$STABLE_GIT_TAG|g" {config}
46+
sed -i "s|@DOXYGEN_EXCLUDE@|$DOXYGEN_EXCLUDE|g" {config}
47+
sed -i "s|@PROJECT_SOURCE_DIR@|$PRW|g" {config}
4948
5049
PATH=$PATH doxygen {config}
51-
""".format(config = config.path, input_dir = input_dir, project_name = project_name),
50+
""".format(config = config.path),
5251
)
5352

5453
return [DefaultInfo(files = depset([doxygen_out, config]))]

0 commit comments

Comments
 (0)