8
8
# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
9
9
# WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
10
10
11
- load ("//tools:configure_file.bzl" , "configure_file_impl" )
12
11
load ("@rules_pkg//pkg:pkg.bzl" , "pkg_zip" )
12
+ load ("//tools:configure_file.bzl" , "configure_file_impl" )
13
13
14
14
def _swift_doxygen_impl (ctx ):
15
15
vars = ctx .attr .vars | {} # copy dict instead of referencing it
@@ -18,37 +18,36 @@ def _swift_doxygen_impl(ctx):
18
18
doxygen_out = ctx .actions .declare_directory (ctx .attr .name + "_doxygen" )
19
19
vars ["DOXYGEN_OUTPUT_DIRECTORY" ] = doxygen_out .path
20
20
21
+ # this performs a CMake-like replacement of @VAR@ based on the vars dict
21
22
config = configure_file_impl (ctx , vars , ctx .attr .name + "_Doxyfile" )[0 ].files .to_list ()[0 ]
22
23
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
-
31
24
ctx .actions .run_shell (
32
25
inputs = [config ] + ctx .files .deps ,
33
26
outputs = [doxygen_out ],
27
+ env = vars ,
34
28
command = """
35
29
DOXYGEN_DOT_FOUND=NO
36
30
DOXYGEN_DOT_PATH=
37
-
38
31
if command -v dot &> /dev/null
39
32
then
40
33
DOXYGEN_DOT_FOUND=YES
41
34
DOXYGEN_DOT_PATH=$(which dot)
42
35
fi
43
36
37
+ PRW=`pwd`
38
+
39
+ # backward compatibility with old CMake-style doxygen config files
44
40
sed -i "s|@DOXYGEN_DOT_FOUND@|$DOXYGEN_DOT_FOUND|g" {config}
45
41
sed -i "s|@DOXYGEN_DOT_PATH@|$DOXYGEN_DOT_PATH|g" {config}
46
42
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}
49
48
50
49
PATH=$PATH doxygen {config}
51
- """ .format (config = config .path , input_dir = input_dir , project_name = project_name ),
50
+ """ .format (config = config .path ),
52
51
)
53
52
54
53
return [DefaultInfo (files = depset ([doxygen_out , config ]))]
0 commit comments