Skip to content

thenick775/Quorum_iOS_Transpiliation

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

Quorum iOS Transpiliation

Senior Project, Fall 2020, University of Nevada Las Vegas

The goal of this project was to re-integrate the RoboVM compiler into the Quorum toolchain, which previously became closed source. I used the open source fork available from MobiVM to accomplish this, where this was used to transpile packaged Quorum applications to iOS binaries.

All build commands were encapsulated in the RoboVM gradle plugin, allowing access to the RoboVM compiler and exposing the necessary gradle build tasks in the open source fork maintained by MobiVM.

Run Instructions:

-Navigate to the Quorum sample project, located at /Quorum_iOS_Transpiliation/Application_Variants/Physics3DApplicationSoundFromFile

-Navigate to the directory containing the generated iOS project, /Quorum_iOS_Transpiliation/Application_Variants/Physics3DApplicationSoundFromFile/Run/Mac/

-Run the gradle command to launch this project on a connected device:

    For a simulator run:
        ./gradlew ios:launchIPhoneSimulator --info --stacktrace
    For a connected physical device run the following command:
        ./gradlew ios:launchIOSDevice --info --stacktrace  
        
    Note: This requires a separate xcode project for code signing, described further in the wiki

In this sample project, the native C/C++/Objective-C code is already generated in the form of a static archive liballnatives.a. This archive contains code used by Quorum applications to interface natively with iOS devices, comprising of the libGameEngineCPlugins.a, libfreetype.a, and libObjectAL.a static archive files previously used.

If using different iOS versions or a different simulator this file may need to be recompiled with cmake and xcode, further instructions are available in the native generation project readme, and in the wiki

The gradle wrapper should automatically download the specified gradle version, and once configured, RoboVM will begin to compile java classes from MobiVM, the Java Standard Library, and from our Quorum source code (jdk 1.8 java bytecode).

After this process is finished, the native code described above is linked into the Quorum Application .app executable using clang, and all resources specified in the generated robovm.xml file are copied as well.

After this has finished a simulator should launch if specified, and then the app is installed and launched on a connected device (simulator or physical).

Modified Skybox Physics3D Sample Template Graphics2D Sample Template Live iPhone Capture

In depth information and a breakdown of project assembly is located in the wiki