NOAA-EMC / wgrib2

Provides functionality for interacting with, reading, writing, and manipulating GRIB2 files.
11 stars 8 forks source link

Set up doxygen build and start using doxygen? #80

Open edwardhartnett opened 6 months ago

edwardhartnett commented 6 months ago

@webisu you mentioned an interest in doxygen?

We have used doxygen successfully with all the NCEPLIBS and we've worked out a good, easy way to do it. Do you want me to outfit the build with doxygen capability so you can experiment with it?

We can later take it out if you don't want to keep it.

However, I highly recommend doxygen as producing very professional-looking documentation with absolutely minimal programmer effort.

webisu commented 6 months ago

Wgrib2 routines are divided into 2 categories, core and options (f_). The majority of the code are options, and options have a calling interface that was designed for plug-n-play Note: the following lines are not formatted correctly /

int f_bin(ARG1) {

100: -help sort order bin: option name output: type of option 1: number of arguments write....X description of the options (used by -help) fbin: f* signifies that this routine is an option ARG1 .. macro

The programmer is suppose to use ARG1 rather than the real API so that changes can be made to the API. I doubt that doxygen can handle this level of abstraction. ARG1 and ARG2 expose different amounts of information for the same API.

edwardhartnett commented 6 months ago

Pretty sure that doxygen could handle that with a little tweaking.

Does ARG1 and ARG2 remain constant for the whole build? That is, it's always the same?

Doxygen can handle pre-processor symbol substitution. So I think that would work.

edwardhartnett commented 3 months ago

I guess we decided not to use doxygen at this time.

edwardhartnett commented 3 days ago

Now that we know this code is going to remain with the NCEPLIBS team, we need to resolve the documentation problems. What would be best is if we could convert to doxygen, and do as all the other NCEPLIBS repos do. Doxygen is simple, capable, and produces very nice documentation with a minimum of programmer effort.

Some documentation requirements:

Doxygen allows us to meet these requirements and is being used in all other EMC software.