svenevs / exhale

Automatic C++ library api documentation generation: breathe doxygen in and exhale it out.
BSD 3-Clause "New" or "Revised" License
219 stars 51 forks source link

revive support for the multiproject monkeypatch #139

Closed svenevs closed 2 years ago

svenevs commented 2 years ago

Take advantage of the utils.specificationsForKind returning any possible default or customSpecificationsForKind by user being used to manufacture every directive to also stuff in

:project: {app.config.breathe_default_project}

Refs: #27

@florianhumblot I did some local testing and this doesn't appear to break the status quo for exhale's (unfortunate) single-project-only builds. Are you able to test this and see if it works for you with multiproject and the monkeypatch? It's definitely a hack but well, I'm OK with using a hack to support a hack :upside_down_face: As noted in the comment in the diff, multiproject support "properly" effectively requires a rewrite of this whole darn thing. One day...

pip install git+https://github.com/svenevs/exhale.git@fix/multiproj-monkeypatch

That will install this branch (which will get deleted once it merges) :slightly_smiling_face:

florianhumblot commented 2 years ago

For some reason when installing this branch the data directory is missing. I'll try adding it manually to see if the fix works regardless of this issue. EDIT: I've just tested it on my project that is heavily integrated with 3 libraries after manually adding the data directory (copy-pasted from the master branch) and it works wonderfully! The projects all build correctly and also cross-reference the correct functions/datastructures! As far as I'm concerned, this PR + the monkeypatch work. Not sure what's with the missing data directory though.

florianhumblot commented 2 years ago

Steps to reproduce missing data directory:

mkdir pip_test
cd pip_test
python --version
python -m venv venv
venv\Scripts\activate
pip install git+https://github.com/svenevs/exhale.git@fix/multiproj-monkeypatch
cd venv\Lib\site-packages\exhale
dir

image

The full output of the above steps on my system: https://pastebin.com/wJVch8qx

svenevs commented 2 years ago

I've just tested it on my project that is heavily integrated with 3 libraries after manually adding the data directory (copy-pasted from the master branch) and it works wonderfully! The projects all build correctly and also cross-reference the correct functions/datastructures!

WOOOOT!!!!! This is great news, thanks so much for testing! I'm pretty satisfied that this hack actually works :upside_down_face:

For some reason when installing this branch the data directory is missing. I'll try adding it manually to see if the fix works regardless of this issue.

Oh my.... yes that's definitely a bug, tracking in #141 thanks for pointing it out!