Skip to content
Joshua Granick edited this page Jan 1, 2014 · 2 revisions

In order to target Linux, you may use either C++ or Neko. Native C++ should result in the best performance, and is recommended when distributing to users. Neko can be valuable, because it leverages the same native layer for Lime, but the application code is compiled instantly for the Neko VM. This should mean almost instant compile-times, and being a VM, sometimes a logical error in your project can be more easily found when testing there.

You can use "linux" as the target when using "lime" commands:

lime test linux

This will use C++ by default. You can target Neko using the "-neko" flag:

lime test linux -neko

Theoretically, cross-desktop builds (such as Linux from Windows) could be supported using Neko, but currently there are a few small issues that prevent this from fully working.

Lime supports both 32- and 64-bit builds for Linux, and will use the host architecture of your system by default. If you have "multilib" support installed, you can also compile 32-bit applications from a 64-bit host system. You can control the architecture used (rather than assuming the default) by using "-32" or "-64" flags:

lime test linux -32
lime test linux -64

Linux applications should work properly when run with the current working directory set as the application folder. In many cases, this is how applications will be run. However, if the application is run with a different working directory, relative paths to assets may fail. After we determine the best cross-distribution way to determine the calling path of the executable, we plan to set the working directory (as we do on other desktop platforms).

Lime has been tested an all major Linux/Unix distributions. By building with an older version (such as Ubuntu 10.10) we can avoid most incompatibilities that occur by linking newer system libraries. The usual culprit is glibc, which is updated more often in distributions such as Ubuntu than something like Debian or CentOS.

Applications should be compatible for packaging in Steam, or the Ubuntu Marketplace. You should be generate RPM or DEB packages yourself, but in the future we would like to support this automatically in the Lime tools.

Usually you only need g++ in order to compile and use Lime, but if you are rebuilding Lime from the source, you may need the development libraries for libgl and libglu, as well as multilib libraries for gcc or g++ to rebuild both 32- and 64-bit binaries.

The windowing is handled by SDL 2, so issues (or improvements) in access to the platform, in event input or unique elements of the platform may flow from there.

Clone this wiki locally