godot-git-plugin icon indicating copy to clipboard operation
godot-git-plugin copied to clipboard

Port from GDNative to GDExtension for Godot 4.x

Open twaritwaikar opened this issue 3 years ago • 2 comments

This also renames GitAPI to GitPlugin. There is no change in functionality from v2.x as of now.

This PR is updated in parallel with https://github.com/godotengine/godot/pull/62157

twaritwaikar avatar Jun 17 '22 19:06 twaritwaikar

Right now this throws compilation errors using the extensions API generated from https://github.com/godotengine/godot/pull/62157

Compilation logs
$ scons p=windows target=debug -j8
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
cl /Fogodot-git-plugin\src\git_plugin.obj /c godot-git-plugin\src\git_plugin.cpp /TP /nologo -DWIN32 -D_WIN32 -D_WINDOWS -W3 -GR -D_CRT_SECURE_NO_WARNINGS /std:c++17 -EHsc -D_DEBUG -MDd /DEBUG /Igodot-git-plugin /Igodot-git-plugin\src /Igodot-cpp\godot-headers /Igodot-cpp\include /Igodot-cpp\gen\include /Ithirdparty\git2\libgit2\include /Z7
git_plugin.cpp
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/variant/color.hpp(162): warning C4244: 'initializing': conversion from 'double' to 'float', possible loss of data
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/variant/color.hpp(178): warning C4244: 'argument': conversion from 'double' to 'float', possible loss of data
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/variant/color.hpp(177): warning C4244: 'argument': conversion from 'double' to 'float', possible loss of data
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/variant/color.hpp(176): warning C4244: 'argument': conversion from 'double' to 'float', possible loss of data
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/variant/color.hpp(207): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/variant/color.hpp(209): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/variant/color.hpp(211): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/variant/color.hpp(213): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
cl /Fothirdparty\git2\libgit2\src\repository.obj /c thirdparty\git2\libgit2\src\repository.c /nologo /DGIT_THREADS /DGIT_SSH /DGIT_SSH_MEMORY_CREDENTIALS /DLIBGIT2_NO_FEATURES_H /DGIT_SHA1_COLLISIONDETECT /DGIT_HTTPS /DSRC_UTIL_H_ /DGIT_REGEX_BUILTIN /Ithirdparty\git2\libgit2\include /Ithirdparty\git2\libgit2\src /Ithirdparty\git2\libgit2\deps\http-parser /Ithirdparty\git2\libgit2\deps\pcre /Ithirdparty\git2\libgit2\deps\zlib /Ithirdparty\git2\libgit2\deps\ntlmclient /Ithirdparty\ssh2\libssh2\include
cl /Fothirdparty\git2\libgit2\src\reset.obj /c thirdparty\git2\libgit2\src\reset.c /nologo /DGIT_THREADS /DGIT_SSH /DGIT_SSH_MEMORY_CREDENTIALS /DLIBGIT2_NO_FEATURES_H /DGIT_SHA1_COLLISIONDETECT /DGIT_HTTPS /DSRC_UTIL_H_ /DGIT_REGEX_BUILTIN /Ithirdparty\git2\libgit2\include /Ithirdparty\git2\libgit2\src /Ithirdparty\git2\libgit2\deps\http-parser /Ithirdparty\git2\libgit2\deps\pcre /Ithirdparty\git2\libgit2\deps\zlib /Ithirdparty\git2\libgit2\deps\ntlmclient /Ithirdparty\ssh2\libssh2\include
cl /Fothirdparty\git2\libgit2\src\revert.obj /c thirdparty\git2\libgit2\src\revert.c /nologo /DGIT_THREADS /DGIT_SSH /DGIT_SSH_MEMORY_CREDENTIALS /DLIBGIT2_NO_FEATURES_H /DGIT_SHA1_COLLISIONDETECT /DGIT_HTTPS /DSRC_UTIL_H_ /DGIT_REGEX_BUILTIN /Ithirdparty\git2\libgit2\include /Ithirdparty\git2\libgit2\src /Ithirdparty\git2\libgit2\deps\http-parser /Ithirdparty\git2\libgit2\deps\pcre /Ithirdparty\git2\libgit2\deps\zlib /Ithirdparty\git2\libgit2\deps\ntlmclient /Ithirdparty\ssh2\libssh2\include
repository.c
cl /Fothirdparty\git2\libgit2\src\revparse.obj /c thirdparty\git2\libgit2\src\revparse.c /nologo /DGIT_THREADS /DGIT_SSH /DGIT_SSH_MEMORY_CREDENTIALS /DLIBGIT2_NO_FEATURES_H /DGIT_SHA1_COLLISIONDETECT /DGIT_HTTPS /DSRC_UTIL_H_ /DGIT_REGEX_BUILTIN /Ithirdparty\git2\libgit2\include /Ithirdparty\git2\libgit2\src /Ithirdparty\git2\libgit2\deps\http-parser /Ithirdparty\git2\libgit2\deps\pcre /Ithirdparty\git2\libgit2\deps\zlib /Ithirdparty\git2\libgit2\deps\ntlmclient /Ithirdparty\ssh2\libssh2\include
reset.c
cl /Fothirdparty\git2\libgit2\src\revwalk.obj /c thirdparty\git2\libgit2\src\revwalk.c /nologo /DGIT_THREADS /DGIT_SSH /DGIT_SSH_MEMORY_CREDENTIALS /DLIBGIT2_NO_FEATURES_H /DGIT_SHA1_COLLISIONDETECT /DGIT_HTTPS /DSRC_UTIL_H_ /DGIT_REGEX_BUILTIN /Ithirdparty\git2\libgit2\include /Ithirdparty\git2\libgit2\src /Ithirdparty\git2\libgit2\deps\http-parser /Ithirdparty\git2\libgit2\deps\pcre /Ithirdparty\git2\libgit2\deps\zlib /Ithirdparty\git2\libgit2\deps\ntlmclient /Ithirdparty\ssh2\libssh2\include
cl /Fothirdparty\git2\libgit2\src\runtime.obj /c thirdparty\git2\libgit2\src\runtime.c /nologo /DGIT_THREADS /DGIT_SSH /DGIT_SSH_MEMORY_CREDENTIALS /DLIBGIT2_NO_FEATURES_H /DGIT_SHA1_COLLISIONDETECT /DGIT_HTTPS /DSRC_UTIL_H_ /DGIT_REGEX_BUILTIN /Ithirdparty\git2\libgit2\include /Ithirdparty\git2\libgit2\src /Ithirdparty\git2\libgit2\deps\http-parser /Ithirdparty\git2\libgit2\deps\pcre /Ithirdparty\git2\libgit2\deps\zlib /Ithirdparty\git2\libgit2\deps\ntlmclient /Ithirdparty\ssh2\libssh2\include
revert.c
cl /Fothirdparty\git2\libgit2\src\signature.obj /c thirdparty\git2\libgit2\src\signature.c /nologo /DGIT_THREADS /DGIT_SSH /DGIT_SSH_MEMORY_CREDENTIALS /DLIBGIT2_NO_FEATURES_H /DGIT_SHA1_COLLISIONDETECT /DGIT_HTTPS /DSRC_UTIL_H_ /DGIT_REGEX_BUILTIN /Ithirdparty\git2\libgit2\include /Ithirdparty\git2\libgit2\src /Ithirdparty\git2\libgit2\deps\http-parser /Ithirdparty\git2\libgit2\deps\pcre /Ithirdparty\git2\libgit2\deps\zlib /Ithirdparty\git2\libgit2\deps\ntlmclient /Ithirdparty\ssh2\libssh2\include
revparse.c
revwalk.c
signature.c
runtime.c
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(331): error C2440: 'reinterpret_cast': cannot convert from 'void (__cdecl GitPlugin::* )(const godot::String &)' to 'void (__cdecl godot::___UnexistingClass::* )(const godot::String &)'
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(331): note: Pointers to members have different representations; cannot cast between them
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/class_db.hpp(183): note: see reference to function template instantiation 'godot::MethodBind *godot::create_method_bind<GitPlugin,const godot::String&>(void (__cdecl GitPlugin::* )(const godot::String &))' being compiled
godot-git-plugin\src\git_plugin.cpp(29): note: see reference to function template instantiation 'godot::MethodBind *godot::ClassDB::bind_method<godot::MethodDefinition,void(__cdecl GitPlugin::* )(const godot::String &),>(N,M)' being compiled
        with
        [
            N=godot::MethodDefinition,
            M=void (__cdecl GitPlugin::* )(const godot::String &)
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(331): error C2512: 'godot::MethodBindT<const godot::String &>::MethodBindT': no appropriate default constructor available
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(331): error C2672: 'godot::_post_initialize': no matching overloaded function found
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): error C2440: 'reinterpret_cast': cannot convert from 'R (__cdecl GitPlugin::* )(void)' to 'R (__cdecl godot::___UnexistingClass::* )(void)'
        with
        [
            R=godot::Array
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): note: Pointers to members have different representations; cannot cast between them
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/class_db.hpp(183): note: see reference to function template instantiation 'godot::MethodBind *godot::create_method_bind<GitPlugin,godot::Array,>(R (__cdecl GitPlugin::* )(void))' being compiled
        with
        [
            R=godot::Array
        ]
godot-git-plugin\src\git_plugin.cpp(30): note: see reference to function template instantiation 'godot::MethodBind *godot::ClassDB::bind_method<godot::MethodDefinition,godot::Array(__cdecl GitPlugin::* )(void),>(N,M)' being compiled
        with
        [
            N=godot::MethodDefinition,
            M=godot::Array (__cdecl GitPlugin::* )(void)
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): error C2512: 'godot::MethodBindTR<R>::MethodBindTR': no appropriate default constructor available
        with
        [
            R=godot::Array
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): error C2672: 'godot::_post_initialize': no matching overloaded function found
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): error C2440: 'reinterpret_cast': cannot convert from 'R (__cdecl GitPlugin::* )(const godot::String &,int64_t)' to 'R (__cdecl godot::___UnexistingClass::* )(const godot::String &,int64_t)'
        with
        [
            R=godot::Array
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): note: Pointers to members have different representations; cannot cast between them
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/class_db.hpp(183): note: see reference to function template instantiation 'godot::MethodBind *godot::create_method_bind<GitPlugin,godot::Array,const godot::String&,int64_t>(R (__cdecl GitPlugin::* )(const godot::String &,int64_t))' being compiled
        with
        [
            R=godot::Array
        ]
godot-git-plugin\src\git_plugin.cpp(32): note: see reference to function template instantiation 'godot::MethodBind *godot::ClassDB::bind_method<godot::MethodDefinition,godot::Array(__cdecl GitPlugin::* )(const godot::String &,int64_t),>(N,M)' being compiled
        with
        [
            N=godot::MethodDefinition,
            M=godot::Array (__cdecl GitPlugin::* )(const godot::String &,int64_t)
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): error C2512: 'godot::MethodBindTR<R,const godot::String &,int64_t>::MethodBindTR': no appropriate default constructor available
        with
        [
            R=godot::Array
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): error C2440: 'reinterpret_cast': cannot convert from 'R (__cdecl GitPlugin::* )(void)' to 'R (__cdecl godot::___UnexistingClass::* )(void)'
        with
        [
            R=godot::String
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): note: Pointers to members have different representations; cannot cast between them
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/class_db.hpp(183): note: see reference to function template instantiation 'godot::MethodBind *godot::create_method_bind<GitPlugin,godot::String,>(R (__cdecl GitPlugin::* )(void))' being compiled
        with
        [
            R=godot::String
        ]
godot-git-plugin\src\git_plugin.cpp(33): note: see reference to function template instantiation 'godot::MethodBind *godot::ClassDB::bind_method<godot::MethodDefinition,godot::String(__cdecl GitPlugin::* )(void),>(N,M)' being compiled
        with
        [
            N=godot::MethodDefinition,
            M=godot::String (__cdecl GitPlugin::* )(void)
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): error C2512: 'godot::MethodBindTR<R>::MethodBindTR': no appropriate default constructor available
        with
        [
            R=godot::String
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): error C2440: 'reinterpret_cast': cannot convert from 'R (__cdecl GitPlugin::* )(const godot::String &)' to 'R (__cdecl godot::___UnexistingClass::* )(const godot::String &)'
        with
        [
            R=bool
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): note: Pointers to members have different representations; cannot cast between them
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/class_db.hpp(183): note: see reference to function template instantiation 'godot::MethodBind *godot::create_method_bind<GitPlugin,bool,const godot::String&>(R (__cdecl GitPlugin::* )(const godot::String &))' being compiled
        with
        [
            R=bool
        ]
godot-git-plugin\src\git_plugin.cpp(34): note: see reference to function template instantiation 'godot::MethodBind *godot::ClassDB::bind_method<godot::MethodDefinition,bool(__cdecl GitPlugin::* )(const godot::String &),>(N,M)' being compiled
        with
        [
            N=godot::MethodDefinition,
            M=bool (__cdecl GitPlugin::* )(const godot::String &)
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): error C2512: 'godot::MethodBindTR<R,const godot::String &>::MethodBindTR': no appropriate default constructor available
        with
        [
            R=bool
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): error C2440: 'reinterpret_cast': cannot convert from 'R (__cdecl GitPlugin::* )(void)' to 'R (__cdecl godot::___UnexistingClass::* )(void)'
        with
        [
            R=bool
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): note: Pointers to members have different representations; cannot cast between them
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/class_db.hpp(183): note: see reference to function template instantiation 'godot::MethodBind *godot::create_method_bind<GitPlugin,bool,>(R (__cdecl GitPlugin::* )(void))' being compiled
        with
        [
            R=bool
        ]
godot-git-plugin\src\git_plugin.cpp(35): note: see reference to function template instantiation 'godot::MethodBind *godot::ClassDB::bind_method<godot::MethodDefinition,bool(__cdecl GitPlugin::* )(void),>(N,M)' being compiled
        with
        [
            N=godot::MethodDefinition,
            M=bool (__cdecl GitPlugin::* )(void)
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): error C2512: 'godot::MethodBindTR<R>::MethodBindTR': no appropriate default constructor available
        with
        [
            R=bool
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): error C2440: 'reinterpret_cast': cannot convert from 'R (__cdecl GitPlugin::* )(int64_t)' to 'R (__cdecl godot::___UnexistingClass::* )(int64_t)'
        with
        [
            R=godot::Array
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): note: Pointers to members have different representations; cannot cast between them
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/class_db.hpp(183): note: see reference to function template instantiation 'godot::MethodBind *godot::create_method_bind<GitPlugin,godot::Array,int64_t>(R (__cdecl GitPlugin::* )(int64_t))' being compiled
        with
        [
            R=godot::Array
        ]
godot-git-plugin\src\git_plugin.cpp(39): note: see reference to function template instantiation 'godot::MethodBind *godot::ClassDB::bind_method<godot::MethodDefinition,godot::Array(__cdecl GitPlugin::* )(int64_t),>(N,M)' being compiled
        with
        [
            N=godot::MethodDefinition,
            M=godot::Array (__cdecl GitPlugin::* )(int64_t)
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): error C2512: 'godot::MethodBindTR<R,int64_t>::MethodBindTR': no appropriate default constructor available
        with
        [
            R=godot::Array
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(331): error C2440: 'reinterpret_cast': cannot convert from 'void (__cdecl GitPlugin::* )(const godot::String &,const godot::String &)' to 'void (__cdecl godot::___UnexistingClass::* )(const godot::String &,const godot::String &)'
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(331): note: Pointers to members have different representations; cannot cast between them
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/class_db.hpp(183): note: see reference to function template instantiation 'godot::MethodBind *godot::create_method_bind<GitPlugin,const godot::String&,const godot::String&>(void (__cdecl GitPlugin::* )(const godot::String &,const godot::String &))' being compiled
godot-git-plugin\src\git_plugin.cpp(42): note: see reference to function template instantiation 'godot::MethodBind *godot::ClassDB::bind_method<godot::MethodDefinition,void(__cdecl GitPlugin::* )(const godot::String &,const godot::String &),>(N,M)' being compiled
        with
        [
            N=godot::MethodDefinition,
            M=void (__cdecl GitPlugin::* )(const godot::String &,const godot::String &)
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(331): error C2512: 'godot::MethodBindT<const godot::String &,const godot::String &>::MethodBindT': no appropriate default constructor available
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(331): error C2440: 'reinterpret_cast': cannot convert from 'void (__cdecl GitPlugin::* )(const godot::String &,bool)' to 'void (__cdecl godot::___UnexistingClass::* )(const godot::String &,bool)'
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(331): note: Pointers to members have different representations; cannot cast between them
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/class_db.hpp(183): note: see reference to function template instantiation 'godot::MethodBind *godot::create_method_bind<GitPlugin,const godot::String&,bool>(void (__cdecl GitPlugin::* )(const godot::String &,bool))' being compiled
godot-git-plugin\src\git_plugin.cpp(49): note: see reference to function template instantiation 'godot::MethodBind *godot::ClassDB::bind_method<godot::MethodDefinition,void(__cdecl GitPlugin::* )(const godot::String &,bool),>(N,M)' being compiled
        with
        [
            N=godot::MethodDefinition,
            M=void (__cdecl GitPlugin::* )(const godot::String &,bool)
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(331): error C2512: 'godot::MethodBindT<const godot::String &,bool>::MethodBindT': no appropriate default constructor available
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): error C2440: 'reinterpret_cast': cannot convert from 'R (__cdecl GitPlugin::* )(const godot::String &,const godot::String &)' to 'R (__cdecl godot::___UnexistingClass::* )(const godot::String &,const godot::String &)'
        with
        [
            R=godot::Array
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): note: Pointers to members have different representations; cannot cast between them
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/class_db.hpp(183): note: see reference to function template instantiation 'godot::MethodBind *godot::create_method_bind<GitPlugin,godot::Array,const godot::String&,const godot::String&>(R (__cdecl GitPlugin::* )(const godot::String &,const godot::String &))' being compiled
        with
        [
            R=godot::Array
        ]
godot-git-plugin\src\git_plugin.cpp(50): note: see reference to function template instantiation 'godot::MethodBind *godot::ClassDB::bind_method<godot::MethodDefinition,godot::Array(__cdecl GitPlugin::* )(const godot::String &,const godot::String &),>(N,M)' being compiled
        with
        [
            N=godot::MethodDefinition,
            M=godot::Array (__cdecl GitPlugin::* )(const godot::String &,const godot::String &)
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(490): error C2512: 'godot::MethodBindTR<R,const godot::String &,const godot::String &>::MethodBindTR': no appropriate default constructor available
        with
        [
            R=godot::Array
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(331): error C2440: 'reinterpret_cast': cannot convert from 'void (__cdecl GitPlugin::* )(const godot::String &,const godot::String &,const godot::String &,const godot::String &,const godot::String &)' to 'void (__cdecl godot::___UnexistingClass::* )(const godot::String &,const godot::String &,const godot::String &,const godot::String &,const godot::String &)'
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(331): note: Pointers to members have different representations; cannot cast between them
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/class_db.hpp(183): note: see reference to function template instantiation 'godot::MethodBind *godot::create_method_bind<GitPlugin,const godot::String&,const godot::String&,const godot::String&,const godot::String&,const godot::String&>(void (__cdecl GitPlugin::* )(const godot::String &,const godot::String &,const godot::String &,const godot::String &,const godot::String &))' being compiled
godot-git-plugin\src\git_plugin.cpp(51): note: see reference to function template instantiation 'godot::MethodBind *godot::ClassDB::bind_method<godot::MethodDefinition,void(__cdecl GitPlugin::* )(const godot::String &,const godot::String &,const godot::String &,const godot::String &,const godot::String &),>(N,M)' being compiled
        with
        [
            N=godot::MethodDefinition,
            M=void (__cdecl GitPlugin::* )(const godot::String &,const godot::String &,const godot::String &,const godot::String &,const godot::String &)
        ]
C:\Users\Twarit\Documents\Github\godotengine\godot-git-plugin\godot-cpp\include\godot_cpp/core/method_bind.hpp(331): error C2512: 'godot::MethodBindT<const godot::String &,const godot::String &,const godot::String &,const godot::String &,const godot::String &>::MethodBindT': no appropriate default constructor available
scons: *** [godot-git-plugin\src\git_plugin.obj] Error 2
scons: building terminated because of errors.

twaritwaikar avatar Jun 17 '22 19:06 twaritwaikar

Note: We also need to update api.json to have the 4.0 extension API JSON containing the API changes from https://github.com/godotengine/godot/pull/62157

twaritwaikar avatar Jun 17 '22 19:06 twaritwaikar

Reminder: Reflect the new lib changes in THRDPARTY.md

twaritwaikar avatar Aug 12 '22 21:08 twaritwaikar