svenevs/exhale

ignore file extensions in directory?

iquah1 opened this issue · 6 comments

Hey there!

Thanks for this amazing work. I recently integrated this into a project and I was REALLY happy with how it came out. I wanted to reach out to ask if there's a way to ignore certain file extensions? My use case is that I've got the following "structure"

src
    | - lib 
        | - f1.cpp
        | - f2.cpp
        | - readme.md

    | - include
        | - f1.h
        | - f2.h
        | - readme.md

where readme.md is a minimal file describing the contents of the directory. The hope is that users will be able to get a rough understanding of what is happening in the readme.md and within that readme we'll point to our readthedocs instance where they can get more information about a certain topic if that makes sense.

I was REALLY happy with how it came out

Thanks, glad to hear 🙂

I think I'm misunderstanding a bit, there's probably a configuration somewhere but which one (so many tools involved xD)?

If you wanted to exclude files from doxygen (and therefore prevent exhale from ever processing it), you would probably want to add to your doxygen configuration EXCLUDE or EXCLUDE_PATTERNS.

So either in the Doxyfile or in exhaleDoxygenStdin.

import textwrap
exhale_args = {
    # ... required args ...
    "exhaleExecutesDoxygen": True,
    # just an example
    "exhaleDoxygenStdin": textwrap.dedent('''
        EXCLUDE_PATTERNS = *.cpp
    ''')
}
  1. Is the readme.md per directory a part of the documentation build? Or is just for navigating e.g., GitHub readme? Like are you talking about the "doxygen documentation for the directory" example?
  2. Or are you asking how to have a separate project for say include and src rather than them both being in the same sphinx output? (there is just one RTD site?)

Ahh, sorry, I mean that I just want to not have the readme.mds parsed and rendered is all. Thanks for asking to clarify!

Ok then yeah you should be able to get doxygen to ignore them with EXCLUDE or EXCLUDE_PATTERNS, if you don't have success post your conf.py (or relevant section).

But actually, if you don't have other markdown files that you want doxygen to process (e.g., for \page or \group [group not supported in exhale]) you can also override the default FILE_PATTERNS. Doxygen has a lot of configs

Gotcha, thanks!

..... How do I pass in arguments to the doxygen build when I don't have a Doxyfile? I tried searching for EXCLUDE_PATTERNS on the exhale docs but I didn't seem to find an example. Would it be in a key value for exhale_args?

The file in question is here

Brief comment from phone, sorry just left xD

https://github.com/openfheorg/openfhe-development/blob/exhale/docs/conf.py#L113

The configurations there with PREDEFINED are what go to doxygen, just add them in that string I think

If not I can take a closer look soon 🙂

That worked! Thank you so so much!