Scanning dependencies of target eng3d [ 1%] Building CXX object eng3d/eng3d/CMakeFiles/eng3d.dir/cmake_pch.hxx.gch [ 5%] Building CXX object eng3d/eng3d/CMakeFiles/eng3d.dir/src/compress.cpp.o [ 5%] Building CXX object eng3d/eng3d/CMakeFiles/eng3d.dir/src/audio.cpp.o [ 5%] Building CXX object eng3d/eng3d/CMakeFiles/eng3d.dir/src/binary_image.cpp.o [ 5%] Building CXX object eng3d/eng3d/CMakeFiles/eng3d.dir/src/curve.cpp.o In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/curve.cpp:28: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/curve.hpp:50:5: error: #error not implemented 50 | # error not implemented | ^~~~~ [ 6%] Building CXX object eng3d/eng3d/CMakeFiles/eng3d.dir/src/event.cpp.o In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/primitive.hpp:32, from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/curve.cpp:30: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/mesh.hpp:122:5: error: #error not implemented 122 | # error not implemented | ^~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/mesh.hpp:145:5: error: #error not implemented 145 | # error not implemented | ^~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/mesh.hpp:157:5: error: #error not implemented 157 | # error not implemented | ^~~~~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/shader.hpp:35, from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/curve.cpp:29: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:79:9: error: ‘GLenum’ does not name a type; did you mean ‘enum’? 79 | GLenum target; | ^~~~~~ | enum /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:80:9: error: ‘GLuint’ does not name a type; did you mean ‘uint’? 80 | GLuint wrap_s; | ^~~~~~ | uint /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:81:9: error: ‘GLuint’ does not name a type; did you mean ‘uint’? 81 | GLuint wrap_t; | ^~~~~~ | uint /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:82:9: error: ‘GLuint’ does not name a type; did you mean ‘uint’? 82 | GLuint min_filter; | ^~~~~~ | uint /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:83:9: error: ‘GLuint’ does not name a type; did you mean ‘uint’? 83 | GLuint mag_filter; | ^~~~~~ | uint /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:84:9: error: ‘GLuint’ does not name a type; did you mean ‘uint’? 84 | GLuint internal_format; | ^~~~~~ | uint /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:85:9: error: ‘GLuint’ does not name a type; did you mean ‘uint’? 85 | GLuint format; | ^~~~~~ | uint /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:86:9: error: ‘GLuint’ does not name a type; did you mean ‘uint’? 86 | GLuint type; | ^~~~~~ | uint /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp: In member function ‘bool Eng3D::TextureOptions::operator==(const Eng3D::TextureOptions&) const’: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:92:20: error: ‘target’ was not declared in this scope 92 | return target == o.target && wrap_s == o.wrap_s && wrap_t == o.wrap_t && min_filter == o.min_filter && mag_filter == o.mag_filter && internal_format == o.internal_format && format == o.format && type == o.type && editable == o.editable; | ^~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:92:32: error: ‘const class Eng3D::TextureOptions’ has no member named ‘target’ 92 | return target == o.target && wrap_s == o.wrap_s && wrap_t == o.wrap_t && min_filter == o.min_filter && mag_filter == o.mag_filter && internal_format == o.internal_format && format == o.format && type == o.type && editable == o.editable; | ^~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:92:42: error: ‘wrap_s’ was not declared in this scope 92 | return target == o.target && wrap_s == o.wrap_s && wrap_t == o.wrap_t && min_filter == o.min_filter && mag_filter == o.mag_filter && internal_format == o.internal_format && format == o.format && type == o.type && editable == o.editable; | ^~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:92:54: error: ‘const class Eng3D::TextureOptions’ has no member named ‘wrap_s’ 92 | return target == o.target && wrap_s == o.wrap_s && wrap_t == o.wrap_t && min_filter == o.min_filter && mag_filter == o.mag_filter && internal_format == o.internal_format && format == o.format && type == o.type && editable == o.editable; | ^~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:92:64: error: ‘wrap_t’ was not declared in this scope 92 | return target == o.target && wrap_s == o.wrap_s && wrap_t == o.wrap_t && min_filter == o.min_filter && mag_filter == o.mag_filter && internal_format == o.internal_format && format == o.format && type == o.type && editable == o.editable; | ^~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:92:76: error: ‘const class Eng3D::TextureOptions’ has no member named ‘wrap_t’ 92 | return target == o.target && wrap_s == o.wrap_s && wrap_t == o.wrap_t && min_filter == o.min_filter && mag_filter == o.mag_filter && internal_format == o.internal_format && format == o.format && type == o.type && editable == o.editable; | ^~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:92:86: error: ‘min_filter’ was not declared in this scope 92 | return target == o.target && wrap_s == o.wrap_s && wrap_t == o.wrap_t && min_filter == o.min_filter && mag_filter == o.mag_filter && internal_format == o.internal_format && format == o.format && type == o.type && editable == o.editable; | ^~~~~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:92:102: error: ‘const class Eng3D::TextureOptions’ has no member named ‘min_filter’ 92 | return target == o.target && wrap_s == o.wrap_s && wrap_t == o.wrap_t && min_filter == o.min_filter && mag_filter == o.mag_filter && internal_format == o.internal_format && format == o.format && type == o.type && editable == o.editable; | ^~~~~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:92:116: error: ‘mag_filter’ was not declared in this scope 92 | return target == o.target && wrap_s == o.wrap_s && wrap_t == o.wrap_t && min_filter == o.min_filter && mag_filter == o.mag_filter && internal_format == o.internal_format && format == o.format && type == o.type && editable == o.editable; | ^~~~~~~~~~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/shader.hpp:35, from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/curve.cpp:29: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:92:132: error: ‘const class Eng3D::TextureOptions’ has no member named ‘mag_filter’ 92 | return target == o.target && wrap_s == o.wrap_s && wrap_t == o.wrap_t && min_filter == o.min_filter && mag_filter == o.mag_filter && internal_format == o.internal_format && format == o.format && type == o.type && editable == o.editable; | ^~~~~~~~~~ [ 7%] Building CXX object eng3d/eng3d/CMakeFiles/eng3d.dir/src/font_sdf.cpp.o /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:92:146: error: ‘internal_format’ was not declared in this scope 92 | return target == o.target && wrap_s == o.wrap_s && wrap_t == o.wrap_t && min_filter == o.min_filter && mag_filter == o.mag_filter && internal_format == o.internal_format && format == o.format && type == o.type && editable == o.editable; | ^~~~~~~~~~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:92:167: error: ‘const class Eng3D::TextureOptions’ has no member named ‘internal_format’ 92 | return target == o.target && wrap_s == o.wrap_s && wrap_t == o.wrap_t && min_filter == o.min_filter && mag_filter == o.mag_filter && internal_format == o.internal_format && format == o.format && type == o.type && editable == o.editable; | ^~~~~~~~~~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:92:186: error: ‘format’ was not declared in this scope 92 | return target == o.target && wrap_s == o.wrap_s && wrap_t == o.wrap_t && min_filter == o.min_filter && mag_filter == o.mag_filter && internal_format == o.internal_format && format == o.format && type == o.type && editable == o.editable; | ^~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:92:198: error: ‘const class Eng3D::TextureOptions’ has no member named ‘format’ 92 | return target == o.target && wrap_s == o.wrap_s && wrap_t == o.wrap_t && min_filter == o.min_filter && mag_filter == o.mag_filter && internal_format == o.internal_format && format == o.format && type == o.type && editable == o.editable; | ^~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:92:208: error: ‘type’ was not declared in this scope; did you mean ‘wctype’? 92 | return target == o.target && wrap_s == o.wrap_s && wrap_t == o.wrap_t && min_filter == o.min_filter && mag_filter == o.mag_filter && internal_format == o.internal_format && format == o.format && type == o.type && editable == o.editable; | ^~~~ | wctype /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:92:218: error: ‘const class Eng3D::TextureOptions’ has no member named ‘type’ 92 | return target == o.target && wrap_s == o.wrap_s && wrap_t == o.wrap_t && min_filter == o.min_filter && mag_filter == o.mag_filter && internal_format == o.internal_format && format == o.format && type == o.type && editable == o.editable; | ^~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp: In member function ‘std::size_t Eng3D::TextureMapHash::operator()(const std::pair, Eng3D::TextureOptions>&) const’: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:148:33: error: ‘class Eng3D::TextureOptions’ has no member named ‘target’ 148 | hash_combine(res, s.target); | ^~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:149:33: error: ‘class Eng3D::TextureOptions’ has no member named ‘wrap_s’ 149 | hash_combine(res, s.wrap_s); | ^~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:150:33: error: ‘class Eng3D::TextureOptions’ has no member named ‘wrap_t’ 150 | hash_combine(res, s.wrap_t); | ^~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:151:33: error: ‘class Eng3D::TextureOptions’ has no member named ‘min_filter’ 151 | hash_combine(res, s.min_filter); | ^~~~~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:152:33: error: ‘class Eng3D::TextureOptions’ has no member named ‘mag_filter’ 152 | hash_combine(res, s.mag_filter); | ^~~~~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:153:33: error: ‘class Eng3D::TextureOptions’ has no member named ‘internal_format’ 153 | hash_combine(res, s.internal_format); | ^~~~~~~~~~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:154:33: error: ‘class Eng3D::TextureOptions’ has no member named ‘format’ 154 | hash_combine(res, s.format); | ^~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/texture.hpp:155:33: error: ‘class Eng3D::TextureOptions’ has no member named ‘type’ 155 | hash_combine(res, s.type); | ^~~~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/state.hpp:47, from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/binary_image.cpp:37: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/ui/ui.hpp:173:40: error: ‘Program’ is not a member of ‘Eng3D::OpenGL’ 173 | std::unique_ptr obj_shader; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/ui/ui.hpp:173:47: error: template argument 1 is invalid 173 | std::unique_ptr obj_shader; | ^ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/ui/ui.hpp:173:47: error: template argument 2 is invalid /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/curve.cpp: In member function ‘void Eng3D::Curve::create_line(std::vector >, std::vector >, float)’: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/curve.cpp:73:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] 73 | for(int i = 0; i < points.size() - 1; i++) { | ~~^~~~~~~~~~~~~~~~~~~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/primitive.hpp:32, from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:36: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/mesh.hpp:122:5: error: #error not implemented 122 | # error not implemented | ^~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/mesh.hpp:145:5: error: #error not implemented 145 | # error not implemented | ^~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/mesh.hpp:157:5: error: #error not implemented 157 | # error not implemented | ^~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/audio.cpp: In constructor ‘Eng3D::Audio::Audio(const string&)’: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/audio.cpp:47:19: warning: unused variable ‘wave’ [-Wunused-variable] 47 | SDL_AudioSpec wave; | ^~~~ make[2]: *** [eng3d/eng3d/CMakeFiles/eng3d.dir/build.make:143: eng3d/eng3d/CMakeFiles/eng3d.dir/src/curve.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: *** [eng3d/eng3d/CMakeFiles/eng3d.dir/build.make:113: eng3d/eng3d/CMakeFiles/eng3d.dir/src/binary_image.cpp.o] Error 1 /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp: In constructor ‘Eng3D::FontSDF::FontSDF(const string&)’: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:50:88: error: invalid use of incomplete type ‘class Eng3D::OpenGL::Program’ 50 | sphere_shader = std::unique_ptr(new Eng3D::OpenGL::Program()); | ^ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:32: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:36:15: note: forward declaration of ‘class Eng3D::OpenGL::Program’ 36 | class Program; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:52:41: error: ‘VertexShader’ is not a member of ‘Eng3D::OpenGL’ 52 | auto vs_shader = Eng3D::OpenGL::VertexShader(Path::cat_strings(Path::get_data("shaders/sphere_mapping.vs"))); | ^~~~~~~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:53:22: error: invalid use of incomplete type ‘class Eng3D::OpenGL::Program’ 53 | sphere_shader->attach_shader(vs_shader); | ^~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:32: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:36:15: note: forward declaration of ‘class Eng3D::OpenGL::Program’ 36 | class Program; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:54:22: error: invalid use of incomplete type ‘class Eng3D::OpenGL::Program’ 54 | sphere_shader->attach_shader(*Eng3D::State::get_instance().builtin_shaders["fs_font_sdf"].get()); | ^~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:32: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:36:15: note: forward declaration of ‘class Eng3D::OpenGL::Program’ 36 | class Program; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:54:68: error: ‘class Eng3D::State’ has no member named ‘builtin_shaders’ 54 | sphere_shader->attach_shader(*Eng3D::State::get_instance().builtin_shaders["fs_font_sdf"].get()); | ^~~~~~~~~~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:55:22: error: invalid use of incomplete type ‘class Eng3D::OpenGL::Program’ 55 | sphere_shader->link(); | ^~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:32: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:36:15: note: forward declaration of ‘class Eng3D::OpenGL::Program’ 36 | class Program; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:57:86: error: invalid use of incomplete type ‘class Eng3D::OpenGL::Program’ 57 | flat_shader = std::unique_ptr(new Eng3D::OpenGL::Program()); | ^ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:32: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:36:15: note: forward declaration of ‘class Eng3D::OpenGL::Program’ 36 | class Program; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:59:20: error: invalid use of incomplete type ‘class Eng3D::OpenGL::Program’ 59 | flat_shader->attach_shader(*Eng3D::State::get_instance().builtin_shaders["vs_font_sdf"].get()); | ^~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:32: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:36:15: note: forward declaration of ‘class Eng3D::OpenGL::Program’ 36 | class Program; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:59:66: error: ‘class Eng3D::State’ has no member named ‘builtin_shaders’ 59 | flat_shader->attach_shader(*Eng3D::State::get_instance().builtin_shaders["vs_font_sdf"].get()); | ^~~~~~~~~~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:60:20: error: invalid use of incomplete type ‘class Eng3D::OpenGL::Program’ 60 | flat_shader->attach_shader(*Eng3D::State::get_instance().builtin_shaders["fs_font_sdf"].get()); | ^~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:32: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:36:15: note: forward declaration of ‘class Eng3D::OpenGL::Program’ 36 | class Program; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:60:66: error: ‘class Eng3D::State’ has no member named ‘builtin_shaders’ 60 | flat_shader->attach_shader(*Eng3D::State::get_instance().builtin_shaders["fs_font_sdf"].get()); | ^~~~~~~~~~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:61:20: error: invalid use of incomplete type ‘class Eng3D::OpenGL::Program’ 61 | flat_shader->link(); | ^~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:32: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:36:15: note: forward declaration of ‘class Eng3D::OpenGL::Program’ 36 | class Program; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp: In member function ‘void Eng3D::FontSDF::draw(const std::vector&, Eng3D::Camera*, bool)’: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:174:11: error: invalid use of incomplete type ‘class Eng3D::OpenGL::Program’ 174 | shader->use(); | ^~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:32: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:36:15: note: forward declaration of ‘class Eng3D::OpenGL::Program’ 36 | class Program; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:175:11: error: invalid use of incomplete type ‘class Eng3D::OpenGL::Program’ 175 | shader->set_uniform("projection", camera->get_projection()); | ^~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:32: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:36:15: note: forward declaration of ‘class Eng3D::OpenGL::Program’ 36 | class Program; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:176:11: error: invalid use of incomplete type ‘class Eng3D::OpenGL::Program’ 176 | shader->set_uniform("view", camera->get_view()); | ^~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:32: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:36:15: note: forward declaration of ‘class Eng3D::OpenGL::Program’ 36 | class Program; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:177:11: error: invalid use of incomplete type ‘class Eng3D::OpenGL::Program’ 177 | shader->set_texture(0, "atlas", *atlas); | ^~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:32: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:36:15: note: forward declaration of ‘class Eng3D::OpenGL::Program’ 36 | class Program; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:179:15: error: invalid use of incomplete type ‘class Eng3D::OpenGL::Program’ 179 | shader->set_uniform("map_size", camera->get_map_size()); | ^~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:32: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:36:15: note: forward declaration of ‘class Eng3D::OpenGL::Program’ 36 | class Program; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:180:15: error: invalid use of incomplete type ‘class Eng3D::OpenGL::Program’ 180 | shader->set_uniform("radius", 101.f); | ^~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:32: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:36:15: note: forward declaration of ‘class Eng3D::OpenGL::Program’ 36 | class Program; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:181:15: error: invalid use of incomplete type ‘class Eng3D::OpenGL::Program’ 181 | shader->set_uniform("model", glm::mat4(1)); | ^~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:32: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:36:15: note: forward declaration of ‘class Eng3D::OpenGL::Program’ 36 | class Program; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:182:15: error: invalid use of incomplete type ‘class Eng3D::OpenGL::Program’ 182 | shader->set_uniform("px_range", label->size * 0.5f); | ^~ In file included from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:32: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:36:15: note: forward declaration of ‘class Eng3D::OpenGL::Program’ 36 | class Program; | ^~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp: In constructor ‘Eng3D::Label3D::Label3D(Eng3D::TriangleList*, float)’: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:58:23: warning: ‘Eng3D::Label3D::triangles’ will be initialized after [-Wreorder] 58 | TriangleList* triangles; | ^~~~~~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/include/eng3d/font_sdf.hpp:56:15: warning: ‘float Eng3D::Label3D::size’ [-Wreorder] 56 | float size; | ^~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:187:1: warning: when initialized here [-Wreorder] 187 | Eng3D::Label3D::Label3D(TriangleList* _triangles, float _size) | ^~~~~ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp: In member function ‘void Eng3D::Label3D::draw()’: /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:198:16: error: ‘class Eng3D::TriangleList’ has no member named ‘draw’ 198 | triangles->draw(); | ^~~~ In file included from /usr/include/c++/11/bits/std_thread.h:44, from /usr/include/c++/11/thread:43, from /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/CMakeFiles/eng3d.dir/cmake_pch.hxx:19, from : /usr/include/c++/11/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = Eng3D::OpenGL::Program]’: /usr/include/c++/11/bits/unique_ptr.h:361:17: required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = Eng3D::OpenGL::Program; _Dp = std::default_delete]’ /home/####/Desktop/soe/symphony-of-empires/eng3d/eng3d/src/font_sdf.cpp:49:52: required from here /usr/include/c++/11/bits/unique_ptr.h:83:23: error: invalid application of ‘sizeof’ to incomplete type ‘Eng3D::OpenGL::Program’ 83 | static_assert(sizeof(_Tp)>0, | ^~~~~~~~~~~ make[2]: *** [eng3d/eng3d/CMakeFiles/eng3d.dir/build.make:173: eng3d/eng3d/CMakeFiles/eng3d.dir/src/font_sdf.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:160: eng3d/eng3d/CMakeFiles/eng3d.dir/all] Error 2 make: *** [Makefile:103: all] Error 2