Skip to content
This repository has been archived by the owner on Aug 16, 2024. It is now read-only.

Qt 5.14.1 support #13

Open
mkielak opened this issue Apr 22, 2020 · 6 comments
Open

Qt 5.14.1 support #13

mkielak opened this issue Apr 22, 2020 · 6 comments

Comments

@mkielak
Copy link

mkielak commented Apr 22, 2020

Hi,
I spent 2 days trying to use qmlAlembic with Qt 5.14.1 (also 5.13.1) and it doesn't work. I installed it with cmake, qmake (my own .pro file), even tried with copying all source to project and building all together - always same effect which look like this:
Cannot assign to property of unknown type "" (Qt 5.14.1)
Can not assign value of type "<unknown type>" to property "entity", expecting an object (Qt 5.13.1)

Error comes from
QQmlPropertyValidator::validateObjectBinding(QQmlPropertyData*, QString const&, QV4::CompiledData::Binding const*) - qqmlpropertyvalidator.cpp inside qtdeclarative module.

It seems like some problem with reading plugin metadata. I tried to debug inside qt source but after my own compilation there were plenty of other problems. Did anyone face something similiar? Should qmlAlembic work with newer Qt Versions than 5.11?

@fabiencastan
Copy link
Member

Yes, it works for me with qt-5.13.0 on linux and qt-5.14.1 on windows.
What platform are you using?

@mkielak
Copy link
Author

mkielak commented Apr 22, 2020

I working on Ubuntu 18.04 and Qt installed from offline installer.

@fabiencastan
Copy link
Member

Difficult to help as I cannot reproduce it.
Could you share your full log when using the provided cmake?

@mkielak
Copy link
Author

mkielak commented Apr 23, 2020

There are some warnings but everything is building
CMake output:

-- The CXX compiler identification is GNU 7.4.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at CMakeLists.txt:9 (cmake_policy):
  The OLD behavior for policy CMP0043 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


ILMBASE_ROOT is undefined
-- #define ILMBASE_VERSION_STRING "2.3.0"
-- ILMBASE INCLUDE PATH: /usr/local/include/OpenEXR
-- HALF LIB: /usr/local/lib/libHalf.so
-- IEX LIB: /usr/local/lib/libIex.so
-- IEXMATH LIB: /usr/local/lib/libIexMath.so
-- ILMTHREAD LIB: /usr/local/lib/libIlmThread.so
-- IMATH LIB: /usr/local/lib/libImath.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/build

Make output:

Scanning dependencies of target alembicEntityQmlPlugin_autogen
[ 12%] Automatic MOC for target alembicEntityQmlPlugin
[ 12%] Built target alembicEntityQmlPlugin_autogen
Scanning dependencies of target alembicEntityQmlPlugin
[ 25%] Building CXX object src/CMakeFiles/alembicEntityQmlPlugin.dir/alembicEntityQmlPlugin_autogen/mocs_compilation.cpp.o
[ 37%] Building CXX object src/CMakeFiles/alembicEntityQmlPlugin.dir/AlembicEntity.cpp.o
[ 50%] Building CXX object src/CMakeFiles/alembicEntityQmlPlugin.dir/BaseAlembicObject.cpp.o
[ 62%] Building CXX object src/CMakeFiles/alembicEntityQmlPlugin.dir/CameraLocatorEntity.cpp.o
/home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/CameraLocatorEntity.cpp: In constructor ‘abcentity::CameraLocatorEntity::CameraLocatorEntity(Qt3DCore::QNode*)’:
/home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/CameraLocatorEntity.cpp:28:62: warning: ‘Qt3DRender::QBuffer::QBuffer(Qt3DRender::QBuffer::BufferType, Qt3DCore::QNode*)’ is deprecated [-Wdeprecated-declarations]
     auto vertexDataBuffer = new QBuffer(QBuffer::VertexBuffer);
                                                              ^
In file included from /home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/QBuffer:1:0,
                 from /home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/CameraLocatorEntity.cpp:4:
/home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/qbuffer.h:99:28: note: declared here
     QT_DEPRECATED explicit QBuffer(BufferType ty, Qt3DCore::QNode *parent = nullptr);
                            ^~~~~~~
/home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/CameraLocatorEntity.cpp:33:53: warning: ‘void Qt3DRender::QAttribute::setDataType(Qt3DRender::QAttribute::VertexBaseType)’ is deprecated [-Wdeprecated-declarations]
     positionAttribute->setDataType(QAttribute::Float);
                                                     ^
In file included from /home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/QAttribute:1:0,
                 from /home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/CameraLocatorEntity.cpp:3:
/home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/qattribute.h:130:24: note: declared here
     QT_DEPRECATED void setDataType(VertexBaseType type);
                        ^~~~~~~~~~~
/home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/CameraLocatorEntity.cpp:34:37: warning: ‘void Qt3DRender::QAttribute::setDataSize(uint)’ is deprecated [-Wdeprecated-declarations]
     positionAttribute->setDataSize(3);
                                     ^
In file included from /home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/QAttribute:1:0,
                 from /home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/CameraLocatorEntity.cpp:3:
/home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/qattribute.h:131:24: note: declared here
     QT_DEPRECATED void setDataSize(uint size);
                        ^~~~~~~~~~~
/home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/CameraLocatorEntity.cpp:48:61: warning: ‘Qt3DRender::QBuffer::QBuffer(Qt3DRender::QBuffer::BufferType, Qt3DCore::QNode*)’ is deprecated [-Wdeprecated-declarations]
     auto colorDataBuffer = new QBuffer(QBuffer::VertexBuffer);
                                                             ^
In file included from /home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/QBuffer:1:0,
                 from /home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/CameraLocatorEntity.cpp:4:
/home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/qbuffer.h:99:28: note: declared here
     QT_DEPRECATED explicit QBuffer(BufferType ty, Qt3DCore::QNode *parent = nullptr);
                            ^~~~~~~
/home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/CameraLocatorEntity.cpp:53:50: warning: ‘void Qt3DRender::QAttribute::setDataType(Qt3DRender::QAttribute::VertexBaseType)’ is deprecated [-Wdeprecated-declarations]
     colorAttribute->setDataType(QAttribute::Float);
                                                  ^
In file included from /home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/QAttribute:1:0,
                 from /home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/CameraLocatorEntity.cpp:3:
/home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/qattribute.h:130:24: note: declared here
     QT_DEPRECATED void setDataType(VertexBaseType type);
                        ^~~~~~~~~~~
/home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/CameraLocatorEntity.cpp:54:34: warning: ‘void Qt3DRender::QAttribute::setDataSize(uint)’ is deprecated [-Wdeprecated-declarations]
     colorAttribute->setDataSize(3);
                                  ^
In file included from /home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/QAttribute:1:0,
                 from /home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/CameraLocatorEntity.cpp:3:
/home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/qattribute.h:131:24: note: declared here
     QT_DEPRECATED void setDataSize(uint size);
                        ^~~~~~~~~~~
[ 75%] Building CXX object src/CMakeFiles/alembicEntityQmlPlugin.dir/IOThread.cpp.o
[ 87%] Building CXX object src/CMakeFiles/alembicEntityQmlPlugin.dir/PointCloudEntity.cpp.o
/home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/PointCloudEntity.cpp: In member function ‘void abcentity::PointCloudEntity::setData(const Alembic::Abc::v11::IObject&)’:
/home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/PointCloudEntity.cpp:33:62: warning: ‘Qt3DRender::QBuffer::QBuffer(Qt3DRender::QBuffer::BufferType, Qt3DCore::QNode*)’ is deprecated [-Wdeprecated-declarations]
     auto vertexDataBuffer = new QBuffer(QBuffer::VertexBuffer);
                                                              ^
In file included from /home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/QBuffer:1:0,
                 from /home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/PointCloudEntity.cpp:4:
/home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/qbuffer.h:99:28: note: declared here
     QT_DEPRECATED explicit QBuffer(BufferType ty, Qt3DCore::QNode *parent = nullptr);
                            ^~~~~~~
/home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/PointCloudEntity.cpp:38:53: warning: ‘void Qt3DRender::QAttribute::setDataType(Qt3DRender::QAttribute::VertexBaseType)’ is deprecated [-Wdeprecated-declarations]
     positionAttribute->setDataType(QAttribute::Float);
                                                     ^
In file included from /home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/QAttribute:1:0,
                 from /home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/PointCloudEntity.cpp:3:
/home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/qattribute.h:130:24: note: declared here
     QT_DEPRECATED void setDataType(VertexBaseType type);
                        ^~~~~~~~~~~
/home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/PointCloudEntity.cpp:39:37: warning: ‘void Qt3DRender::QAttribute::setDataSize(uint)’ is deprecated [-Wdeprecated-declarations]
     positionAttribute->setDataSize(3);
                                     ^
In file included from /home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/QAttribute:1:0,
                 from /home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/PointCloudEntity.cpp:3:
/home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/qattribute.h:131:24: note: declared here
     QT_DEPRECATED void setDataSize(uint size);
                        ^~~~~~~~~~~
/home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/PointCloudEntity.cpp:48:61: warning: ‘Qt3DRender::QBuffer::QBuffer(Qt3DRender::QBuffer::BufferType, Qt3DCore::QNode*)’ is deprecated [-Wdeprecated-declarations]
     auto colorDataBuffer = new QBuffer(QBuffer::VertexBuffer);
                                                             ^
In file included from /home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/QBuffer:1:0,
                 from /home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/PointCloudEntity.cpp:4:
/home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/qbuffer.h:99:28: note: declared here
     QT_DEPRECATED explicit QBuffer(BufferType ty, Qt3DCore::QNode *parent = nullptr);
                            ^~~~~~~
/home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/PointCloudEntity.cpp:91:50: warning: ‘void Qt3DRender::QAttribute::setDataType(Qt3DRender::QAttribute::VertexBaseType)’ is deprecated [-Wdeprecated-declarations]
     colorAttribute->setDataType(QAttribute::Float);
                                                  ^
In file included from /home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/QAttribute:1:0,
                 from /home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/PointCloudEntity.cpp:3:
/home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/qattribute.h:130:24: note: declared here
     QT_DEPRECATED void setDataType(VertexBaseType type);
                        ^~~~~~~~~~~
/home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/PointCloudEntity.cpp:92:34: warning: ‘void Qt3DRender::QAttribute::setDataSize(uint)’ is deprecated [-Wdeprecated-declarations]
     colorAttribute->setDataSize(3);
                                  ^
In file included from /home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/QAttribute:1:0,
                 from /home/michal/workspace/skyrenderergui/3rdparty/qmlAlembic/src/PointCloudEntity.cpp:3:
/home/michal/workspace/Qt5.14.1/5.14.1/gcc_64/include/Qt3DRender/qattribute.h:131:24: note: declared here
     QT_DEPRECATED void setDataSize(uint size);
                        ^~~~~~~~~~~
[100%] Linking CXX shared library libalembicEntityQmlPlugin.so
[100%] Built target alembicEntityQmlPlugin

@EwoutH
Copy link

EwoutH commented May 1, 2020

Does it work with a newer GCC version? Like 9.3?

@mkielak
Copy link
Author

mkielak commented May 4, 2020

Compiled with 9.3.0 - same problem.
I thought it might be connected with QGuiApplication which I use in main but changing to QApplication didn't take effect.

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

No branches or pull requests

3 participants