Tweak Lua-doc processing:

Separate PHP based post-processing, used for manual creation.
php-cli may not be available on build host.
This commit is contained in:
Robin Gareus 2019-08-29 05:42:46 +02:00
parent 0840bc0c76
commit 7496a856c7
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 56 additions and 36 deletions

View File

@ -38,39 +38,8 @@ time ./tools/doxy2json/doxy2json -j 4 \
ls -lh $TMPFILE ls -lh $TMPFILE
echo "# consolidating JSON" if test -z "$1"; then
php << EOF ./tools/doxy2json/postproc.sh $TMPFILE
<?php else
\$json = file_get_contents ('$TMPFILE'); cp -vi $TMPFILE doc/ardourapi-pre.json
\$api = array (); fi
foreach (json_decode (\$json, true) as \$a) {
if (!isset (\$a['decl'])) { continue; }
\$a['decl'] = str_replace ('size_t', 'unsigned long', \$a['decl']);
\$a['decl'] = str_replace ('uint32_t', 'unsigned int', \$a['decl']);
\$a['decl'] = str_replace ('int32_t', 'int', \$a['decl']);
\$a['decl'] = str_replace ('samplepos_t', 'long', \$a['decl']);
\$a['decl'] = str_replace ('samplecnt_t', 'long', \$a['decl']);
\$a['decl'] = str_replace ('frameoffset_t', 'long', \$a['decl']);
\$a['decl'] = str_replace ('int64_t', 'long', \$a['decl']);
\$a['decl'] = str_replace ('uint8_t', 'unsigned char', \$a['decl']);
\$a['decl'] = str_replace ('pframes_t', 'unsigned int', \$a['decl']);
\$a['decl'] = str_replace ('uint64_t', 'unsigned long', \$a['decl']);
\$a['decl'] = str_replace ('const char', 'char', \$a['decl']);
\$a['decl'] = str_replace ('const float', 'float', \$a['decl']);
\$a['decl'] = str_replace ('const double', 'double', \$a['decl']);
\$a['decl'] = str_replace ('const long', 'long', \$a['decl']);
\$a['decl'] = str_replace ('const unsigned int', 'unsigned int', \$a['decl']);
\$a['decl'] = str_replace ('const unsigned long', 'unsigned long', \$a['decl']);
\$a['decl'] = str_replace (' ::Vamp::', ' Vamp::', \$a['decl']);
\$canon = str_replace (' *', '*', \$a['decl']);
\$api[\$canon] = \$a;
}
\$jout = array ();
foreach (\$api as \$k => \$a) {
\$jout[] = \$a;
}
file_put_contents('doc/ardourapi.json.gz', gzencode (json_encode (\$jout, JSON_PRETTY_PRINT)));
EOF
ls -l doc/ardourapi.json.gz

51
tools/doxy2json/postproc.sh Executable file
View File

@ -0,0 +1,51 @@
#!/bin/bash
cd `dirname $0`
cd ../..
set -e
test -f "$1"
echo "# consolidating JSON $1"
php << EOF
<?php
\$json = file_get_contents ('$1');
\$api = array ();
foreach (json_decode (\$json, true) as \$a) {
if (!isset (\$a['decl'])) { continue; }
\$a['decl'] = str_replace ('__cxx11::', '', \$a['decl']);
\$a['decl'] = str_replace ('size_t', 'unsigned long', \$a['decl']);
\$a['decl'] = str_replace ('uint32_t', 'unsigned int', \$a['decl']);
\$a['decl'] = str_replace ('int32_t', 'int', \$a['decl']);
\$a['decl'] = str_replace ('ARDOUR::samplepos_t', 'long', \$a['decl']);
\$a['decl'] = str_replace ('ARDOUR::samplecnt_t', 'long', \$a['decl']);
\$a['decl'] = str_replace ('ARDOUR::sampleoffset_t', 'long', \$a['decl']);
\$a['decl'] = str_replace ('ARDOUR::frameoffset_t', 'long', \$a['decl']);
\$a['decl'] = str_replace ('ARDOUR::pframes_t', 'unsigned int', \$a['decl']);
\$a['decl'] = str_replace ('samplepos_t', 'long', \$a['decl']);
\$a['decl'] = str_replace ('samplecnt_t', 'long', \$a['decl']);
\$a['decl'] = str_replace ('sampleoffset_t', 'long', \$a['decl']);
\$a['decl'] = str_replace ('frameoffset_t', 'long', \$a['decl']);
\$a['decl'] = str_replace ('pframes_t', 'unsigned int', \$a['decl']);
\$a['decl'] = str_replace ('int64_t', 'long', \$a['decl']);
\$a['decl'] = str_replace ('uint8_t', 'unsigned char', \$a['decl']);
\$a['decl'] = str_replace ('uint64_t', 'unsigned long', \$a['decl']);
\$a['decl'] = str_replace ('const char', 'char', \$a['decl']);
\$a['decl'] = str_replace ('const float', 'float', \$a['decl']);
\$a['decl'] = str_replace ('const double', 'double', \$a['decl']);
\$a['decl'] = str_replace ('const long', 'long', \$a['decl']);
\$a['decl'] = str_replace ('const unsigned int', 'unsigned int', \$a['decl']);
\$a['decl'] = str_replace ('const unsigned long', 'unsigned long', \$a['decl']);
\$a['decl'] = str_replace (' ::Vamp::', ' Vamp::', \$a['decl']);
\$canon = str_replace (' *', '*', \$a['decl']);
\$api[\$canon] = \$a;
}
\$jout = array ();
foreach (\$api as \$k => \$a) {
\$jout[] = \$a;
}
file_put_contents('doc/ardourapi.json.gz', gzencode (json_encode (\$jout, JSON_PRETTY_PRINT)));
EOF
ls -l doc/ardourapi.json.gz