Skip to content

Is it possible to have multiple instances of the doxygen rule in the same package?Β #35

@renesas-abigail

Description

@renesas-abigail

This is a great repo, thanks so much for creating it, and for the excellent examples.

I was wondering if it is possible to instantiate multiple Doxygen runs from a single BUILD file/package?

Example

# docs/doxygen/BUILD

doxygen(
    name = "main_project", 
    srcs = [
        "//src:main_project_sources",
    ]
    deps = ["//x:main_project_deps"],
    project_name = "Main Project", 
    generate_html = True,               
    generate_tagfile = "$(OUTDIR)/main/html/tagfile.xml"
    tags = ["manual"]
)

doxygen(
    name = "sub_project_1", 
    srcs = [
        "//src:project_1_sources",
    ]
    deps = ["//x:project_1_deps"],
    project_name = "Project 1", 
    generate_html = True,               
    generate_tagfile = "$(OUTDIR)/project_1/html/tagfile_project_1.xml"
    tags = ["manual"]
)

doxygen(
    name = "sub_project_2", 
    srcs = [
        "//src:project_2_sources",
    ]
    deps = ["//x:project_2_deps"],
    project_name = "Project 2", 
    generate_html = True,               
    generate_tagfile = "$(OUTDIR)/html/project_2/tagfile_project_2.xml"
    tags = ["manual"]
)

What I want is some kind of output like:

bazel-out/k8-fastbuild/docs/doxygen/main_project/html
bazel-out/k8-fastbuild/docs/doxygen/main_project/Doxyfile

bazel-out/k8-fastbuild/docs/doxygen/project_1/html
bazel-out/k8-fastbuild/docs/doxygen/project_1/Doxyfile

bazel-out/k8-fastbuild/docs/doxygen/project_2/html
bazel-out/k8-fastbuild/docs/doxygen/project_2/Doxyfile

When I try this I get errors like

ERROR: file 'docs/doxygen/Doxyfile' is generated by these conflicting actions: Label: //docs/doxygen:sub_project_1, //docs/doxygen:sub_project_2`. 

Of course it makes sense all these rules cannot generate a file called Doxyfile in the same location. But is there a way I can direct the output to subdirectories beneath the package staging area so that there is no collision?

The reason I don't just create subpackages is because in the real project, the subprojects are actually generated by another rule. So it's not easy to know pre-build what all the subprojects are.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions