cztomczak / cef2go

Go lang bindings for the Chromium Embedded Framework (CEF)
https://groups.google.com/d/forum/cef2go
Other
882 stars 127 forks source link

Use CEF C++ API on Windows with SWIG and gc Go compiler #4

Open cztomczak opened 10 years ago

cztomczak commented 10 years ago

Currently SWIG doesn't work with Go on Windows. When building misc/swig/stdio, it results in error. Issue reported in the Go project:

https://code.google.com/p/go/issues/detail?id=7281

In comment #3 in that issue I've added some useful links to solutions/hacks that can fix the problem. But this is not official, so I think that cef2go should wait until it is patched in official SWIG and/or Go releases.

See the issue in the SWIG tracker:

"Go: SWIG doesn't work on Windows" https://github.com/swig/swig/issues/100

Go will support SWIG static linking in version 1.3 (targetted for June 2014), see the Go issue:

"cmd/go: build static swig wrapper" https://code.google.com/p/go/issues/detail?id=7156

cztomczak commented 10 years ago

Mixing SWIG and import "C" doesn't work at present in Go. If you are using SWIG, you can't use import "C". If you are using import "C", you can't use SWIG.

How can we workaround this problem? cef2go should definitely not put any restrictions on usage of import "C" in your application. Can this be fixed if we build cef2go as a shared library or something?

If this can't be fixed, we should at least provide two branches of cef2go: the current that uses C api (name the folder "cef2go_capi") and the new that uses swig C++ api (name the folder "cef2go_swig"). The C api would allow only for basic embedding. The more advanced features will appear only in SWIG version, because it is a lot easier to implement stuff using C++ api.