Commit Graph

25 Commits

Author SHA1 Message Date
Dan
41f29ccd9e Parse command-line args in a separate function. 2019-06-11 13:49:37 +02:00
Dan
e0b8bbbce9 Use a file-local constant for non-prefixing nodes. 2019-06-11 13:49:37 +02:00
Dan
2c8c5c4ed3 Split into seperate functions for easier invocation from python. 2019-06-11 13:49:37 +02:00
Dan
590e7acedf Avoid storing global state. 2019-06-11 13:49:37 +02:00
Dan
a163f8813e Delete partially-written file in the event of an error. 2019-06-11 13:49:37 +02:00
Dan
ede328a784 Allow writing output to file instead of stdout. 2019-06-11 13:49:37 +02:00
Dan
a33212df1f Wrap the main functionality of mkdoc in a function. 2019-06-11 13:49:37 +02:00
Dan
b46bb64d39 Allow user to override default values of -x and -std=. 2019-06-11 13:49:37 +02:00
Dan
4612db54ac Try to autodetect the location of the clang standard libraries.
On some linuxes, /usr/include belongs to GCC and the standard
libraries that work with clang are in /usr/lib/clang/8.0.0 or
some variation thereof.

This results in errors such as:

```
/../lib64/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../include/c++/8.3.0/bits/cxxabi_init_exception.h:38:10: fatal error: 'stddef.h' file not found

```

during extraction.
2019-06-11 13:49:37 +02:00
Dan
a175b21e4b Avoid decoding already-decoded strings from cindex.
Recent versions of clang.cindex include [code][1] that converts
the internal byte strings to python str for you.

  [1]: https://github.com/llvm-mirror/clang/blob/master/bindings/python/clang/cindex.py#L72
2019-06-11 13:49:37 +02:00
Wenzel Jakob
257df10ffe improve mkdoc.py determinism
When processing many files that contain top-level items with the same
name (e.g. "operator<<"), the output was non-deterministic and depended
on the order in which the different Clang processes finished. This
commit adds sorting that also accounts for the filename to prevent
random changes from run to run.
2017-04-12 11:09:47 +02:00
Wenzel Jakob
f64ff575d7 mkdoc.py: improved formatting of code segments and enums 2016-05-20 16:37:13 +02:00
Wenzel Jakob
65f0c2aeb7 mkdoc.py: handle conversion operators and template arguments in function names 2016-05-01 22:39:46 +02:00
Wenzel Jakob
c993bcec19 mkdoc.py: document enumerations 2016-05-01 02:32:38 +02:00
Wenzel Jakob
87810d8e91 mkdoc.py: fixed DOC() macro 2016-04-30 23:55:10 +02:00
Wenzel Jakob
295acb2da0 mkdoc.py: handle \ingroup attributes 2016-04-30 23:36:57 +02:00
Wenzel Jakob
f02f41656b support longer argument lists in expansion of variadic DOC() macro 2016-04-29 14:32:10 +02:00
Merlin Nimier-David
77173d6347 mkdoc.py: fix typo in __DOC5 macro
This prevented `DOC(...)` calls with 5 arguments to resolve correctly.
2016-04-29 14:25:39 +02:00
Wenzel Jakob
a57e51c5d8 mkdoc.py: sanitize_name fixes, PEP 8 cleanups 2016-04-27 00:35:06 +02:00
Wenzel Jakob
d361a57863 minor mkdoc name sanitation fix 2016-04-26 00:12:22 +02:00
Wenzel Jakob
afb9c1776a make mkdoc now works with the libclang distribution from Apple 2016-04-19 13:33:21 +02:00
Wenzel Jakob
efd9e987f5 windows fixes 2015-08-04 18:53:18 +02:00
Wenzel Jakob
281aa0e668 nicer code separation, cleanup logic, std::function type caster 2015-07-31 04:10:38 +02:00
Wenzel Jakob
fa70d30248 documentation extraction improvements 2015-07-23 14:43:34 +02:00
Wenzel Jakob
ad06e76f9f Documentation extraction tool 2015-07-22 01:05:41 +02:00