Developer's Diary
Software development, with Terry Ebdon
13-Feb-2020 WebDoxy to Doxygen

Table of Contents

Author
Terry Ebdon

Conversion

I started migrating the PostProd project from WebDoxy to native Doxygen. I'm creating a new Doxyfile. but haven't tested it yet. It's slightly complicated by having the project's markdown in the 'WebDoxy Projects' Git repo. I'll leave everything in place … actually that shouldn't be a problem, I just need to use a relative path; up then down into the various common folders – should be fairly simple. I want to get the PostProd project working before I start developing Groovy + HSQLDB versions of Zoo.zccdb and Project Tasks.accdb, as my workflow and some technical documentation is in that project. It's effectively a combined tech spec and user guide.

I downloaded PlantUML 1.2020.0 and regenerated PostProd with WebDoxy. PlantUML diagrams still appear as place holders. A build of PostProd without WebDoxy has the same problem of missing images. This might indicate a path issue, as I've previously fixed this problem, for journal project, by dropping WebDoxy and moving to a new folder.

If I move the HTML output to a subfolder of the current project then images are generated, providing it's not more than one level down. e.g. output = HTML works but output = HTML/PostProd does not work.

The Doxygen / PlantUML issue is very weird. The earlier fix allows diagrams that do not use !include to work. Doxygen copies the PlantUML code, e.g. diagram.pu, into the output folder and runs PlantUML in that folder. This causes the current path to change. But I expect that and have previously used a chain of ../.. etc. in the include commands. I had to change the relative paths to account for moving the output folder. But the includes have become unreliable.

PlantUML debugging

PlantUML now supports !log commands and has a built in functions to access the current directory and check if a file exists. I used these to confirm the current folder and file and to check that the include target exists. Everything looked good, but the !include command can't always load the file. I fixed that by using %dirpath()/../... This works but should be no different to omitting the function call. Also Doxygen sometimes doesn't try to call PlantUML at all. That's due to a cache file being present.

DevDiary\output> dir
Directory of DevDiary\output
13/02/2020 11:28 <DIR> .
13/02/2020 11:28 <DIR> ..
13/02/2020 11:28 <DIR> html
13/02/2020 18:16 5,240 inline_umlgraph_cache_all.pu
1 File(s) 5,240 bytes
3 Dir(s) 34,455,814,144 bytes free
DevDiary\output>

Deleting the cache file forces Doxygen to call PlantUML. I need to check that every image is being created, adjusting paths as required. Having found a work-around, and proved that it's not a WebDoxy bug, I can consider reinstating WebDoxy for this project. There's still a problem with a SALT diagram not being generated. I'll investigate that tomorrow. I should consider filing a bug report for this.

12-FEB-2020 👈 Top of page 👉 16-FEB-2020

© 2020 Terry Ebdon.

Find me coding on GitHub, networking on LinkedIn, answering questions on Stack Exchange and hanging out on twitter.