hugoam/two

build failure, Ubuntu 16.04

Closed this issue · 5 comments

I followed the Linux build instructions in the README. From the build log:

==== Building 00_cube (debug64) ====
Creating ../../linux64_gcc/obj/x64/Debug/02_camera
Creating ../../linux64_gcc/obj/x64/Debug/00_tutorial
Creating ../../linux64_gcc/obj/x64/Debug/02_camera/example/02_camera
Creating ../../linux64_gcc/obj/x64/Debug/00_tutorial/example/00_tutorial
Creating ../../linux64_gcc/obj/x64/Debug/00_cube
Creating ../../linux64_gcc/obj/x64/Debug/01_shapes
Creating ../../linux64_gcc/obj/x64/Debug/02_camera/example/03_materials
Creating ../../linux64_gcc/obj/x64/Debug/00_tutorial/example/meta/00_tutorial
Creating ../../linux64_gcc/obj/x64/Debug/02_camera/src/mud
Creating ../../linux64_gcc/obj/x64/Debug/01_shapes/example/01_shapes
Creating ../../linux64_gcc/obj/x64/Debug/00_cube/example/00_cube
Creating ../../linux64_gcc/obj/x64/Debug/00_tutorial/src/mud
02_camera.cpp
Creating ../../linux64_gcc/obj/x64/Debug/01_shapes/src/mud
Creating ../../linux64_gcc/obj/x64/Debug/00_cube/src/mud
00_tutorial.cpp
01_shapes.cpp
00_cube.cpp
In file included from ../../../src/noise/Structs.h:9:0,
                 from ../../../src/noise/Api.h:2,
                 from ../../../src/mud/mud.h:13,
                 from ../../../example/02_camera/02_camera.cpp:1:
../../../src/noise/Noise.h:11:23: fatal error: FastNoise.h: No such file or directory
compilation terminated.
02_camera.make:226: recipe for target '../../linux64_gcc/obj/x64/Debug/02_camera/example/02_camera/02_camera.o' failed
make[1]: *** [../../linux64_gcc/obj/x64/Debug/02_camera/example/02_camera/02_camera.o] Error 1
Makefile:108: recipe for target '02_camera' failed
make: *** [02_camera] Error 2
make: *** Waiting for unfinished jobs....
In file included from ../../../src/noise/Structs.h:9:0,
                 from ../../../src/noise/Api.h:2,
                 from ../../../src/mud/mud.h:13,
                 from ../../../example/00_tutorial/00_tutorial.cpp:1:
../../../src/noise/Noise.h:11:23: fatal error: FastNoise.h: No such file or directory
compilation terminated.

The include path for 02_camera needs to contain 3rdparty/FastNoise, and that's missing from the generated makefile in build/projects/gmake-linux/02_camera.make.

Looking at the Lua build scripts, 'uses_mud_noise' in 'mud.lua' defines this include directory. That is part of 'mud.noise', which is part of 'mud.mud'. So, 02_camera needs to depend on 'mud.mud'.

So, in 'scripts/mud_example.lua', I added 'mud.mud' to the dependencies for 02_camera:

    mud_example("02_camera",            { mud.mud, mud.gfx, mud.gfx.ui, mud.gfx.pbr },   { _G["03_materials"] })

I guess that's appropriate since 02_camera.cpp includes "mud.mud"? But it fails, GENie blows up with an error if I do this.

i get the same error.

i get the same error.

The build has been generally broken for a few days due to a refactor, I'll fix it and get back to you

This should be fixed now.
To answer your question, you were right that mud.mud contains all of mud modules including mud.noise, but it's a table so you should have substituted { mud.gfx, mud.gfx.ui, mud.gfx.pbr } with mud.mud for genie to work.
Anyway, the dependencies are fixed and this example doesn't depend on that module anymore, so it's all good.
There are still some functional bugs in the examples due to the refactor, but I'll iron them out in the following days, and at least it builds now.

yea compile works now, about half the examples fail but you already know that.