Начал делать биндинг Qt для ЯП D. руками портировал 3 класса и в каждом необходимые методы, реализовал переопределение виртуальных функций. Теперь хочу это автоматизировать. Для этого надо получить полное описание С++ класса. Вижу для себя варианта, первый, использовать doxygen, он умеет выдавать xml, правда не знаю в каком виде. Второй - парсить html документацию Qt - она xml совместима, и по большому счету это будет намного удобнее, так как в документации - только тот API, который нужен, без лишнего мусора в виде макросов и прочего в хидерах. Таким же методом насколько я поняли делают биндинг к GTK+ для D.
Есть ли другие способы, вы знаете?
Как получить полное описание класса С++ для биндинга?
Модератор: Модераторы разделов
-
- Сообщения: 221
- ОС: Ubuntu i386/Ubuntu amd64
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
-
- Сообщения: 221
- ОС: Ubuntu i386/Ubuntu amd64
Re: Как получить полное описание класса С++ для биндинга?
спасибо, буду пробовать.
-
- Сообщения: 221
- ОС: Ubuntu i386/Ubuntu amd64
Re: Как получить полное описание класса С++ для биндинга?
gccxml оказался немного не тем что мне нужно. Вместо этого использую doxygen - у него есть подробный вывод в xml. Но я столкнулся с другой проблемой. Qt активно использует виртуальные функции - пользователь перегружает виртуальную функцию и определяет свое поведение для этого события. Для биндинга нужно перехватить вызов виртуальной функции для данного класса, проверить есть ли переопределена ли виртуальная функция в биндинге. Последнее - это касается D, а вот первое мне не ясно - каким образом можно перехватить вызов виртуального метода объекта класа в C++?