Comments (5)
Maybe we should use Doxygen as an alternative to the old documentation I've made?
I'll analyze the complexity of applying it for the current project state
from cmkr.
I've found this if you find this a good alternative and is less harder to maintain in the long run
https://github.com/matusnovak/doxybook2
from cmkr.
I don’t think Doxygen will help because it focuses mostly on code-level documentation and this is a more high-level type of documentation that has nothing to do with the code.
I’m still thinking about a design to make the whole toml parsing a declarative system where metadata can then be applied, but honestly it’s not so bad.
For the command line argparse is a small library with a decent help generator so that would solve that need.
from cmkr.
I'll check out some other ideas but wrapping our current argument parsing method using some class to generate this info can be a good
Like creating a pattern like this
class CliArgument {
private:
const char* tag;
const char* description;
public:
CliArgument(const char* _tag, const char* _desc): tag(_tag), description(_desc) {}
const char* getTag() { return tag; }
const char* getDescription() { return description; }
}
CliArgument outputArg { "--output", "File output" };
void ShowHelp() {
// render all CliArgument tag + description here
}
This can works I think let me know your opinion about it
** This is really abstract idea, so don't think this as a final stuff just a concept
from cmkr.
For the argument parsing this library is probably pretty good: https://github.com/Taywee/args#simple-example
Combined with a little cmake to automatically generate the documentation it’s enough for the command line part at least.
from cmkr.
Related Issues (20)
- Link the 'Basics' page in the documentation
- Warn when inconsistent names are used for `fetch-content`
- Error correctly when trying to access a directory that doesn't exist
- Add `SYSTEM` support for `fetch-content`
- Add a `.editorconfig` file
- Add versioning support for Vcpkg ports.
- Add support for relative paths in `link-libraries`
- Add support for `::target` in `link-libraries`
- Allow using local vcpkg HOT 5
- Unnecessary quotes wrapped around command strings
- Fix crash with empty `cmake-after` HOT 2
- Error if `cmkr-include` is the wrong type or not found
- feature request - template gtests! HOT 1
- Conditional `headers` causes weird error
- Suggestions for non-existent `link-flags` or `compile-flags` or `flags` target keys
- Improve the error message when `cmake` is not installed
- Use a default `CMKR_CACHE` location and allow the user to explicitly unset it to get the old behavior
- Better errors when casting an invalid type
- Examples of cross-compiling / embedded usage HOT 1
- Properties can not be integers
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cmkr.