urho
urho copied to clipboard
Linux support?
UrhoSharp is a lightweight Game Engine suitable for using with C# and F# to create games that run on Android, iOS, Mac, Windows and Unix.
Isn't GNU/Linux supported? It says both Mac and Unix, but I cannot see anything in the Makefile or other places that reference GNU/Linux. It doesn't seem to be referencing other Unices than Mac either. Am I missing something, or is the documentation wrong? And if the latter, is GNU/Linux support planned?
Unfortunately it's not supported yet, but it should not be that difficult to add.
The problem with Linux is always "Which Linux?", given all the different distributions and ABIs.
To properly handle this, we have requested features in NuGet that do not exist today. I suggest we revisit this topic when the NuGet team implements that support,.
Hi, I'm interested in running Urho on a Linux Desktop.
What would it take to just say, just clone master and make UrhoSharp run on Ubuntu?
It should not take much, you just need to build the native libraries.
See MakeMac file for details on how this is done, a similar setup is needed.
I've been trying to do a little work on this, but I've having some issues trying to figure out how to "translate," the OS X stuff to linux (e.g. xcodebuild commands, dylib, -framework etc). Do you have a resource I could look at? I'm not too familiar with the OS X development environment outside of running clang & make in a terminal window.
So at this moment UrhoSharp will not work with MonoDevelop? Even headless deployments (for network game servers only) would be great. I guess it would work with plain Urho3d linux builds in c++ or angelscript, but keeping c# syntax would be nice. (Also,networking sample 17_SceneReplication is suspiciously missing, hopefully it's not due to technical limitations. :)
The issue is that someone needs to build the native libraries that go with UrhoSharp, it has nothing to do with Mono or MonoDevelop. We just do not have the Linux binaries built.
We could provide those, but we depend on the NuGet team to address the fundamental problem with NuGet:
https://github.com/NuGet/Home/issues/3114
I've been trying to go though on Ubuntu Linux and get a build working. I've started with the OS X build steps. I'm right now at make PchMac and the build is failing with this error:
Bindings/Native/all-urho.cpp:1:10: fatal error: 'stdint.h' file not found
#include <stdint.h>
^
1 error generated.
Makefile:73: recipe for target 'PchMac' failed
I'm a little lost since stdint.h should be a standard C include.
@define-private-public did you do xcode-select --install then try some simple app like git so you trigger the license acceptance?
@Therzok
I'm trying to run through the build steps on Ubuntu so I can get UrhoSharp working on a Linux system. xcode-select wouldn't be found on one. @migueldeicaza told me to look through the Mac build instructions as a starting point.
~~Alright, I was able to get past the stdint.h issue. For the PchMac instruction in Makefile, I had to add -stdlib=libstdc++ after the -cc1 flag.~~
False alarm, I accidentally built the Android targets instead of PchMac...
I think the issue revolves around that -cc1 flag & PCH. I found something in the clang FAQ about this:
http://clang.llvm.org/docs/FAQ.html#i-get-errors-about-some-headers-being-missing-stddef-h-stdarg-h
I altered the Makefile to download clang 3.7.0 for ubuntu 14.04, and it was successfully "installed," in my UrhoSharp repo copy. When I added an -Iclang+llvm-3.7.0-x86_64-linux-gnu-ubuntu-14.04/lib/clang/3.7.0/include to the PchMac target the stdint.h issue when away, but then I got cstddef not found error.
The clang documentation (for builtin includes) says it should be relative to the clang executable: http://clang.llvm.org/docs/LibTooling.html#builtin-includes
Does anyone know what might be a better fix than -Iing everything?
I finish the first step, but find the second step make SharpieBinder is not possible to finish. There is no source code for libclang-mono, and I don't know whether the other dll (sharpie.bind.dll) is platform dependent or not.
Whether they will provide the source code in the future so we can try to build under linux?
I was able to get urho-mono.so to build with
https://gist.github.com/aktowns/3f8f44560efd16006f96dc30ff518203
and seems to be running okay by nuget'ing UrhoSharp and copying the shared lib over
Wow, great news, @aktowns! @cometyang you don't need the SharpieBinder to get UrhoSharp game running on Linux. It is needed only for updating C# bindings and currently works only on macOS.
It's been a while since I've checked into this. What's the status of UrhoSharp on Linux at the moment?
It is needed only for updating C# bindings and currently works only on macOS.
@EgorBo whats exactly needed to get binding generator run on other platforms. If say there were people interested in doing that where should we start looking?
@EgorBo I'm also interested in the answer to @rokups question. @rokups if I understand correctly objectivesharpie is an objectiveC binder that does provide C++ binding as a secondary feature or something, so I guess the internals aren't easily portable. Could be wrong here though.
The documentation and README speak not about Linux support, while it is practically available?
@ShalokShalom last I checked SharpieBinder wouldn't work out of the box on any platform but macOS.
Just pushed to master the steps @aktowns suggested (with a few changes) - works fine on my Ubuntu and generates a libmono-urho.so SharpieBinder currently supports only macOS but I'll try to compile libclang-mono on linux to get it working on Linux and Windows via WSL
@EgorBo that's great! :smiley: