- KDE TechBase: Languages/Perl
- Google Code archive, August 10, 2010: perlqt4
- 2003, PerlQt version 3, PerlQt Project
-
The code in hakonhagland/perlqt repository which is direct fork of the
qt5
branch in chrisburel/perlqt does not currently build, see this issue. -
First thing it needs in order to build is the
smokegen
binary. I am able to buildsmokegen
using the version in commonqt/smokegen, see below for more information. -
Using the above
smokegen
when building hakonhagland/perlqt gives error "Could not find Smoke QtCore", see build log here. -
It appears that we first need to build something called
smokeqt
. The original version of smokeqt in crisburel/smokeqt depends on chrisburel/smokegen, and the latter does not compile. -
So I think we first need to try compile the version of smokeqt in commonqt/smokeqt which depends on commonqt/smokegen. The latter does now compile, see below.
-
More information about command line usage of the
smokegen
binary can be found here -
However, trying to build commonqt/smokeqt fails with
'windows.h' file not found
, see build log here -
After advice from @luismbo, see this issue I tried to patch
smokegen
to not add thewindows.h
header when compiling on Linux, see this commit. -
Recompiling
smokegen
with the latter change, and then trying to rebuild commonqt/smokeqt with that version ofsmokegen
now give a segmentation fault, see build log here. -
Running the above crashing
smokegen
call with gdb reveal some more information.
-
The code in chrisburel/perlqt seems to depend on (see this issue) SMOKE binding generated by chrisburel/smokegen. The latter seems to be abandoned September 2019 and the code currently does not compile on Ubuntu, see compile log here. It looks like it was trying to use Clang tooling libraries to port SMOKE bindings from Qt4 to Qt5, but maybe it became too involved, or something else stopped the development? There are signs (see below) that most language bindings to Qt are having trouble with SMOKE and Qt5 and they are trying to find alternative solutions.
-
However, commonqt/smokegen which is a fork and further development of chrisburel/smokegen seems to have been able to port smokegen to Qt5 for Common Lisp's CommonQt5. See also mcristg/smokegen, CommonQt and Shinmera/qtools
-
I am currently able to build
smokegen
in commonqt/smokegen, see this pull request, this issue and this page for building the prerequisites.
- CommonQt might drop SMOKE support in the future, see The qt-libs Reference Manual :
In the future, CommonQt will use its own system to hook into Qt and drop Smoke support. When that time comes, this project will hopefully become obsolete. However, for the time being, Smoke is a necessary evil, and as such, this library hopes to make things a bit easier.
- There is a currently an effort going on to build Shinmera/qt-libs with Qt5, see this issue. More information about qt-libs can be found here.
-
Ruby bindings to Qt: development of the upstream qtruby/smoke has ended
-
Ruby binding to Qt: project is no longer maintained: Quote: "It only supports Qt4 which the latest linux distributions no longer include in their package repos. No future releases or changes are planned. If you would like to take over, please fork, and make the changes to support Qt5/Qt6. This will be really difficult as the Smoke libraries used in this project do not work well with C++11+"