Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing binding ? #14

Open
RhettTR opened this issue Jul 13, 2020 · 12 comments
Open

Missing binding ? #14

RhettTR opened this issue Jul 13, 2020 · 12 comments

Comments

@RhettTR
Copy link

RhettTR commented Jul 13, 2020

Is it true that classes QMenuBar and QToolBar are not implemented in lqt? Any specific reason for that?

It would be helpful to have a list of implemented, partially implemented, not implemented and never to be implemented Qt class bindings .... at least such a list for modules QtCore, QtGui and QtWidgets.

@sanikoyes
Copy link
Collaborator

sanikoyes commented Jul 14, 2020

QToolBar and QMenuBar already binding in qtwidgets module, see example:
examples/opengl/hellogl2/mainwindow.lua
You can find missing/ignore bind classes/methods in ignores_<module>.csv on build directory.

@RhettTR
Copy link
Author

RhettTR commented Jul 15, 2020

I may have misunderstood now but when I run the example I get this:

test@test-VirtualBox:~/projects/alben/lqt/modules/src/LuaJIT/src$ ./luajit '/home/test/projects/alben/lqt/examples/opengl/hellogl2/main.lua' 
[0x7fe8d567ab80; static] QApplication :: QApplication (2)
lqtL_register 0x55e778adc360 QApplication*
[0x7fe8d567ab80; static] QMetaObject :: QMetaObject (0)
[0x7fe8d567ab80; static] QMetaObject :: QMetaObject (0)
[0x7fe8d567ab80; static] QMetaObject :: QMetaObject (0)
[0x7fe8d567ab80; static] QCoreApplication :: setApplicationName (1)
[0x7fe8d567ab80; static] QCoreApplication :: setOrganizationName (1)
[0x7fe8d567ab80; static] QCoreApplication :: setApplicationVersion (1)
[0x7fe8d567ab80; static] QCommandLineParser :: QCommandLineParser (0)
[0x7fe8d567ab80; static] QCoreApplication :: applicationName (0)
[0x7fe8d567ab80; static] QString :: QString (1)
[0x7fe8d567ab80; 0x55e778b91c60] QCommandLineParser :: setApplicationDescription (2)
[0x7fe8d567ab80; 0x55e778b91c60] QCommandLineParser :: addHelpOption (1)
[0x7fe8d567ab80; static] QCommandLineOption :: QCommandLineOption (1)
[0x7fe8d567ab80; 0x55e778b91c60] QCommandLineParser :: addVersionOption (1)
[0x7fe8d567ab80; static] QCommandLineOption :: QCommandLineOption (1)
[0x7fe8d567ab80; static] QCommandLineOption :: QCommandLineOption (2)
[0x7fe8d567ab80; 0x55e778b91c60] QCommandLineParser :: addOption (2)
[0x7fe8d567ab80; static] QCommandLineOption :: QCommandLineOption (2)
[0x7fe8d567ab80; 0x55e778b91c60] QCommandLineParser :: addOption (2)
[0x7fe8d567ab80; static] QCommandLineOption :: QCommandLineOption (2)
[0x7fe8d567ab80; 0x55e778b91c60] QCommandLineParser :: addOption (2)
[0x7fe8d567ab80; 0x55e778b91c60] QCommandLineParser :: process (2)
[0x7fe8d567ab80; static] QSurfaceFormat :: QSurfaceFormat (0)
[0x7fe8d567ab80; 0x55e778b904a0] QSurfaceFormat :: setDepthBufferSize (2)
[0x7fe8d567ab80; 0x55e778b91c60] QCommandLineParser :: isSet (2)
[0x7fe8d567ab80; 0x55e778b91c60] QCommandLineParser :: isSet (2)
[0x7fe8d567ab80; static] QSurfaceFormat :: setDefaultFormat (1)
[0x7fe8d567ab80; static] QMainWindow :: QMainWindow (0)
[0x7fe8d567ab80; 0x55e778adc360] call virtual QApplication :: notify (10) => 0
[0x7fe8d567ab80; 0x55e778adc360] call virtual QApplication :: notify (10) => 0
lqtL_register 0x55e778bded00 QMainWindow*
lqtL_callfunc 0x7fe8cb4d1a78 __gc 
delete(C++) QMainWindow
lqtL_unregister 0x55e778bded00 QMainWindow*
[0x7fe8d567ab80; 0x55e778adc360] call virtual QApplication :: notify (10) => 0
[0x7fe8d567ab80; 0x55e778adc360] call virtual QApplication :: notify (10) => 0
lqtL_callfunc 0x7fe8cb4d19b8 __gc 
delete(C++) QSurfaceFormat
lqtL_callfunc 0x7fe8cb4d18f8 __gc 
delete(C++) QCommandLineOption
lqtL_callfunc 0x7fe8cb4d1838 __gc 
delete(C++) QString
lqtL_callfunc 0x7fe8cb4d1778 __gc 
delete(C++) QString
lqtL_callfunc 0x7fe8cb4d16b8 __gc 
delete(C++) QCommandLineOption
lqtL_callfunc 0x7fe8cb4d15f8 __gc 
delete(C++) QString
lqtL_callfunc 0x7fe8cb4d1538 __gc 
delete(C++) QString
lqtL_callfunc 0x7fe8cb4d1478 __gc 
delete(C++) QCommandLineOption
lqtL_callfunc 0x7fe8cb4d13b8 __gc 
delete(C++) QString
lqtL_callfunc 0x7fe8cb4d0ff0 __gc 
delete(C++) QString
lqtL_callfunc 0x7fe8cb4d0f30 __gc 
delete(C++) QCommandLineOption
lqtL_callfunc 0x7fe8cb4d0e38 __gc 
delete(C++) QCommandLineOption
lqtL_callfunc 0x7fe8cb4d0cb8 __gc 
delete(C++) QString
lqtL_callfunc 0x7fe8cb4d0b38 __gc 
delete(C++) QCommandLineParser
lqtL_callfunc 0x7fe8cb4d0a78 __gc 
delete(C++) QString
lqtL_callfunc 0x7fe8cb4d0830 __gc 
delete(C++) QString
lqtL_callfunc 0x7fe8cb4d0770 __gc 
delete(C++) QString
lqtL_callfunc 0x7fe8cb5af520 __gc 
delete(C++) QApplication
lqtL_unregister 0x55e778adc360 QApplication*
./luajit: ...ojects/alben/lqt/examples/opengl/hellogl2/mainwindow.lua:66: attempt to index field 'QMenuBar' (a nil value)
stack traceback:
    ...ojects/alben/lqt/examples/opengl/hellogl2/mainwindow.lua:66: in function '__init'
    ...st/projects/alben/lqt/examples/../common/embed/class.lua:212: in function 'MainWindow'
    ...est/projects/alben/lqt/examples/opengl/hellogl2/main.lua:91: in main chunk
    [C]: at 0x55e7773e50e0
lqtL_callfunc 0x7fe8cb4d0210 __gc 
delete(C++) QMetaObject
lqtL_callfunc 0x7fe8cb4cfa78 __gc 
delete(C++) QMetaObject
lqtL_callfunc 0x7fe8cb4cdd40 __gc 
delete(C++) QMetaObject

There is no qtwidgets_meta_QMenuBar.cpp file (or qtwidgets_meta_QToolBar.cpp file) in /home/test/projects/alben/build-lqt/qtwidgets_src/

Have I missed something in the make ?

@sanikoyes
Copy link
Collaborator

sanikoyes commented Jul 15, 2020

Please try to recompile lqt5, and then send the full compile log to this issue to show me to locate the problem.

@RhettTR
Copy link
Author

RhettTR commented Jul 16, 2020

Command is

test@test-VirtualBox:~/projects/alben/build-lqt$ make > out 2>&1

The content of out is (first 7% skipped because it is a re-compile?)

[  8%] Built target cpptoxml
[  9%] Generating XML: running cpptoxml on qtcore 
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/lqt5_macos.lqt
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtCore/QtCore.lqt
[  9%] Built target generate_qtcore_xml
[  9%] Generating binding code with Lua
 >> Parsing `/home/test/projects/alben/lqt/generator//../common/embed/main.lua`
 >> Parsing `/home/test/projects/alben/lqt/generator//../common/embed/class.lua`
 >> Parsing `/home/test/projects/alben/lqt/generator//../common/embed/meta.lua`
 >> Parsing `/home/test/projects/alben/lqt/generator//../common/embed/meta_strings.lua`
 >> Parsing `/home/test/projects/alben/lqt/generator//../common/embed/meta_data.lua`
 >> Parsing `/home/test/projects/alben/lqt/generator//../common/embed/flags.lua`
 >> Parsing `/home/test/projects/alben/lqt/generator//../common/embed/meta_method.lua`
 >> Parsing `/home/test/projects/alben/lqt/generator//../common/embed/meta_property.lua`
[  9%] Built target generate_qtcore_cpp
[  9%] Generating XML: running cpptoxml on qtuitools 
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/lqt5_macos.lqt
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtUiTools/QtUiTools.lqt
** PARSER ERROR expected token ``}'' found ``eof'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtUiTools/QtUiTools.lqt (line:8 col:0)
** PARSER ERROR expected token ``;'' found ``eof'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtUiTools/QtUiTools.lqt (line:8 col:0)
[  9%] Built target generate_qtuitools_xml
[ 10%] Generating XML: running cpptoxml on qtwidgets 
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/lqt5_macos.lqt
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtWidgets/QtWidgets.lqt
** PARSER ERROR expected token ``}'' found ``eof'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtWidgets/QtWidgets.lqt (line:322 col:0)
** PARSER ERROR expected token ``;'' found ``eof'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtWidgets/QtWidgets.lqt (line:322 col:0)
[ 10%] Built target generate_qtwidgets_xml
[ 11%] Generating XML: running cpptoxml on qtgui 
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/lqt5_macos.lqt
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtGui/QtGui.lqt
[ 11%] Built target generate_qtgui_xml
[ 11%] Generating binding code with Lua
[ 11%] Built target generate_qtgui_cpp
[ 11%] Generating binding code with Lua
[ 11%] Built target generate_qtwidgets_cpp
[ 12%] Generating binding code with Lua
[ 12%] Built target generate_qtuitools_cpp
[ 12%] Generating qtuitools_src/moc_qtuitools_slot.cpp
Scanning dependencies of target qtuitools
[ 12%] Building CXX object CMakeFiles/qtuitools.dir/qtuitools_src/qtuitools_merged_build.cpp.o
[ 12%] Building CXX object CMakeFiles/qtuitools.dir/common/lqt_embed.cpp.o
[ 13%] Building CXX object CMakeFiles/qtuitools.dir/qtuitools_src/qtuitools_enum.cpp.o
[ 13%] Building CXX object CMakeFiles/qtuitools.dir/qtuitools_src/qtuitools_meta.cpp.o
[ 14%] Building CXX object CMakeFiles/qtuitools.dir/qtuitools_src/qtuitools_globals.cpp.o
[ 14%] Building CXX object CMakeFiles/qtuitools.dir/qtuitools_src/qtuitools_slot.cpp.o
[ 14%] Building CXX object CMakeFiles/qtuitools.dir/qtuitools_src/moc_qtuitools_slot.cpp.o
[ 15%] Linking CXX shared module lib/qtuitools.so
[ 18%] Built target qtuitools
[ 18%] Generating XML: running cpptoxml on qtopengl 
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/lqt5_macos.lqt
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/QtOpenGL.lqt
** PARSER ERROR unexpected token ``namespace'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:81 col:0)
** PARSER ERROR unexpected token ``{'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:82 col:0)
** PARSER ERROR unexpected token ``{'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:83 col:18)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:84 col:13)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:85 col:12)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:86 col:5)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:87 col:13)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:88 col:12)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:89 col:14)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:90 col:14)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:91 col:16)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:92 col:11)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:93 col:14)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:94 col:20)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:95 col:13)
** PARSER ERROR unexpected token ``shift'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:95 col:28)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:96 col:14)
** PARSER ERROR unexpected token ``shift'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:96 col:28)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:97 col:11)
** PARSER ERROR unexpected token ``shift'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:97 col:18)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:98 col:15)
** PARSER ERROR unexpected token ``shift'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:98 col:30)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:99 col:14)
** PARSER ERROR unexpected token ``shift'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:99 col:28)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:100 col:16)
** PARSER ERROR unexpected token ``shift'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:100 col:32)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:101 col:16)
** PARSER ERROR unexpected token ``shift'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:101 col:32)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:102 col:18)
** PARSER ERROR unexpected token ``shift'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:102 col:36)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:103 col:10)
** PARSER ERROR unexpected token ``shift'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:103 col:23)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:104 col:16)
** PARSER ERROR unexpected token ``shift'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:104 col:32)
** PARSER ERROR unexpected token ``='' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:105 col:22)
** PARSER ERROR unexpected token ``shift'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:105 col:44)
** PARSER ERROR expected token ``;'' found ``class'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtOpenGL/qgl.lqt (line:112 col:0)
[ 18%] Built target generate_qtopengl_xml
[ 18%] Generating binding code with Lua
[ 18%] Built target generate_qtopengl_cpp
[ 19%] Generating qtopengl_src/moc_qtopengl_slot.cpp
Scanning dependencies of target qtopengl
[ 19%] Building CXX object CMakeFiles/qtopengl.dir/qtopengl_src/qtopengl_merged_build.cpp.o
[ 20%] Building CXX object CMakeFiles/qtopengl.dir/common/lqt_embed.cpp.o
[ 21%] Building CXX object CMakeFiles/qtopengl.dir/qtopengl_src/qtopengl_enum.cpp.o
[ 21%] Building CXX object CMakeFiles/qtopengl.dir/qtopengl_src/qtopengl_meta.cpp.o
[ 21%] Building CXX object CMakeFiles/qtopengl.dir/qtopengl_src/qtopengl_globals.cpp.o
[ 22%] Building CXX object CMakeFiles/qtopengl.dir/qtopengl_src/qtopengl_slot.cpp.o
[ 22%] Building CXX object CMakeFiles/qtopengl.dir/qtopengl_src/moc_qtopengl_slot.cpp.o
[ 23%] Linking CXX shared module lib/qtopengl.so
[ 25%] Built target qtopengl
[ 26%] Generating XML: running cpptoxml on qtprintsupport 
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/lqt5_macos.lqt
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtPrintSupport/QtPrintSupport.lqt
** PARSER ERROR expected token ``}'' found ``eof'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtPrintSupport/QtPrintSupport.lqt (line:26 col:0)
** PARSER ERROR expected token ``;'' found ``eof'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtPrintSupport/QtPrintSupport.lqt (line:26 col:0)
[ 26%] Built target generate_qtprintsupport_xml
[ 26%] Generating binding code with Lua
[ 26%] Built target generate_qtprintsupport_cpp
[ 26%] Generating qtprintsupport_src/moc_qtprintsupport_slot.cpp
Scanning dependencies of target qtprintsupport
[ 27%] Building CXX object CMakeFiles/qtprintsupport.dir/qtprintsupport_src/qtprintsupport_merged_build.cpp.o
[ 27%] Building CXX object CMakeFiles/qtprintsupport.dir/common/lqt_embed.cpp.o
[ 27%] Building CXX object CMakeFiles/qtprintsupport.dir/qtprintsupport_src/qtprintsupport_enum.cpp.o
[ 27%] Building CXX object CMakeFiles/qtprintsupport.dir/qtprintsupport_src/qtprintsupport_meta.cpp.o
[ 28%] Building CXX object CMakeFiles/qtprintsupport.dir/qtprintsupport_src/qtprintsupport_globals.cpp.o
[ 28%] Building CXX object CMakeFiles/qtprintsupport.dir/qtprintsupport_src/qtprintsupport_slot.cpp.o
[ 29%] Building CXX object CMakeFiles/qtprintsupport.dir/qtprintsupport_src/moc_qtprintsupport_slot.cpp.o
[ 29%] Linking CXX shared module lib/qtprintsupport.so
[ 32%] Built target qtprintsupport
[ 32%] Generating qtwidgets_src/moc_qtwidgets_slot.cpp
Scanning dependencies of target qtwidgets
[ 33%] Building CXX object CMakeFiles/qtwidgets.dir/qtwidgets_src/qtwidgets_merged_build.cpp.o
[ 33%] Building CXX object CMakeFiles/qtwidgets.dir/common/lqt_embed.cpp.o
[ 33%] Building CXX object CMakeFiles/qtwidgets.dir/qtwidgets_src/qtwidgets_enum.cpp.o
[ 33%] Building CXX object CMakeFiles/qtwidgets.dir/qtwidgets_src/qtwidgets_meta.cpp.o
[ 34%] Building CXX object CMakeFiles/qtwidgets.dir/qtwidgets_src/qtwidgets_globals.cpp.o
[ 34%] Building CXX object CMakeFiles/qtwidgets.dir/qtwidgets_src/qtwidgets_slot.cpp.o
[ 35%] Building CXX object CMakeFiles/qtwidgets.dir/qtwidgets_src/moc_qtwidgets_slot.cpp.o
[ 35%] Linking CXX shared module lib/qtwidgets.so
[ 38%] Built target qtwidgets
[ 39%] Generating qtgui_src/moc_qtgui_slot.cpp
Scanning dependencies of target qtgui
[ 39%] Building CXX object CMakeFiles/qtgui.dir/qtgui_src/qtgui_merged_build.cpp.o
[ 39%] Building CXX object CMakeFiles/qtgui.dir/common/lqt_embed.cpp.o
[ 39%] Building CXX object CMakeFiles/qtgui.dir/qtgui_src/qtgui_enum.cpp.o
[ 40%] Building CXX object CMakeFiles/qtgui.dir/qtgui_src/qtgui_meta.cpp.o
[ 40%] Building CXX object CMakeFiles/qtgui.dir/qtgui_src/qtgui_globals.cpp.o
[ 41%] Building CXX object CMakeFiles/qtgui.dir/qtgui_src/qtgui_slot.cpp.o
[ 41%] Building CXX object CMakeFiles/qtgui.dir/qtgui_src/moc_qtgui_slot.cpp.o
[ 41%] Linking CXX shared module lib/qtgui.so
[ 44%] Built target qtgui
[ 44%] Generating XML: running cpptoxml on qtsql 
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/lqt5_macos.lqt
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtSql/QtSql.lqt
[ 44%] Built target generate_qtsql_xml
[ 45%] Generating binding code with Lua
[ 45%] Built target generate_qtsql_cpp
[ 46%] Generating qtsql_src/moc_qtsql_slot.cpp
Scanning dependencies of target qtsql
[ 46%] Building CXX object CMakeFiles/qtsql.dir/qtsql_src/qtsql_merged_build.cpp.o
[ 47%] Building CXX object CMakeFiles/qtsql.dir/common/lqt_embed.cpp.o
[ 48%] Building CXX object CMakeFiles/qtsql.dir/qtsql_src/qtsql_enum.cpp.o
[ 48%] Building CXX object CMakeFiles/qtsql.dir/qtsql_src/qtsql_meta.cpp.o
[ 48%] Building CXX object CMakeFiles/qtsql.dir/qtsql_src/qtsql_globals.cpp.o
[ 49%] Building CXX object CMakeFiles/qtsql.dir/qtsql_src/qtsql_slot.cpp.o
[ 49%] Building CXX object CMakeFiles/qtsql.dir/qtsql_src/moc_qtsql_slot.cpp.o
[ 50%] Linking CXX shared module lib/qtsql.so
[ 52%] Built target qtsql
[ 52%] Generating XML: running cpptoxml on qtscripttools 
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/lqt5_macos.lqt
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtScriptTools/QtScriptTools.lqt
** PARSER ERROR expected token ``}'' found ``eof'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtScriptTools/QtScriptTools.lqt (line:8 col:0)
** PARSER ERROR expected token ``;'' found ``eof'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtScriptTools/QtScriptTools.lqt (line:8 col:0)
[ 52%] Built target generate_qtscripttools_xml
[ 53%] Generating XML: running cpptoxml on qtscript 
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/lqt5_macos.lqt
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtScript/QtScript.lqt
[ 53%] Built target generate_qtscript_xml
[ 53%] Generating binding code with Lua
[ 53%] Built target generate_qtscript_cpp
[ 53%] Generating binding code with Lua
[ 53%] Built target generate_qtscripttools_cpp
[ 54%] Generating qtscripttools_src/moc_qtscripttools_slot.cpp
Scanning dependencies of target qtscripttools
[ 54%] Building CXX object CMakeFiles/qtscripttools.dir/qtscripttools_src/qtscripttools_merged_build.cpp.o
[ 54%] Building CXX object CMakeFiles/qtscripttools.dir/common/lqt_embed.cpp.o
[ 54%] Building CXX object CMakeFiles/qtscripttools.dir/qtscripttools_src/qtscripttools_enum.cpp.o
[ 55%] Building CXX object CMakeFiles/qtscripttools.dir/qtscripttools_src/qtscripttools_meta.cpp.o
[ 55%] Building CXX object CMakeFiles/qtscripttools.dir/qtscripttools_src/qtscripttools_globals.cpp.o
[ 56%] Building CXX object CMakeFiles/qtscripttools.dir/qtscripttools_src/qtscripttools_slot.cpp.o
[ 56%] Building CXX object CMakeFiles/qtscripttools.dir/qtscripttools_src/moc_qtscripttools_slot.cpp.o
[ 56%] Linking CXX shared module lib/qtscripttools.so
[ 59%] Built target qtscripttools
[ 59%] Generating XML: running cpptoxml on qtpositioning 
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/lqt5_macos.lqt
Preprocess file : /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtPositioning/QtPositioning.lqt
[ 59%] Built target generate_qtpositioning_xml
[ 60%] Generating binding code with Lua
[ 60%] Built target generate_qtpositioning_cpp
[ 60%] Generating qtpositioning_src/moc_qtpositioning_slot.cpp
Scanning dependencies of target qtpositioning
[ 60%] Building CXX object CMakeFiles/qtpositioning.dir/qtpositioning_src/qtpositioning_merged_build.cpp.o
[ 60%] Building CXX object CMakeFiles/qtpositioning.dir/common/lqt_embed.cpp.o
[ 61%] Building CXX object CMakeFiles/qtpositioning.dir/qtpositioning_src/qtpositioning_enum.cpp.o
[ 61%] Building CXX object CMakeFiles/qtpositioning.dir/qtpositioning_src/qtpositioning_meta.cpp.o
[ 62%] Building CXX object CMakeFiles/qtpositioning.dir/qtpositioning_src/qtpositioning_globals.cpp.o
[ 62%] Building CXX object CMakeFiles/qtpositioning.dir/qtpositioning_src/qtpositioning_slot.cpp.o
[ 62%] Building CXX object CMakeFiles/qtpositioning.dir/qtpositioning_src/moc_qtpositioning_slot.cpp.o
[ 63%] Linking CXX shared module lib/qtpositioning.so
[ 66%] Built target qtpositioning
[ 66%] Generating qtcore_src/moc_qtcore_slot.cpp
Scanning dependencies of target qtcore
[ 67%] Building CXX object CMakeFiles/qtcore.dir/qtcore_src/qtcore_merged_build.cpp.o
[ 67%] Building CXX object CMakeFiles/qtcore.dir/common/lqt_embed.cpp.o
[ 67%] Building CXX object CMakeFiles/qtcore.dir/qtcore_src/qtcore_enum.cpp.o
[ 68%] Building CXX object CMakeFiles/qtcore.dir/qtcore_src/qtcore_meta.cpp.o
[ 68%] Building CXX object CMakeFiles/qtcore.dir/qtcore_src/qtcore_globals.cpp.o
[ 68%] Building CXX object CMakeFiles/qtcore.dir/qtcore_src/qtcore_slot.cpp.o
[ 69%] Building CXX object CMakeFiles/qtcore.dir/qtcore_src/moc_qtcore_slot.cpp.o
[ 69%] Linking CXX shared module lib/qtcore.so
[ 72%] Built target qtcore
[ 72%] Generating qtscript_src/moc_qtscript_slot.cpp
Scanning dependencies of target qtscript
[ 73%] Building CXX object CMakeFiles/qtscript.dir/qtscript_src/qtscript_merged_build.cpp.o
[ 73%] Building CXX object CMakeFiles/qtscript.dir/common/lqt_embed.cpp.o
[ 73%] Building CXX object CMakeFiles/qtscript.dir/qtscript_src/qtscript_enum.cpp.o
[ 74%] Building CXX object CMakeFiles/qtscript.dir/qtscript_src/qtscript_meta.cpp.o
[ 74%] Building CXX object CMakeFiles/qtscript.dir/qtscript_src/qtscript_globals.cpp.o
[ 74%] Building CXX object CMakeFiles/qtscript.dir/qtscript_src/qtscript_slot.cpp.o
[ 75%] Building CXX object CMakeFiles/qtscript.dir/qtscript_src/moc_qtscript_slot.cpp.o
[ 75%] Linking CXX shared module lib/qtscript.so
[ 78%] Built target qtscript
[ 79%] Built target lrdb
[ 81%] Built target lpeglabel
[ 82%] Built target lfs
[ 83%] Built target path
[ 83%] Built target miniz
[ 84%] Built target utf8
[ 84%] Built target gb18030
[ 85%] Built target gbk
[ 85%] Built target jis
[ 86%] Built target pinyin
[ 86%] Generating luasocket embed script code
Convert /home/test/projects/alben/lqt/modules/src/luasocket/src/ftp.lua -> /home/test/projects/alben/lqt/modules/luasocket/embed_socket_ftp.h
 >> Parsing `/home/test/projects/alben/lqt/modules/src/luasocket/src/ftp.lua`
Convert /home/test/projects/alben/lqt/modules/src/luasocket/src/headers.lua -> /home/test/projects/alben/lqt/modules/luasocket/embed_socket_headers.h
 >> Parsing `/home/test/projects/alben/lqt/modules/src/luasocket/src/headers.lua`
Convert /home/test/projects/alben/lqt/modules/src/luasocket/src/http.lua -> /home/test/projects/alben/lqt/modules/luasocket/embed_socket_http.h
 >> Parsing `/home/test/projects/alben/lqt/modules/src/luasocket/src/http.lua`
Convert /home/test/projects/alben/lqt/modules/src/luasocket/src/ltn12.lua -> /home/test/projects/alben/lqt/modules/luasocket/embed_socket_ltn12.h
 >> Parsing `/home/test/projects/alben/lqt/modules/src/luasocket/src/ltn12.lua`
Convert /home/test/projects/alben/lqt/modules/src/luasocket/src/mbox.lua -> /home/test/projects/alben/lqt/modules/luasocket/embed_socket_mbox.h
 >> Parsing `/home/test/projects/alben/lqt/modules/src/luasocket/src/mbox.lua`
Convert /home/test/projects/alben/lqt/modules/src/luasocket/src/mime.lua -> /home/test/projects/alben/lqt/modules/luasocket/embed_socket_mime.h
 >> Parsing `/home/test/projects/alben/lqt/modules/src/luasocket/src/mime.lua`
Convert /home/test/projects/alben/lqt/modules/src/luasocket/src/smtp.lua -> /home/test/projects/alben/lqt/modules/luasocket/embed_socket_smtp.h
 >> Parsing `/home/test/projects/alben/lqt/modules/src/luasocket/src/smtp.lua`
Convert /home/test/projects/alben/lqt/modules/src/luasocket/src/socket.lua -> /home/test/projects/alben/lqt/modules/luasocket/embed_socket.h
 >> Parsing `/home/test/projects/alben/lqt/modules/src/luasocket/src/socket.lua`
Convert /home/test/projects/alben/lqt/modules/src/luasocket/src/tp.lua -> /home/test/projects/alben/lqt/modules/luasocket/embed_socket_tp.h
 >> Parsing `/home/test/projects/alben/lqt/modules/src/luasocket/src/tp.lua`
Convert /home/test/projects/alben/lqt/modules/src/luasocket/src/url.lua -> /home/test/projects/alben/lqt/modules/luasocket/embed_socket_url.h
 >> Parsing `/home/test/projects/alben/lqt/modules/src/luasocket/src/url.lua`
[ 86%] Built target generate_luasocket_embed
Scanning dependencies of target socket
[ 86%] Building C object modules/luasocket/CMakeFiles/socket.dir/embed.c.o
[ 87%] Linking C shared module ../../lib/socket.so
[ 94%] Built target socket
[ 95%] Generating lanes embed script code
Convert /home/test/projects/alben/lqt/modules/src/lanes/src/lanes.lua -> /home/test/projects/alben/lqt/modules/lanes/embed_lanes.h
 >> Parsing `/home/test/projects/alben/lqt/modules/src/lanes/src/lanes.lua`
[ 95%] Built target generate_lanes_embed
Scanning dependencies of target lanes
[ 96%] Building C object modules/lanes/CMakeFiles/lanes.dir/embed.c.o
[ 97%] Linking C shared module ../../lib/lanes.so
[100%] Built target lanes

Command

test@test-VirtualBox:~/projects/alben/build-lqt$ grep -rnw './' -e 'QMenuBar'

is

./qtprintsupport_src/qtprintsupport.xml:7565:<Function id="_51040" name="menuBar" scope="QMainWindow" context="QMainWindow" fullname="QMainWindow::menuBar" constant="1" member_of="QMainWindow" member_of_class="QMainWindow" access="public" type_name="QMenuBar*" type_base="QMenuBar" indirections="1" >
./qtprintsupport_src/qtprintsupport.xml:7794:<Argument id="_51042" name="menubar" scope="" context="QMainWindow" type_name="QMenuBar*" type_base="QMenuBar" indirections="1" >
./ignores_qtopengl.csv:1022:QMainWindow::setMenuBar;unkown argument type;QMenuBar*
./ignores_qtopengl.csv:3909:QMainWindow::menuBar;unknown return type;QMenuBar*
./qtuitools_src/qtuitools.xml:78146:<Argument id="_51042" name="menubar" scope="" context="QMainWindow" type_name="QMenuBar*" type_base="QMenuBar" indirections="1" >
./qtuitools_src/qtuitools.xml:78215:<Function id="_51040" name="menuBar" scope="QMainWindow" context="QMainWindow" fullname="QMainWindow::menuBar" constant="1" member_of="QMainWindow" member_of_class="QMainWindow" access="public" type_name="QMenuBar*" type_base="QMenuBar" indirections="1" >
./qtopengl_src/qtopengl.xml:63781:<Function id="_51040" name="menuBar" scope="QMainWindow" context="QMainWindow" fullname="QMainWindow::menuBar" constant="1" member_of="QMainWindow" member_of_class="QMainWindow" access="public" type_name="QMenuBar*" type_base="QMenuBar" indirections="1" >
./qtopengl_src/qtopengl.xml:63840:<Argument id="_51042" name="menubar" scope="" context="QMainWindow" type_name="QMenuBar*" type_base="QMenuBar" indirections="1" >
./ignores_qtscripttools.csv:3027:QMainWindow::setMenuBar;unkown argument type;QMenuBar*
./ignores_qtscripttools.csv:3115:QMainWindow::menuBar;unknown return type;QMenuBar*
./qtwidgets_src/qtwidgets.xml:30695:<Function id="_51040" name="menuBar" scope="QMainWindow" context="QMainWindow" fullname="QMainWindow::menuBar" constant="1" member_of="QMainWindow" member_of_class="QMainWindow" access="public" type_name="QMenuBar*" type_base="QMenuBar" indirections="1" >
./qtwidgets_src/qtwidgets.xml:30904:<Argument id="_51042" name="menubar" scope="" context="QMainWindow" type_name="QMenuBar*" type_base="QMenuBar" indirections="1" >
./ignores_qtprintsupport.csv:2750:QMainWindow::setMenuBar;unkown argument type;QMenuBar*
./ignores_qtprintsupport.csv:3222:QMainWindow::menuBar;unknown return type;QMenuBar*
./ignores_qtwidgets.csv:1932:QMainWindow::menuBar;unknown return type;QMenuBar*
./ignores_qtwidgets.csv:3413:QMainWindow::setMenuBar;unkown argument type;QMenuBar*
./qtscripttools_src/qtscripttools.xml:32757:<Function id="_51040" name="menuBar" scope="QMainWindow" context="QMainWindow" fullname="QMainWindow::menuBar" constant="1" member_of="QMainWindow" member_of_class="QMainWindow" access="public" type_name="QMenuBar*" type_base="QMenuBar" indirections="1" >
./qtscripttools_src/qtscripttools.xml:32808:<Argument id="_51042" name="menubar" scope="" context="QMainWindow" type_name="QMenuBar*" type_base="QMenuBar" indirections="1" >
./ignores_qtuitools.csv:2759:QMainWindow::setMenuBar;unkown argument type;QMenuBar*
./ignores_qtuitools.csv:3269:QMainWindow::menuBar;unknown return type;QMenuBar*

In the cmake I used my own CMakeLists.txt to make it run under Linux. This meant deleting and adding to the original CMakeLists.txt. The contents of function has not been changed, is snipped. This is the same as given in issue #11.

The file /home/test/projects/alben/lqt/CMakeLists.txt is:

cmake_minimum_required(VERSION 3.1.0)

project(lqt5)

set(REUSE_FILES 1)
set(CMAKE_BUILD_TYPE Debug)

set(Qt5Script_DIR /home/test/projects/alben/build-qt5/qtbase/lib/cmake/Qt5Script)
set(Qt5ScriptTools_DIR /home/test/projects/alben/build-qt5/qtbase/lib/cmake/Qt5ScriptTools)
set(Qt5OpenGL_DIR /home/test/projects/alben/build-qt5/qtbase/lib/cmake/Qt5OpenGL)
set(Qt5UiTools_DIR /home/test/projects/alben/build-qt5/qtbase/lib/cmake/Qt5UiTools)
set(Qt5WebSockets_DIR /home/test/projects/alben/build-qt5/qtbase/lib/cmake/Qt5WebSockets)


set(CMAKE_SOURCE_DIR /home/test/projects/alben/lqt)
set(CMAKE_BINARY_DIR /home/test/projects/alben/build-lqt)



set(CMAKE_RUNTIME_OUTPUT_DIRECTORY  ${CMAKE_BINARY_DIR}/bin) 
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY  ${CMAKE_BINARY_DIR}/lib) 
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY  ${CMAKE_BINARY_DIR}/lib) 

set(LUA_INCLUDE_DIR ${CMAKE_BINARY_DIR}/../lqt/modules/src/LuaJIT/src)
set(CMAKE_PROGRAM_PATH ${LUA_INCLUDE_DIR})


set(CMAKE_PREFIX_PATH /home/test/projects/alben/build-qt5/qtbase/lib/cmake)
set(LUA_LIBRARIES ${LUA_INCLUDE_DIR}/libluajit.so)


set(QT_SCHEMA_DIR ${CMAKE_BINARY_DIR}/../lqt/generator/schema)

find_package(Qt5 REQUIRED
    Core 
    Sql
    Positioning
    Script
    ScriptTools
    Gui
    Widgets
    OpenGL
    PrintSupport
    UiTools
)


set(VERBOSE_BUILD 1)

set(EXTRA_LUA_OPTIONS )
option(VERBOSE_BUILD "Create a verbose build which logs every binding call" ON)
if(VERBOSE_BUILD)
    add_definitions(-DVERBOSE_BUILD)
    set(EXTRA_LUA_OPTIONS -v)
endif()



find_package(LuaJiT REQUIRED)

find_program(LUA_CMD NAMES luajit)
message("-- Lua program is : ${LUA_CMD}")



set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -flat_namespace -undefined dynamic_lookup")
set(CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS "${CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS} -flat_namespace -undefined dynamic_lookup")

add_subdirectory(cpptoxml)


    
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -std=c++11 -Wno-deprecated-declarations")


function(build_qt_lib_binding BINDING_HEADER)

      <snipped>

endfunction()


set(REUSE_FILES 1)
set(QT_LIBRARIES Core)
build_qt_lib_binding(QtCore)

set(REUSE_FILES 1)
set(QT_LIBRARIES Sql Core)
build_qt_lib_binding(QtSql QtCore)

set(REUSE_FILES 1)
set(QT_LIBRARIES Positioning Core)
build_qt_lib_binding(QtPositioning QtCore)

set(REUSE_FILES 1)
set(QT_LIBRARIES Script Core)
build_qt_lib_binding(QtScript QtCore)

set(REUSE_FILES 1)
set(QT_LIBRARIES ScriptTools Widgets Gui Script Core)
build_qt_lib_binding(QtScriptTools QtWidgets QtGui QtScript QtCore)

set(REUSE_FILES 1)
set(QT_LIBRARIES Gui Core)
build_qt_lib_binding(QtGui QtCore)

set(REUSE_FILES 1)
set(QT_LIBRARIES Widgets Gui Core)
build_qt_lib_binding(QtWidgets QtGui QtCore)

set(REUSE_FILES 1)
set(QT_LIBRARIES OpenGL Widgets Gui Core)
build_qt_lib_binding(QtOpenGL QtWidgets QtGui QtCore)

set(REUSE_FILES 1)
set(QT_LIBRARIES PrintSupport Widgets Gui Core)
build_qt_lib_binding(QtPrintSupport QtWidgets QtGui QtCore)

set(REUSE_FILES 1)
set(QT_LIBRARIES UiTools Widgets Gui Core)
build_qt_lib_binding(QtUiTools QtWidgets QtGui QtCore)



add_subdirectory(modules/lrdb)
add_subdirectory(modules/lpeglabel)
add_subdirectory(modules/lfs)
add_subdirectory(modules/lpath)
add_subdirectory(modules/lua-miniz)
add_subdirectory(modules/luautf8)
add_subdirectory(modules/luagbk)
add_subdirectory(modules/luasocket)
add_subdirectory(modules/lanes)

@sanikoyes
Copy link
Collaborator

sanikoyes commented Jul 17, 2020

Lots of error message: PARSER ERROR unexpected token, does you modified some lqt files?
What operating system and qt version are you using?

@RhettTR
Copy link
Author

RhettTR commented Jul 17, 2020

I compile on Linux Mint 19.3 kernel 5.3.0-53-generic. Qt version is 5.12.

I have not modified any files in lqt except CMakeLists.txt (this was necessary to compile on Linux, see above).

In my experience Linux is a lot more case-sensitive than Windows. Linux may also use a different text encoding and may not interpret symbols the same way. Just my guess.

If you please, I can download and cmake/make a totally new lqt.

@sanikoyes
Copy link
Collaborator

It may be a platform compatibility problem of cpptoxml, or a problem caused by a certain c++ macro that is not defined. You can try to debug this program to see how this error occurs?

@RhettTR
Copy link
Author

RhettTR commented Jul 29, 2020

Run

/home/test/projects/alben/lqt/cmake-build-debug/bin/cpptoxml QtWidgets -C /home/test/projects/alben/lqt/generator/schema/lqt5_macos.lqt -Q /home/test/projects/alben/lqt/generator/schema -o ./qtwidgets_src/qtwidgets.xml
Preprocess file : /home/test/projects/alben/lqt/generator/schema/lqt5_macos.lqt
Preprocess file : /home/test/projects/alben/lqt/generator/schema/QtWidgets/QtWidgets.lqt
** PARSER ERROR expected token ``}'' found ``eof'' /home/test/projects/alben/lqt/generator/schema/QtWidgets/QtWidgets.lqt (line:322 col:0)
** PARSER ERROR expected token ``;'' found ``eof'' /home/test/projects/alben/lqt/generator/schema/QtWidgets/QtWidgets.lqt (line:322 col:0)

Process finished with exit code 0

Debug

Target and Executable

cpptoxml

Program arguments

QtWidgets -C /home/test/projects/alben/lqt/generator/schema/lqt5_macos.lqt -Q /home/test/projects/alben/lqt/generator/schema -o ./qtwidgets_src/qtwidgets.xml

Stack when first error

Parser::reportError parser.cpp:185
Parser::tokenRequiredError parser.cpp:154
Parser::parseClassSpecifier parser.cpp:1900
Parser::parseDeclaration parser.cpp:465
Parser::parseTranslationUnit parser.cpp:397
Parser::parse parser.cpp:98
main main.cpp:568
__libc_start_main 0x00007fb781a12b97
_start 0x000055d5c5757d9a

Stack when second error

Parser::reportError parser.cpp:177
Parser::tokenRequiredError parser.cpp:154
Parser::parseDeclaration parser.cpp:474
Parser::parseTranslationUnit parser.cpp:397
Parser::parse parser.cpp:98
main main.cpp:568
__libc_start_main 0x00007f7828161b97
_start 0x00005601c2b41d9a

For QtUiTools it was the same

/home/test/projects/alben/lqt/cmake-build-debug/bin/cpptoxml QtUiTools -C /home/test/projects/alben/lqt/generator/schema/lqt5_macos.lqt -Q /home/test/projects/alben/lqt/generator/schema -o ./qtuitools_src/qtuitools.xml
Preprocess file : /home/test/projects/alben/lqt/generator/schema/lqt5_macos.lqt
Preprocess file : /home/test/projects/alben/lqt/generator/schema/QtUiTools/QtUiTools.lqt
** PARSER ERROR expected token ``}'' found ``eof'' /home/test/projects/alben/lqt/generator/schema/QtUiTools/QtUiTools.lqt (line:8 col:0)
** PARSER ERROR expected token ``;'' found ``eof'' /home/test/projects/alben/lqt/generator/schema/QtUiTools/QtUiTools.lqt (line:8 col:0)

Process finished with exit code 0

with the same two Debug stacks.

Tried to locate the position in the source file with rename QtWidgets.lqt to QtWidgets.cpp and

gcc -I /home/test/projects/alben/lqt/generator/schema/ -E QtWidgets.cpp

but it gave no meaningful result for either QtWidgets.lqt or QtUiTools.lqt (the line 332 in QtWidgets.lqt is a line past a forward class defintion). It reported a number of errors though.

What macro is not defined ?

@sanikoyes
Copy link
Collaborator

sanikoyes commented Aug 3, 2020

Modify CMakeLists.txt, change these lines:

	if (UNIX)
		set (PP_CONFIG ${QT_SCHEMA_DIR}/lqt5_macos.lqt)

To:

	if (APPLE)
		set (PP_CONFIG ${QT_SCHEMA_DIR}/lqt5_macos.lqt)
        elseif (UNIX)
		set (PP_CONFIG ${QT_SCHEMA_DIR}/lqt5.lqt)

Maybe it works.

@RhettTR
Copy link
Author

RhettTR commented Aug 4, 2020

It didn't seem to work.

I have done some more debugging.

In the debugger an Evaluate Expression like this

printf("%.*s", 2000, cursor-1000)

with Program arguments

QtUiTools -C /home/test/projects/alben/lqt/generator/schema/lqt5.lqt -Q /home/test/projects/alben/lqt/generator/schema -o ./qtuitools_src/qtuitools.xml

at

LocationManager::extract_line lexer.cpp:55
LocationManager::positionAt lexer.cpp:92
Parser::reportError parser.cpp:177
Parser::tokenRequiredError parser.cpp:154
Parser::parseClassSpecifier parser.cpp:1900
Parser::parseDeclaration parser.cpp:465
Parser::parseTranslationUnit parser.cpp:397
Parser::parse parser.cpp:98
main main.cpp:568
__libc_start_main 0x00007fe254745b97
_start 0x0000556b6c3a3d9a

gave

har *s, const char *c = NULL, int n = -1);  static  QString trUtf8(const char *s, const char *c = NULL, int n = -1); private: Q_OBJECT
public:
explicit QUiLoader(QObject *parent = NULL);
~QUiLoader() ;

QStringList pluginPaths() const;
void clearPluginPaths();
void addPluginPath(const QString &path);

QWidget *load(QIODevice *device, QWidget *parentWidget = NULL);
QStringList availableWidgets() const;
QStringList availableLayouts() const;

virtual QWidget *createWidget(const QString &className, QWidget *parent = NULL, const QString &name = QString());
virtual QLayout *createLayout(const QString &className, QObject *parent = NULL, const QString &name = QString());
virtual QActionGroup *createActionGroup(QObject *parent = NULL, const QString &name = QString());
virtual QAction *createAction(QObject *parent = NULL, const QString &name = QString());

void setWorkingDirectory(const QDir &dir);
QDir workingDirectory() const;

void setLanguageChangeEnabled(bool enabled);
bool isLanguageChangeEnabled() const;

void setTranslationEnabled(bool enabled);
bool isTranslationEnabled() const;

QString errorString() const;

private:
QScopedPointer<QUiLoaderPrivate> d_ptr;
QUiLoader(const QUiLoader &) ; QUiLoader &operator=(const QUiLoader &) ;
QUiLoader(const QUiLoader &) ; QUiLoader &operator=(const QUiLoader &) ;
};




# 4 "/home/test/projects/alben/lqt/generator/schema/QtUiTools/QtUiTools.lqt"

# 1 "/home/test/projects/alben/lqt/generator/schema/QtUiTools/qtuitoolsversion.lqt"









# 5 "/home/test/projects/alben/lqt/generator/schema/QtUiTools/QtUiTools.lqt"

The last statements must be from QtUiTools/qtuitoolsversion.lqt

Is the repetition of statements correct? Why is QtUiTools.lqt repeated? The error is reported to be at the end of the line (in quotes):

" 5 \"/home/test/projects/alben/lqt/generator/schema/QtUiTools/QtUiTools.lqt\"\n\n\n"

just at the \n\n\n

I will do more debugging later.

@RhettTR
Copy link
Author

RhettTR commented Aug 17, 2020

Hello. Sorry for being away awhile.

The errors

** PARSER ERROR expected token ``}'' found ``eof'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtWidgets/QtWidgets.lqt (line:322 col:0)
** PARSER ERROR expected token ``;'' found ``eof'' /home/test/projects/alben/build-lqt/../lqt/generator/schema/QtWidgets/QtWidgets.lqt (line:322 col:0)

likely come from a missing closure of a class. I can print out an arbitrary large segment (with prinf) of the source being converted but it's not practical to search for the missing }; .

I noticed that if I change cmake from version 3.10 to 3.18 cpptoxml will not compile at all but produce strange errors in system files. I am not expert at all regarding cmake so I will not go into this.

The source code of cpptoxml is like 10 years old. Does it have something to do with compiling 64-bit? Have you been able to compile a Windows 64-bit version?

I noticed another thing. In the file lqt/generator/schema/QtOpenGL/qgl.lqt this code is found on lines 79-81:

// Namespace class:
namespace QGL
{

This generates a ** PARSER ERROR unexpected token ``namespace'' message.

Is there any alternative to cpptoxml? Can it be rewritten or regenerated? I need this to work because it's likely the reason why not all bindings are present.

The whole issue is complicated by the fact that I use Qt Lite to make minimum builds. The libraries must be distributed and can not be over a certain size.

@sanikoyes
Copy link
Collaborator

This problem should be caused by the compatibility of cpptoxml. I have successfully compiled/run this project on mac and windows platforms (currently my company’s products use this project, and there are release versions under windows and mac), but Have not tested the Linux platform alone;

The code of cpptoxml is too old to parse the original Qt5 header files (new C++ syntax), which is why I made a bunch of lqt files (modified part of the Qt5 source file syntax for compatibility with cpptoxml);

A more reasonable alternative to cpptoxml is to use libclang to parse the header file and generate an xml file compatible with cpptoxml format. However, this work should not be achieved in the short term, and more effort is needed to implement it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants