aseba-community / aseba

Aseba is a set of tools which allow beginners to program robots easily and efficiently. To contact us, please open an issue.
http://aseba.wikidot.com
GNU Lesser General Public License v3.0
49 stars 62 forks source link

MSVC Support #828

Open cor3ntin opened 6 years ago

cor3ntin commented 6 years ago

We should probably make Aseba ( and dashel, enki, etc ) - compatible with the Microsoft toolchain, along mingw64

There are multiple reasons

The biggest effort is that dynamically linked symbols must be explicitly exported, though we could do hat on all platforms too. Otherwise there is probably not much work to do.

CI wise, we would need to install either clang-cl + lld-link or MSVC ( or both !). we would off course also need to install the windows sdk which we would have to think about in term of working with ansible but it's not too much of an issue either. Cross compilation from linux is also possible ( but apparently we don't need it ).

I have set up some cross compilation toolchain files for my own use, I can share them if you want ( they do however not belong on github )

stephanemagnenat commented 6 years ago

Dashel should compile on msvc out of the box. For information Tero from Qt Company managed to compile Thymio Adventure with msvc.

http://stephane.magnenat.net

stephanemagnenat commented 6 years ago

and yes, more platform support is a good thing, also for debugging Windows problems.

http://stephane.magnenat.net

cor3ntin commented 6 years ago

@stephanemagnenat dashel builds indeed ( with some warnings ) - but won't link because it does not export its symbols. I'll try to do a full static build of aseba later today to have a better understanding of the amount of work required.

cor3ntin commented 6 years ago

Some work done here. No shared library support and I haven't tested the whole project yet https://github.com/aseba-community/aseba/pull/798/commits/9b0cf4cc78186a999cdaa908939ec161327bd4f2