Skip to content
  • Jean-Christophe Fillion-Robin's avatar
    COMP 12945: Allow VTK to build against Qt5 · 384636ec
    Jean-Christophe Fillion-Robin authored
    Since VTK build system has been updated to make use of CMake macros
    specific to Qt5, the support has to explicitly enabled configuring VTK
    with -DVTK_QT_VERSION:STRING="5"
    
    Additionally, in case Qt5 is not installed in a standard location,
    a custom prefix for "find_package" should be passed.
    For example:
      -DCMAKE_PREFIX_PATH:STRING=/home/jchris/Qt5.0.2/5.0.2/gcc_64/
    
    
    Finally, this commit also resolves the build errors reported below.
    
    Fix missing header build error by including Qt headers directly without
    specifying the intermediate directory.
    
    * Fix build error changing QString::toAscii into  QString::toLatin
    The method "toAscii" has been deprecated and is not available in
    default Qt5 distribution.
    See http://qt-project.org/doc/qt-5.0/qtcore/qstring.html#toAscii
    
    * Fix build error changing Qt::WFlags into Qt::WindowFlags
    See http://qt-project.org/doc/qt-5.0/qtcore/qt-obsolete.html
    
    * Fix build error changing QAbstractItemModel::reset() into
    combo QAbstractItemModel::beginResetModel()/QAbstractItemModel::endResetModel()
    The method "reset" has been deprecated and is not available in
    default Qt5 distribution.
    See http://qt-project.org/doc/qt-5.0/qtcore/qabstractitemmodel-compat.html#reset
    
    * Fix build error by including "vtkObjectBase.h":
    /home/jchris/Projects/Qt5.0.2/5.0.2/gcc_64/include/QtCore/qmetatype.h:464: error: invalid application of ‘sizeof’ to incomplete type ‘QStaticAssertFailure<false>’
    
    * Fix "no matching function for call to ‘QPixmap::grabWidget(QWidget*)’" by using
    "QWidget::grab"
    See http://qt-project.org/doc/qt-5.0/qtwidgets/qwidget.html#grab
    
    * Fix missing QHttpHeader/QHttpRequestHeader headers by removing them.
    They have been removed from Qt5 and were not used in the code.
    
    * Fix error: ‘qInstallMsgHandler’ was not declared in this scope
    by using "qInstallMessageHandler"
    See http://qt-project.org/doc/qt-5.0/qtdoc/sourcebreaks.html
    
    * Fix Q4VTKWidgetPlugin.cxx:147: error: invalid application of
    ‘sizeof’ to incomplete type ‘QStaticAssertFailure<false>’ by
    using "Q_PLUGIN_METADATA" macro instead of Q_EXPORT_PLUGIN
    or Q_EXPORT_PLUGIN2.
    See http://qt-project.org/wiki/Transition_from_Qt_4.x_to_Qt5#7ec1b8f08d7f31ebcb53188f0bd15ed5
    
    Change-Id: Ie7123e5990e3a8afb4d7d2efa0fda5bd7b98c1e3
    384636ec