Generated bindings cause errors when compiling for il2cpp on OSX Standalone
philipcass opened this issue · comments
I'm not a compiler expert but there seems to be some issue with the codegen on OSX compiler.
PROJECT/Temp/StagingArea/Data/il2cppOutput/Bindings.h:650:11: error: exception specification of overriding function is more lax than base version
virtual ~String();
Looks like the defaulted destructor of Object
is implicitly noexcept
on that compiler:
https://github.com/jacksondunstan/UnityNativeScripting/blob/master/Unity/Assets/CppSource/NativeScript/Bindings.h#L588
Changing that to an empty function may help. I just did that in 00443ef, so please pull and try again.
That definitely helped but still getting some errors:
PROJECT/Temp/StagingArea/Data/il2cppOutput/Bindings.cpp:1378:5: error: delegating constructors are permitted only in C++11
: IFormattable(Plugin::InternalUse::Only, other.Handle)
^~~~~~~~~~~~
PROJECT/Temp/StagingArea/Data/il2cppOutput/Bindings.cpp:1459:5: error: delegating constructors are permitted only in C++11
: IConvertible(Plugin::InternalUse::Only, other.Handle)
^~~~~~~~~~~~
I'm also getting this but it might be due to my changes:
In file included from PROJECT/Temp/StagingArea/Data/il2cppOutput/Game.h:51:
/Users/philipcass/git_repos/timings-standbox/Temp/StagingArea/Data/il2cppOutput/DX11GPUFrameTimer.h:18:9: error: expected ';' at end of declaration list
SHARP_RUNTIME_DX11GPUFRAME_TIMER_DEFAULT_CONTENTS
^
PROJECT/Temp/StagingArea/Data/il2cppOutput/Bindings.cpp:918:41: error: union member 'Value' has a non-trivial copy constructor
SharpRuntime::BaseOpenGLGPUFrameTimer Value;
^
EDIT: I managed to repro these exact errors by setting the CXX_STANDARD property to 98
On further inspection this looks like it's down to Unity taking the c++ code and including it into the il2cpp - if I move out the code from the project and leave the precompiled libraries it compiles fine. Annoying, cause on iOS builds this works fine.
I'm gonna close this ticket as I don't think there's really a bug here
EDIT: It's also fixed in 2019...sorry for the run around, thanks for taking a look!