Building


Patience is required: Currently SquirrelJME is in active development and although it can run and produce binaries, there are limitations to consider. Currently only a limited set of programs may be ran on SquirrelJME.


SquirrelJME requires the following before it can be built:

Notes on Running

SquirrelJME uses a simplified error system which starts with a two capital letter prefix followed by two digits and letters.

Installing Java

SquirrelJME requires a Java 8 virtual machine in order to build itself. Gradle is used however it is available through Gradle Wrapper.

Common Linux Distributions

If you use a common and popular Linux distribution it likely has a JDK available.

AdoptOpenJDK

AdoptOpenJDK is the recommended way to build and setup SquirrelJME as it has long-term support and is easy to setup. You will need at least a Java 8 variant of AdoptOpenJDK.

Oracle's JDK

Oracle's JDK supports modern systems and can be downloaded from:

Ensure that you download and install the JDK.

If running on ReactOS/Windows/Wine, make sure that the PATH environment variables refers to the JDK's binary directory:

IntelliJ IDEA (Optional)

SquirrelJME is developed on IntelliJ Ultimate, however Community Edition may still be used. This makes development easier and more integrated along with whatever code you write or contribute will match the style that is set in SquirrelJME.

Installing C++ Compiler

Common Linux Distributions

For the C++ Compiler which is needed for testing:

Windows

For Gradle to detect a C++ compiler, it needs either Microsoft Visual Studio or a GCC installation via Cygwin.

More information is located at https://docs.gradle.org/current/userguide/building_cpp_projects.html#windows.

Mac OS X

You must install XCode, more information is here:

Build Enviromment

The main interaction with the SquirrelJME build environment is with Gradle which manages anything related to building and testing. All builds are performed through Gradle Wrapper which is used as the following:

Gradle uses tasks of which multiple may be specified accordingly.

RetroArch

Building for RetroArch uses the makefilelibretro makefile. As such building SquirrelJME for your current system involves using the alternative makefile.

Docker

In the root directory, execute the command:

Development Virtual Machines

For development purposes you may use the virtual machines provided by the SquirrelJME run-time. Modules within SquirrelJME have tasks which allow them to be ran accordingly.