Open ibilon opened 7 years ago
Yes, native externs are not going to work in cppia, so I'm going to need to find some kind of solution. I could potentially export the integers somehow. One problem is that the enums are "unreflective" so cppia could have trouble setting or interacting with them. I think I will need to make extern enums first-class citizens.
On Thu, Sep 21, 2017 at 5:51 PM, Valentin Lemière notifications@github.com wrote:
Trying to use one from cppia results in an error like:
./host/Host script.cppia in Script::0x7fffd27d7cb0 GetFieldByName at :0 main Could not link static _Main.EImpl::N1 (3 https://maps.google.com/?q=N1+(3&entry=gmail&source=g) Error : Bad link
n.hpp
pragma once
enum N { N1 = 7, N2 = -1 };
Host.hx
@:enum @:unreflective extern abstract E (EImpl) { @:native("N1") var E1; @:native("N2") var E2; }
@:include("./n.hpp") @:unreflective @:native("N") extern class EImpl {}
class Host { public static function main () { trace(E.E1); trace(E.E2); } }
Script.hx
class Script { public static function main () { Host.main(); trace(Host.E.E1); trace(Host.E.E2); } }
Build the host haxe -main cpp.cppia.Host -cpp host Host -D scriptable, the script haxe -main Script -cppia script.cppia and run ./host/Host script.cppia. Using -jit doesn't change anything.
Sorry for the multi file example, couldn't figure out how to reduce to a single file.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/HaxeFoundation/hxcpp/issues/639, or mute the thread https://github.com/notifications/unsubscribe-auth/ABlp1gpjGmViKqYJjBbrLR153ICN-XU7ks5skjGYgaJpZM4PfElW .
I could try and remove the @:unreflective
, but I remember having a lot of can't convert Dynamic* to nativeType
.
In this sample it's fine without it (doesn't resolve the cppia error ofc).
Trying to use one from cppia results in an error like:
n.hpp
Host.hx
Script.hx
Build the host
haxe -main cpp.cppia.Host -cpp host Host -D scriptable
, the scripthaxe -main Script -cppia script.cppia
and run./host/Host script.cppia
. Using-jit
doesn't change anything.It can't access
_Main.E_Impl_::N1
since it's not in the host.Sorry for the multi file example, couldn't figure out how to reduce to a single file.