perbone / luascript

Lua language support for Godot Engine
Apache License 2.0
629 stars 44 forks source link

Archlinux unable to compile #23

Closed Lufen34 closed 4 years ago

Lufen34 commented 4 years ago

Hello !

It's me again, I tried to compile this time on my Archlinux distro and I still can't compile then engine using the following command :

scons -j4 platform=x11 module_luascript_enabled=yes

full report when the error appears :


[ 32%] Compiling ==> modules/luascript/debug.cpp
[ 32%] Compiling ==> modules/luascript/lua_script.cpp
[ 32%] Compiling ==> main/main.cpp
In file included from modules/luascript/lua_script.cpp:24:
modules/luascript/lua_script.h:110:55: error: 'Variant::CallError' has not been declared
  110 |  Variant _new(const Variant **p_args, int p_argcount, Variant::CallError &r_error);
      |                                                       ^~~~~~~
In file included from modules/luascript/lua_script.cpp:25:
modules/luascript/lua_script_instance.h:46:91: error: 'Variant::CallError' has not been declared
   46 |  virtual Variant call(const StringName &p_method, const Variant **p_args, int p_argcount, Variant::CallError &r_error);
      |                                                                                           ^~~~~~~
In file included from modules/luascript/lua_script.cpp:26:
modules/luascript/lua_script_language.h:38:35: error: deduced class type 'MutexLock' in function return type
   38 |  _FORCE_INLINE_ static MutexLock &acquire() {
      |                                   ^~~~~~~
In file included from ./core/safe_refcount.h:34,
                 from ./core/os/memory.h:35,
                 from ./core/list.h:35,
                 from ./core/engine.h:34,
                 from ./core/os/os.h:34,
                 from modules/luascript/lua_script.cpp:20:
./core/os/mutex.h:60:7: note: 'template<class MutexT> class MutexLock' declared here
   60 | class MutexLock {
      |       ^~~~~~~~~
In file included from modules/luascript/lua_script.cpp:26:
modules/luascript/lua_script_language.h:72:82: error: 'PoolStringArray' does not name a type; did you mean 'PackedStringArray'?
   72 |  virtual String make_function(const String &p_class, const String &p_name, const PoolStringArray &p_args) const;
      |                                                                                  ^~~~~~~~~~~~~~~
      |                                                                                  PackedStringArray
modules/luascript/lua_script.cpp: In constructor 'LuaScript::LuaScript()':
modules/luascript/lua_script.cpp:40:34: error: 'acquire' is not a member of 'LuaScriptLanguage'
   40 |  auto guard = LuaScriptLanguage::acquire();
      |                                  ^~~~~~~
modules/luascript/lua_script.cpp: In destructor 'virtual LuaScript::~LuaScript()':
modules/luascript/lua_script.cpp:49:34: error: 'acquire' is not a member of 'LuaScriptLanguage'
   49 |  auto guard = LuaScriptLanguage::acquire();
      |                                  ^~~~~~~
In file included from ./core/list.h:35,
                 from ./core/engine.h:34,
                 from ./core/os/os.h:34,
                 from modules/luascript/lua_script.cpp:20:
modules/luascript/lua_script.cpp: In member function 'virtual ScriptInstance* LuaScript::instance_create(Object*)':
modules/luascript/lua_script.cpp:89:85: error: invalid new-expression of abstract class type 'LuaScriptInstance'
   89 |  LuaScriptInstance *instance = memnew(LuaScriptInstance(p_this, Ref<LuaScript>(this)));
      |                                                                                     ^
./core/os/memory.h:93:51: note: in definition of macro 'memnew'
   93 | #define memnew(m_class) _post_initialize(new ("") m_class)
      |                                                   ^~~~~~~
In file included from modules/luascript/lua_script.cpp:25:
modules/luascript/lua_script_instance.h:24:7: note:   because the following virtual functions are pure within 'LuaScriptInstance':
   24 | class LuaScriptInstance : public ScriptInstance {
      |       ^~~~~~~~~~~~~~~~~
In file included from ./core/os/main_loop.h:36,
                 from ./core/engine.h:35,
                 from ./core/os/os.h:34,
                 from modules/luascript/lua_script.cpp:20:
./core/script_language.h:201:18: note:     'virtual Variant ScriptInstance::call(const StringName&, const Variant**, int, Callable::CallError&)'
  201 |  virtual Variant call(const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error) = 0;
      |                  ^~~~
./core/script_language.h:224:32: note:     'virtual Vector<ScriptNetData> ScriptInstance::get_rpc_methods() const'
  224 |  virtual Vector<ScriptNetData> get_rpc_methods() const = 0;
      |                                ^~~~~~~~~~~~~~~
./core/script_language.h:225:19: note:     'virtual uint16_t ScriptInstance::get_rpc_method_id(const StringName&) const'
  225 |  virtual uint16_t get_rpc_method_id(const StringName &p_method) const = 0;
      |                   ^~~~~~~~~~~~~~~~~
./core/script_language.h:226:21: note:     'virtual StringName ScriptInstance::get_rpc_method(uint16_t) const'
  226 |  virtual StringName get_rpc_method(uint16_t p_id) const = 0;
      |                     ^~~~~~~~~~~~~~
./core/script_language.h:227:34: note:     'virtual MultiplayerAPI::RPCMode ScriptInstance::get_rpc_mode_by_id(uint16_t) const'
  227 |  virtual MultiplayerAPI::RPCMode get_rpc_mode_by_id(uint16_t p_id) const = 0;
      |                                  ^~~~~~~~~~~~~~~~~~
./core/script_language.h:230:32: note:     'virtual Vector<ScriptNetData> ScriptInstance::get_rset_properties() const'
  230 |  virtual Vector<ScriptNetData> get_rset_properties() const = 0;
      |                                ^~~~~~~~~~~~~~~~~~~
./core/script_language.h:231:19: note:     'virtual uint16_t ScriptInstance::get_rset_property_id(const StringName&) const'
  231 |  virtual uint16_t get_rset_property_id(const StringName &p_variable) const = 0;
      |                   ^~~~~~~~~~~~~~~~~~~~
./core/script_language.h:232:21: note:     'virtual StringName ScriptInstance::get_rset_property(uint16_t) const'
  232 |  virtual StringName get_rset_property(uint16_t p_id) const = 0;
      |                     ^~~~~~~~~~~~~~~~~
./core/script_language.h:233:34: note:     'virtual MultiplayerAPI::RPCMode ScriptInstance::get_rset_mode_by_id(uint16_t) const'
  233 |  virtual MultiplayerAPI::RPCMode get_rset_mode_by_id(uint16_t p_id) const = 0;
      |                                  ^~~~~~~~~~~~~~~~~~~
modules/luascript/lua_script.cpp:91:34: error: 'acquire' is not a member of 'LuaScriptLanguage'
   91 |  auto guard = LuaScriptLanguage::acquire();
      |                                  ^~~~~~~
modules/luascript/lua_script.cpp: In member function 'virtual bool LuaScript::instance_has(const Object*) const':
modules/luascript/lua_script.cpp:113:34: error: 'acquire' is not a member of 'LuaScriptLanguage'
  113 |  auto guard = LuaScriptLanguage::acquire();
      |                                  ^~~~~~~
modules/luascript/lua_script.cpp: In member function 'virtual Error LuaScript::reload(bool)':
modules/luascript/lua_script.cpp:148:35: error: 'acquire' is not a member of 'LuaScriptLanguage'
  148 |   auto guard = LuaScriptLanguage::acquire();
      |                                   ^~~~~~~
modules/luascript/lua_script.cpp: In member function 'Error LuaScript::load_source_code(const String&)':
modules/luascript/lua_script.cpp:268:2: error: 'PoolVector' was not declared in this scope; did you mean 'Vector'?
  268 |  PoolVector<uint8_t> buffer;
      |  ^~~~~~~~~~
      |  Vector
modules/luascript/lua_script.cpp:268:20: error: expected primary-expression before '>' token
  268 |  PoolVector<uint8_t> buffer;
      |                    ^
modules/luascript/lua_script.cpp:268:22: error: 'buffer' was not declared in this scope; did you mean 'setbuffer'?
  268 |  PoolVector<uint8_t> buffer;
      |                      ^~~~~~
      |                      setbuffer
modules/luascript/lua_script.cpp:273:20: error: expected primary-expression before '>' token
  273 |  PoolVector<uint8_t>::Write w = buffer.write();
      |                    ^
modules/luascript/lua_script.cpp:273:23: error: '::Write' has not been declared; did you mean 'fwrite'?
  273 |  PoolVector<uint8_t>::Write w = buffer.write();
      |                       ^~~~~
      |                       fwrite
modules/luascript/lua_script.cpp:275:27: error: 'w' was not declared in this scope
  275 |  int r = file->get_buffer(w.ptr(), len);
      |                           ^
modules/luascript/lua_script.cpp: At global scope:
modules/luascript/lua_script.cpp:324:65: error: 'Variant::CallError' has not been declared
  324 | Variant LuaScript::_new(const Variant **p_args, int p_argcount, Variant::CallError &r_error) { // TODO
      |                                                                 ^~~~~~~
In file included from ./core/resource.h:34,
                 from ./core/input/input_event.h:36,
                 from ./core/os/main_loop.h:34,
                 from ./core/engine.h:35,
                 from ./core/os/os.h:34,
                 from modules/luascript/lua_script.cpp:20:
./core/class_db.h: In instantiation of 'static MethodBind* ClassDB::bind_vararg_method(uint32_t, StringName, M, const MethodInfo&, const Vector<Variant>&, bool) [with M = Variant (LuaScript::*)(const Variant**, int, int&); uint32_t = unsigned int]':
modules/luascript/lua_script.cpp:298:111:   required from here
./core/class_db.h:303:47: error: no matching function for call to 'create_vararg_method_bind(Variant (LuaScript::*&)(const Variant**, int, int&), const MethodInfo&, bool&)'
  303 |   MethodBind *bind = create_vararg_method_bind(p_method, p_info, p_return_nil_is_variant);
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./core/class_db.h:34,
                 from ./core/resource.h:34,
                 from ./core/input/input_event.h:36,
                 from ./core/os/main_loop.h:34,
                 from ./core/engine.h:35,
                 from ./core/os/os.h:34,
                 from modules/luascript/lua_script.cpp:20:
./core/method_bind.h:377:13: note: candidate: 'template<class T> MethodBind* create_vararg_method_bind(Variant (T::*)(const Variant**, int, Callable::CallError&), const MethodInfo&, bool)'
  377 | MethodBind *create_vararg_method_bind(Variant (T::*p_method)(const Variant **, int, Callable::CallError &), const MethodInfo &p_info, bool p_return_nil_is_variant) {
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~
./core/method_bind.h:377:13: note:   template argument deduction/substitution failed:
In file included from ./core/resource.h:34,
                 from ./core/input/input_event.h:36,
                 from ./core/os/main_loop.h:34,
                 from ./core/engine.h:35,
                 from ./core/os/os.h:34,
                 from modules/luascript/lua_script.cpp:20:
./core/class_db.h:303:47: note:   mismatched types 'Callable::CallError' and 'int'
  303 |   MethodBind *bind = create_vararg_method_bind(p_method, p_info, p_return_nil_is_variant);
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
modules/luascript/debug.cpp: In function 'void print_debug(String, ...)':
modules/luascript/debug.cpp:96:23: error: 'const class String' has no member named 'c_str'
   96 |  wcstombs(fmtbuf, fmt.c_str(), fmt.size());
      |                       ^~~~~
modules/luascript/debug.cpp:98:24: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'double' [-Wformat=]
   98 |  sprintf(tmpbuf, "%d %lu %2lu %2lu ",
      |                      ~~^
      |                        |
      |                        long unsigned int
      |                      %f
   99 |    OS::get_singleton()->get_process_id(),
  100 |    OS::get_singleton()->get_unix_time(),
      |    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                      |
      |                                      double
scons: *** [modules/luascript/lua_script.linuxbsd.tools.64.o] Error 1
scons: *** [modules/luascript/debug.linuxbsd.tools.64.o] Error 1
In file included from modules/luascript/editor/luascript_syntax_highlighter.cpp:20:
modules/luascript/editor/luascript_syntax_highlighter.h:33:29: error: 'HighlighterInfo' is not a member of 'TextEdit'
   33 |  virtual Map<int, TextEdit::HighlighterInfo> _get_line_syntax_highlighting(int p_line);
      |                             ^~~~~~~~~~~~~~~
modules/luascript/editor/luascript_syntax_highlighter.h:33:44: error: template argument 2 is invalid
   33 |  virtual Map<int, TextEdit::HighlighterInfo> _get_line_syntax_highlighting(int p_line);
      |                                            ^
modules/luascript/editor/luascript_syntax_highlighter.h:33:46: error: conflicting return type specified for 'virtual int LuaScriptSyntaxHighlighter::_get_line_syntax_highlighting(int)'
   33 |  virtual Map<int, TextEdit::HighlighterInfo> _get_line_syntax_highlighting(int p_line);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./scene/gui/text_edit.h:38,
                 from modules/luascript/editor/luascript_syntax_highlighter.h:22,
                 from modules/luascript/editor/luascript_syntax_highlighter.cpp:20:
./scene/resources/syntax_highlighter.h:53:21: note: overridden function is 'virtual Dictionary SyntaxHighlighter::_get_line_syntax_highlighting(int)'
   53 |  virtual Dictionary _get_line_syntax_highlighting(int p_line) { return Dictionary(); }
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
modules/luascript/editor/luascript_syntax_highlighter.cpp:43:20: error: 'HighlighterInfo' is not a member of 'TextEdit'
   43 | Map<int, TextEdit::HighlighterInfo> LuaScriptSyntaxHighlighter::_get_line_syntax_highlighting(int p_line) {
      |                    ^~~~~~~~~~~~~~~
modules/luascript/editor/luascript_syntax_highlighter.cpp:43:35: error: template argument 2 is invalid
   43 | Map<int, TextEdit::HighlighterInfo> LuaScriptSyntaxHighlighter::_get_line_syntax_highlighting(int p_line) {
      |                                   ^
modules/luascript/editor/luascript_syntax_highlighter.cpp: In member function 'virtual int LuaScriptSyntaxHighlighter::_get_line_syntax_highlighting(int)':
modules/luascript/editor/luascript_syntax_highlighter.cpp:44:23: error: 'text_editor' was not declared in this scope; did you mean 'text_edit'?
   44 |  const String &line = text_editor->get_line(p_line);
      |                       ^~~~~~~~~~~
      |                       text_edit
modules/luascript/editor/luascript_syntax_highlighter.cpp:47:21: error: 'HighlighterInfo' is not a member of 'TextEdit'
   47 |  Map<int, TextEdit::HighlighterInfo> lsh_map;
      |                     ^~~~~~~~~~~~~~~
modules/luascript/editor/luascript_syntax_highlighter.cpp:47:36: error: template argument 2 is invalid
   47 |  Map<int, TextEdit::HighlighterInfo> lsh_map;
      |                                    ^
scons: *** [modules/luascript/editor/luascript_syntax_highlighter.linuxbsd.tools.64.o] Error 1
scons: building terminated because of errors.```

Thank you for your help & keep up the good work !
Lufen34 commented 4 years ago

Nevermind It was my mistake. I downloaded by mistake the version 4 from the engine.