mitsuba-renderer / nanogui

Minimalistic C++/Python GUI library for OpenGL, GLES2/3, Metal, and WebAssembly/WebGL
Other
1.57k stars 196 forks source link

Can not build on Raspberry PI 4 #20

Open hungin opened 4 years ago

hungin commented 4 years ago

I have a problem building nanogui on Raspian. Enoki trows a lot of errors and wan't build /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array_neon.h:56:81: error: expected identifier before ‘alignas’ ol Approx_, bool IsMask_, typename Derived_> struct ENOKI_MAY_ALIAS alignas(16) ^~~~~~~ /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array.h:75:8: error: invalid use of incomplete type ‘struct enoki::StaticArrayImpl<float, 4, true, (enoki::RoundingMode)4, false, enoki::Array<float, 4>, int>’ struct Array : StaticArrayImpl<Value_, Size_, Approx_, Mode_, false, /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array_generic.h:138:26: error: type ‘enoki::Array<float, 4>::Base’ {aka ‘enoki::StaticArrayImpl<float, 4, true, (enoki::RoundingMode)4, false, enoki::Array<float, 4>, int>’} is not a base type for type ‘enoki::Array<float, 4>’ using typename Base::Derived; \ ^~~~~~~ /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array_generic.h:147:5: note: in expansion of macro ‘ENOKI_ARRAY_IMPORT_BASIC’ ENOKI_ARRAY_IMPORT_BASIC(Base, Array) \ ^~~~~~~~~~~~~~~~~~~~~~~~ /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array.h:92:5: note: in expansion of macro ‘ENOKI_ARRAY_IMPORT’ ENOKI_ARRAY_IMPORT(Base, Array) ^~~~~~~~~~~~~~~~~~ /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array_generic.h:139:26: error: type ‘enoki::Array<float, 4>::Base’ {aka ‘enoki::StaticArrayImpl<float, 4, true, (enoki::RoundingMode)4, false, enoki::Array<float, 4>, int>’} is not a base type for type ‘enoki::Array<float, 4>’ using typename Base::Value; \ ^~~~~ /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array_generic.h:147:5: note: in expansion of macro ‘ENOKI_ARRAY_IMPORT_BASIC’ ENOKI_ARRAY_IMPORT_BASIC(Base, Array) \ ^~~~~~~~~~~~~~~~~~~~~~~~ /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array.h:92:5: note: in expansion of macro ‘ENOKI_ARRAY_IMPORT’ ENOKI_ARRAY_IMPORT(Base, Array) ^~~~~~~~~~~~~~~~~~ /home/pi/Dev/nanoGUI/ext/enoki/include/enoki/array_generic.h:140:26: error: type ‘enoki::Array<float, 4>::Base’ {aka ‘enoki::StaticArrayImpl<float, 4, true, (enoki::RoundingMode)4, false, enoki::Array<float, 4>, int>’} is not a base type for type ‘enoki::Array<float, 4>’ using typename Base::Scalar; and a lot more! Any suggestions how to fix this?

svenevs commented 4 years ago

Can you try re-compiling with current master branch? Enoki was removed as a hard dependency. But NanoGUI still requires a C++17 capable compiler (e.g., if constexpr), which seems to have been your original problem -- compiler not new enough? Maybe you can get a newer one?

hungin commented 4 years ago

I tried it with the latest master and the latest gcc 8.3 that comes with Raspian, so the compiler should actually work, but still the same errors.

svenevs commented 4 years ago

Are you sure you tried the latest master? Enoki was removed a few days after you opened this, so you shouldn't be getting the same error messages as above. Are there new ones that showed up?

hungin commented 4 years ago

2 day ago

svenevs commented 4 years ago

Please perform a fresh clone (delete the whole tree and re-clone), in the Enoki removal some artifacts in the build system may be causing you grief since I think the ext/enoki folder will still be there if you just did git pull.

Please paste the updated output, it should at the very least be erroring in a different file. I'm revising the build system and can try to support this if you provide me with enough information to help you.

hungin commented 4 years ago

I did that, but I give it again a try