diff --git a/td/generate/CMakeLists.txt b/td/generate/CMakeLists.txt index 8ae762cf9..4e73660a3 100644 --- a/td/generate/CMakeLists.txt +++ b/td/generate/CMakeLists.txt @@ -79,7 +79,7 @@ set(TL_GENERATE_JSON_SOURCE if (NOT CMAKE_CROSSCOMPILING) find_program(PHP_EXECUTABLE php) - if (PHP_EXECUTABLE AND NOT TD_ENABLE_JNI) + if (PHP_EXECUTABLE) set(GENERATE_COMMON_CMD generate_common && ${PHP_EXECUTABLE} DoxygenTlDocumentationGenerator.php scheme/td_api.tl auto/td/telegram/td_api.h) else() set(GENERATE_COMMON_CMD generate_common) diff --git a/td/generate/DoxygenTlDocumentationGenerator.php b/td/generate/DoxygenTlDocumentationGenerator.php index 9a698395c..0e7332f92 100644 --- a/td/generate/DoxygenTlDocumentationGenerator.php +++ b/td/generate/DoxygenTlDocumentationGenerator.php @@ -117,7 +117,9 @@ class DoxygenTlDocumentationGenerator extends TlDocumentationGenerator $tline = trim($line); return empty($tline) || $tline[0] == '}' || $tline == 'public:' || strpos($line, '#pragma ') === 0 || strpos($line, '#include <') === 0 || strpos($tline, 'return ') === 0 || strpos($tline, 'namespace') === 0 || - preg_match('/class [A-Za-z0-9_]*;/', $line) || $tline === 'if (value == nullptr) {'; + preg_match('/class [A-Za-z0-9_]*;/', $line) || $tline === 'if (value == nullptr) {' || + strpos($line, 'JNIEnv') || strpos($line, 'jfieldID') || $tline === 'virtual ~Object() {' || + $tline == 'virtual void store(TlStorerToString &s, const char *field_name) const = 0;'; } protected function isHeaderLine($line) @@ -135,9 +137,15 @@ class DoxygenTlDocumentationGenerator extends TlDocumentationGenerator protected function fixLine($line) { - if (strpos($line, 'ID = ') > 0 || strpos($line, 'ReturnType = ') > 0) { + if (strpos($line, 'ID = ') > 0 || strpos($line, 'ReturnType = ') > 0 || strpos($line, 'using BaseObject = ') === 0) { return substr($line, 0, strpos($line, '=')); } + if (strpos($line, 'class Function: ') === 0) { + return 'class Function'; + } + if (strpos($line, 'class Object {') === 0 || strpos($line, 'class Object: public TlObject {') === 0) { + return 'class Object'; + } return $line; } @@ -152,7 +160,7 @@ class DoxygenTlDocumentationGenerator extends TlDocumentationGenerator EOT ); - $this->addDocumentation('using BaseObject = ::td::TlObject;', <<addDocumentation('using BaseObject', << call_state = ...; + * td::td_api::object_ptr call_state = ...; * switch (call_state->get_id()) { * case td::td_api::callStatePending::ID: { - * auto state = td::move_tl_object_as(call_state); + * auto state = td::td_api::move_object_as(call_state); * // use state * break; * } @@ -201,7 +209,7 @@ EOT * break; * } * case td::td_api::callStateReady::ID: { - * auto state = td::move_tl_object_as(call_state); + * auto state = td::td_api::move_object_as(call_state); * // use state * break; * } @@ -210,12 +218,12 @@ EOT * break; * } * case td::td_api::callStateDiscarded::ID: { - * auto state = td::move_tl_object_as(call_state); + * auto state = td::td_api::move_object_as(call_state); * // use state * break; * } * case td::td_api::callStateError::ID: { - * auto state = td::move_tl_object_as(call_state); + * auto state = td::td_api::move_object_as(call_state); * // use state * break; * } @@ -259,14 +267,14 @@ EOT EOT ); - $this->addDocumentation('class Object: public TlObject {', <<addDocumentation('class Object', <<addDocumentation('class Function: public TlObject {', <<addDocumentation('class Function', <<addDocumentation(' static const std::int32_t ID', <<addDocumentation(' virtual std::int32_t get_id() const = 0;', <<addDocumentation(' std::int32_t get_id() const final {', <<