UI interdependency problems while building Subsurface

Dirk Hohndel dirk at hohndel.org
Sun Oct 25 11:53:22 PDT 2020


I had hoped that maybe someone in Europe (much closer timezone-wise to Willem) would respond.
It's of course possible that someone did and just forgot to Cc the list :-)


> On Oct 25, 2020, at 6:28 AM, Willem Ferguson via subsurface <subsurface at subsurface-divelog.org> wrote:
> 
> I need some help with what looks like not a simple problem with the way ui_ files (generated by the Qt metacompiler) interact. I have a PR pending on the Subsurface GitHub site that gives compilation errors that I cannot solve.
> 
> I moved the three files (TabDiveStatistics.*) located in src/subsurface/desktop-widgets/tab-widgets to a separate directory (src/subsurface/stats_widget) and it has brought lots of problems. Following a suggestion of @bstoeger I renamed the three files to lowercase, so they are (after application of the PR) located at subsurface/stats-widget/tab_divestatistics.*
> 
> One of the three files is tab_divestatistics.ui (formerly desktop-widgets/tab-widgets/TabDiveStatistics.ui). The Metampiler turns tab_divestatistics.ui into a c++ header file ui_tab_divestatistics.h. This header file, in turn, includes ui_renumber.h which resides in subsurface/build/desktop-widgets and NOT in subsurface/build/stats-widget (where one finds ui_tab_divestatistics). It appears that the build script expects ui_renumber.h in stats-widget. This, moving tab_divestatistics.ui from desktop-widgets/tab-widgets is causing some includes to fail with a "file not found" error.

The problem is that in the past the simplewidgets.h file was only ever included by files in the desktop-widgets directory. As a result it happened to work to include all of the ui_*.h files without a path and they were found in the working directory.
You now have moved a file that included simplewidgets.h into a different directory. As a result, the include paths need to be qualified in simplewidgets.h

I rudely (sorry) pushed a commit that should address that issue into your branch (weirdly, GitHub allows me to do that... this always bothered me, but it's sometimes useful - like in this case - but fundamentally... why can I push into a branch in YOUR GitHub repo???)

BTW: this indicates that the stats-widget is depending on data from the desktop-widget... something we need to pay attention to as we consider sharing the QML code with mobile.

Thanks

/D


More information about the subsurface mailing list