-
Notifications
You must be signed in to change notification settings - Fork 23
Description
Hi
i try to build this project in my linux, and i found some problesms: (using CMake 3.14.0 and GCC 8.2.1)
seems assimp cmake configuration files is named with caps. because of this, cmake failed to find it because cmake is case sensitive
CMake Error at cmake/Findassimp.cmake:74 (message):
Could not find asset importer library
Call Stack (most recent call first):
src/raytrace/CMakeLists.txt:9 (find_package)
-- Configuring incomplete, errors occurred!
after fix the assim problem with rename assim to ASSIM in all cmake files, failed in some cmakefiles about missing Qt options
-- Configuring done
CMake Warning (dev) in 3rdparty/spirv_reflect/CMakeLists.txt:
AUTOGEN: No valid Qt version found for target spirv_reflect. AUTOMOC and
AUTORCC disabled. Consider adding:
find_package(Qt<QTVERSION> COMPONENTS Core)
to your CMakeLists.txt file.
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) in 3rdparty/stb/CMakeLists.txt:
AUTOGEN: No valid Qt version found for target stb. AUTOMOC and AUTORCC
disabled. Consider adding:
find_package(Qt<QTVERSION> COMPONENTS Core)
to your CMakeLists.txt file.
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) in 3rdparty/volk/CMakeLists.txt:
AUTOGEN: No valid Qt version found for target volk. AUTOMOC and AUTORCC
disabled. Consider adding:
find_package(Qt<QTVERSION> COMPONENTS Core)
to your CMakeLists.txt file.
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) in 3rdparty/vma/CMakeLists.txt:
AUTOGEN: No valid Qt version found for target vma. AUTOMOC and AUTORCC
disabled. Consider adding:
find_package(Qt<QTVERSION> COMPONENTS Core)
to your CMakeLists.txt file.
This warning is for project developers. Use -Wno-dev to suppress it.
after adding the options find_package(Qt5 COMPONENTS Core) in the conflictive files, now start build, but:
[ 16%] Building CXX object src/raytrace/CMakeFiles/Qt3DRaytrace.dir/Qt3DRaytrace_autogen/mocs_compilation.cpp.o
In file included from /home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/renderers/vulkan/managers/scenemanager.h:12,
from /home/sl1pkn07/aplicaciones/quartz/Quartz/build/src/raytrace/Qt3DRaytrace_autogen/53G42B54XP/../../../../../src/raytrace/renderers/vulkan/renderer.h:18,
from /home/sl1pkn07/aplicaciones/quartz/Quartz/build/src/raytrace/Qt3DRaytrace_autogen/53G42B54XP/moc_renderer.cpp:9,
from /home/sl1pkn07/aplicaciones/quartz/Quartz/build/src/raytrace/Qt3DRaytrace_autogen/mocs_compilation.cpp:2:
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/renderers/vulkan/glsl.h: En el constructor ‘Qt3DRaytrace::Vulkan::mat4x4::mat4x4(const QMatrix4x4&)’:
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/renderers/vulkan/glsl.h:94:14: error: ‘memcpy’ no es un miembro de ‘std’
std::memcpy(data, m.constData(), sizeof(*this));
^~~~~~
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/renderers/vulkan/glsl.h:94:14: nota: suggested alternative: ‘mem_fn’
std::memcpy(data, m.constData(), sizeof(*this));
^~~~~~
mem_fn
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/renderers/vulkan/glsl.h: En el constructor ‘Qt3DRaytrace::Vulkan::mat3x4::mat3x4(const QMatrix3x4&)’:
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/renderers/vulkan/glsl.h:104:14: error: ‘memcpy’ no es un miembro de ‘std’
std::memcpy(data, m.constData(), sizeof(*this));
^~~~~~
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/renderers/vulkan/glsl.h:104:14: nota: suggested alternative: ‘mem_fn’
std::memcpy(data, m.constData(), sizeof(*this));
^~~~~~
mem_fn
make[2]: *** [src/raytrace/CMakeFiles/Qt3DRaytrace.dir/build.make:78: src/raytrace/CMakeFiles/Qt3DRaytrace.dir/Qt3DRaytrace_autogen/mocs_compilation.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:501: src/raytrace/CMakeFiles/Qt3DRaytrace.dir/all] Error 2
adding #include <cstrings> in the src/raytrace/renderers/vulkan/glsl.h file solved the error, but now:
[ 22%] Building CXX object src/raytrace/CMakeFiles/Qt3DRaytrace.dir/frontend/qmaterial.cpp.o
In file included from /home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qmaterial.cpp:8:
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:32:72: error: ‘unique_ptr’ no es un miembro de ‘std’
using QTextureImageChange = Qt3DCore::QTypedPropertyUpdatedChange<std::unique_ptr<QTextureImage>>;
^~~~~~~~~~
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:32:72: nota: ‘std::unique_ptr’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:10:1:
+#include <memory>
#include <Qt3DCore/private/qnode_p.h>
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:32:72:
using QTextureImageChange = Qt3DCore::QTypedPropertyUpdatedChange<std::unique_ptr<QTextureImage>>;
^~~~~~~~~~
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:32:72: error: ‘unique_ptr’ no es un miembro de ‘std’
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:32:72: nota: ‘std::unique_ptr’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:32:83: error: el argumento de plantilla 1 es no válido
using QTextureImageChange = Qt3DCore::QTypedPropertyUpdatedChange<std::unique_ptr<QTextureImage>>;
^~~~~~~~~~~~~
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:33:78: error: ‘unique_ptr’ no es un miembro de ‘std’
using QTextureImageChangePtr = Qt3DCore::QTypedPropertyUpdatedChangePtr<std::unique_ptr<QTextureImage>>;
^~~~~~~~~~
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:33:78: nota: ‘std::unique_ptr’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:33:78: error: ‘unique_ptr’ no es un miembro de ‘std’
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:33:78: nota: ‘std::unique_ptr’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
/home/sl1pkn07/aplicaciones/quartz/Quartz/src/raytrace/frontend/qabstracttexture_p.h:33:89: error: el argumento de plantilla 1 es no válido
using QTextureImageChangePtr = Qt3DCore::QTypedPropertyUpdatedChangePtr<std::unique_ptr<QTextureImage>>;
^~~~~~~~~~~~~
make[2]: *** [src/raytrace/CMakeFiles/Qt3DRaytrace.dir/build.make:156: src/raytrace/CMakeFiles/Qt3DRaytrace.dir/frontend/qmaterial.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:501: src/raytrace/CMakeFiles/Qt3DRaytrace.dir/all] Error 2
and finaly after fix the error adding #include <memory> to src/raytrace/frontend/qabstracttexture_p.h:
[ 20%] Building CXX object src/raytrace/CMakeFiles/Qt3DRaytrace.dir/backend/abstracttexture.cpp.o
/home/sl1pkn07/aplicaciones/quartz/Quartz/apps/scene2qml/importer.cpp: En la función miembro ‘Entity* Importer::processScene(const aiScene*)’:
/home/sl1pkn07/aplicaciones/quartz/Quartz/apps/scene2qml/importer.cpp:67:60: error: ‘const struct aiTexture’ has no member named ‘mFilename’
textureComponent.name = QString::fromUtf8(texture->mFilename.C_Str());
^~~~~~~~~
make[2]: *** [apps/scene2qml/CMakeFiles/scene2qml.dir/build.make:89: apps/scene2qml/CMakeFiles/scene2qml.dir/importer.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1046: apps/scene2qml/CMakeFiles/scene2qml.dir/all] Error 2
i'm stuck here. how i can fix this? my coder skill is lower than poor :/. can you help me?
i can upload a PR with the finded fixes
greetings