-
Notifications
You must be signed in to change notification settings - Fork 54
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
Fix qt gcc 6 #187
Fix qt gcc 6 #187
Conversation
Windows build succeeded: https://open.cdash.org/buildSummary.php?buildid=5020576 |
Mac build succeeded: https://open.cdash.org/buildSummary.php?buildid=5020594 |
Mac build succeeded: https://open.cdash.org/buildSummary.php?buildid=5020622 |
Linux build succeeded: https://open.cdash.org/buildSummary.php?buildid=5021587 |
It would be great to get your opinions on this branch. I have been bumping my nose against the gcc 6 issue for some time and would like to get Qt working. As I stated above, it is a bit heavy-handed by disabling script. It occurred to me that another approach which might be more clean is, add the -no-script and -no-scripttools flags when we disable Javascript since much of what is built by -script is in Qt/src/3rdparty/webkit/Source/JavaScriptCore. One could also argue that these items should be disabled with the -no-webkit flag we have. If we moved to that option, which I am starting to prefer, I would enforce it when we are using gcc >=6 |
Patches/Qt/itemviews.cpp
Outdated
@@ -393,7 +393,7 @@ bool QAccessibleTable2::unselectColumn(int column) | |||
QModelIndex index = view()->model()->index(0, column, view()->rootIndex()); | |||
if (!index.isValid() || view()->selectionMode() & QAbstractItemView::NoSelection) | |||
return false; | |||
view()->selectionModel()->select(index, QItemSelectionModel::Columns & QItemSelectionModel::Deselect); | |||
view()->selectionModel()->select(index, static_cast<QItemSelectionModel::SelectionFlags> (QItemSelectionModel::Columns & QItemSelectionModel::Deselect)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Whee! This is actually a bug in Qt; the &
should be a |
. (This change is just hiding the actual bug.)
Interestingly, ViViA had an instance of this exact same bug 😄.
Patches/Qt/previewmanager.cpp
Outdated
@@ -817,7 +817,7 @@ QWidget *PreviewManager::raise(const QDesignerFormWindowInterface *fw, const Pre | |||
{ | |||
typedef PreviewManagerPrivate::PreviewDataList PreviewDataList; | |||
if (d->m_previews.empty()) | |||
return false; | |||
return 0; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Heh.... also a bug in Qt, but the correct fix this time.
I'm not going to have much to add here other than a suggestion: Can we upgrade to a newer Qt that already works with GCC 6? That is a question for @mwoehlke-kitware. I don't know how much effort is needed to upgrade our current applications that use Qt. Also, I don't know what licensing issues the may introduce (e.g. if Qt changed it's license). I'm not strongly pushing to upgrade, only pointing out that the longer we hang on to the old version the harder it will be to support. |
That seems plausible; I don't think we (at least, neither ViViA nor MapTk) are directly using QtScript anywhere... |
Not really; I believe we are already on latest Qt4, and upgrading to Qt5 requires at least some porting, and figuring out if PySide2 is usable yet (or losing the web bits of ViViA until it is). Eventually we need to find out what's up with Qt5/PySide2 (or decide we just don't care about ViViA web), but I think that's believed to be sufficiently non-trivial that it is blocked by lack of tasking. |
+1 to @mwoehlke-kitware .. that was my reasoning for not looking into Qt5 further. It would be good to get there, but it is non-trivial at the moment. I didn't think anyone was using script. I will make the change to move it under the disable javascript option and repush. Disabling these flags should decrease the Qt build time substantially as well. |
... all that said, perhaps this is a great opportunity for one of those 'version' branches which we have been making. That will let us experiment with Qt 5 while defaulting to Qt 4. |
Yes, I agree. It would be good to add an option for Qt 5 to allow for easier experimentation and to see what Fletch related issues we may run into. After talking with @mwoehlke-kitware I think the plan is to land VTK 8.0 as the official Fletch version before we land Qt 5. There may be some issues with using newer Qt and older VTK together. |
Agreed. That said, I already have a working Qt 5 build for a personal code
base I use, but it only works on Linux (maybe Mac) at the moment. Maybe I
will start things off by adding that work here. I initially based it on the
Qt4 cmake build which is possibly why it doesn't work on Windows. Maybe
it's better to just start from scratch since so much has changed in Qt5. I
will get a WIP branch together anyway, just to get the placeholder up for
review and testing.
…On Wed, Aug 16, 2017 at 12:41 PM, Matt Leotta ***@***.***> wrote:
Yes, I agree. It would be good to add an option for Qt 5 to allow for
easier experimentation and to see what Fletch related issues we may run
into.
After talking with @mwoehlke-kitware <https://github.com/mwoehlke-kitware>
I think the plan is to land VTK 8.0 as the official Fletch version before
we land Qt 5. There may be some issues with using newer Qt and older VTK
together.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#187 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AFRAWiFryy7Tr1Zkd6zdbU0ziD7MaMdyks5sYxu0gaJpZM4O4GnB>
.
--
David Stoup
Staff R&D Engineer
Kitware, Inc.
28 Corporate Drive
Clifton Park, NY. 12065
518-881-4949 (W)
518-312-3946 (M)
518-371-4573 (F)
|
Indeed; another project I was working on transitioned from VTK5/Qt4 to VTK6+/Qt5 and ultimately needed VTK8 in order to fully work correctly with Qt5. (I believe it even drove some changes to land in VTK8 just before it was released.) |
Previously we were selecting webkit on/off and javascript on/off. With the build failures with gcc >= 6 we were faced with another removal, script and scripttools. It makes more sense to turn off everything or all all to build. Turning those packages on was a use case that was almost never activated.
Mac build succeeded: https://open.cdash.org/buildSummary.php?buildid=5022791 |
Windows build failure: https://open.cdash.org/buildSummary.php?buildid=5022798 |
Linux build succeeded: https://open.cdash.org/buildSummary.php?buildid=5023215 |
Jenkins test this please |
Windows build failure: https://open.cdash.org/buildSummary.php?buildid=5028093 |
Mac build succeeded: https://open.cdash.org/buildSummary.php?buildid=5028151 |
Linux build succeeded: https://open.cdash.org/buildSummary.php?buildid=5028276 |
Windows build succeeded: https://open.cdash.org/buildSummary.php?buildid=5030272 |
Mac build succeeded: https://open.cdash.org/buildSummary.php?buildid=5030293 |
Linux build succeeded: https://open.cdash.org/buildSummary.php?buildid=5031085 |
Qt won't build with gcc 6. This patch is a bit heavy handed since it disables the scripts module. I don't believe we use it anywhere and I don't think this patch is a permanent need since we'll likely switch over to Qt 5 at some point.