3dzavr
3dzavr copied to clipboard
Can't build with gcc
On Linux gcc (version 13.2.1 20230801) fails to build 3dzavr with the following output:
[ 2%] Building CXX object engine/CMakeFiles/3DZAVR.dir/utils/WorldEditor.cpp.o
/tmp/3dzavr/engine/utils/WorldEditor.cpp:14:1: sorry, unimplemented: non-trivial designated initializers not supported
14 | };
| ^
/tmp/3dzavr/engine/utils/WorldEditor.cpp:14:1: sorry, unimplemented: non-trivial designated initializers not supported
/tmp/3dzavr/engine/utils/WorldEditor.cpp:25:1: sorry, unimplemented: non-trivial designated initializers not supported
25 | };
| ^
/tmp/3dzavr/engine/utils/WorldEditor.cpp:25:1: sorry, unimplemented: non-trivial designated initializers not supported
/tmp/3dzavr/engine/utils/WorldEditor.cpp:25:1: sorry, unimplemented: non-trivial designated initializers not supported
/tmp/3dzavr/engine/utils/WorldEditor.cpp:25:1: sorry, unimplemented: non-trivial designated initializers not supported
/tmp/3dzavr/engine/utils/WorldEditor.cpp:25:1: sorry, unimplemented: non-trivial designated initializers not supported
/tmp/3dzavr/engine/utils/WorldEditor.cpp:25:1: sorry, unimplemented: non-trivial designated initializers not supported
/tmp/3dzavr/engine/utils/WorldEditor.cpp:25:1: sorry, unimplemented: non-trivial designated initializers not supported
/tmp/3dzavr/engine/utils/WorldEditor.cpp:25:1: sorry, unimplemented: non-trivial designated initializers not supported
/tmp/3dzavr/engine/utils/WorldEditor.cpp: In member function ‘void WorldEditor::objectTree(const std::shared_ptr<Object>&)’:
/tmp/3dzavr/engine/utils/WorldEditor.cpp:189:39: error: taking address of temporary array
189 | mu_layout_row(ctx, 1, (int[]) { 200 }, 0);
| ^~~~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp:200:47: error: taking address of temporary array
200 | mu_layout_row(ctx, 1, (int[]) { 200 }, 0);
| ^~~~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp: In member function ‘void WorldEditor::transformMatrixEditor()’:
/tmp/3dzavr/engine/utils/WorldEditor.cpp:225:39: error: taking address of temporary array
225 | mu_layout_row(ctx, 3, (int[]) {60, 60, 60}, 0);
| ^~~~~~~~~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp:237:47: error: taking address of temporary array
237 | mu_layout_row(ctx, 2, (int[]) {70, 150}, 0);
| ^~~~~~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp:249:47: error: taking address of temporary array
249 | mu_layout_row(ctx, 2, (int[]) {70, 150}, 0);
| ^~~~~~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp:263:47: error: taking address of temporary array
263 | mu_layout_row(ctx, 2, (int[]) {70, 150}, 0);
| ^~~~~~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp:276:39: error: taking address of temporary array
276 | mu_layout_row(ctx, 1, (int[]) {120}, 0);
| ^~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp: In member function ‘void WorldEditor::triangleMeshEditor()’:
/tmp/3dzavr/engine/utils/WorldEditor.cpp:311:43: error: taking address of temporary array
311 | mu_layout_row(ctx, 2, (int[]) { 46, -1 }, 0);
| ^~~~~~~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp:321:39: error: taking address of temporary array
321 | mu_layout_row(ctx, 2, (int[]) {100, 130}, 0);
| ^~~~~~~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp: In member function ‘void WorldEditor::lineMeshEditor()’:
/tmp/3dzavr/engine/utils/WorldEditor.cpp:352:39: error: taking address of temporary array
352 | mu_layout_row(ctx, 2, (int[]) { 46, -1 }, 0);
| ^~~~~~~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp: In member function ‘void WorldEditor::lightSourceEditor()’:
/tmp/3dzavr/engine/utils/WorldEditor.cpp:382:39: error: taking address of temporary array
382 | mu_layout_row(ctx, 2, (int[]) {70, 150}, 0);
| ^~~~~~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp:394:39: error: taking address of temporary array
394 | mu_layout_row(ctx, 2, (int[]) { 46, -1 }, 0);
| ^~~~~~~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp:409:43: error: taking address of temporary array
409 | mu_layout_row(ctx, 2, (int[]) {100, 100}, 0);
| ^~~~~~~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp: In member function ‘void WorldEditor::rigidObjectEditor()’:
/tmp/3dzavr/engine/utils/WorldEditor.cpp:440:39: error: taking address of temporary array
440 | mu_layout_row(ctx, 2, (int[]) {100, 100}, 0);
| ^~~~~~~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp:454:47: error: taking address of temporary array
454 | mu_layout_row(ctx, 2, (int[]) { 30, -1 }, 0);
| ^~~~~~~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp:469:47: error: taking address of temporary array
469 | mu_layout_row(ctx, 2, (int[]) { 30, -1 }, 0);
| ^~~~~~~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp: In member function ‘void WorldEditor::objectEditor()’:
/tmp/3dzavr/engine/utils/WorldEditor.cpp:496:39: error: taking address of temporary array
496 | mu_layout_row(ctx, 1, (int[]) {120}, 0);
| ^~~~~
/tmp/3dzavr/engine/utils/WorldEditor.cpp: In member function ‘void WorldEditor::renderSettings()’:
/tmp/3dzavr/engine/utils/WorldEditor.cpp:522:43: error: taking address of temporary array
522 | mu_layout_row(ctx, 2, (int[]) { 70, 150 }, 0);
| ^~~~~~~~~~~
make[2]: *** [engine/CMakeFiles/3DZAVR.dir/build.make:468: engine/CMakeFiles/3DZAVR.dir/utils/WorldEditor.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:126: engine/CMakeFiles/3DZAVR.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
So clang must be used for building 3dzavr now. It can be set with this command:
cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" ..