Skip to content

multi-os-engine/multi-os-engine

Repository files navigation

Multi-OS Engine

Overview

Multi-OS Engine provides a Java runtime and Java interfaces to iOS platform API to develop native iOS applications with native look and feel, native performance, and portability of common Java logic modules from your Android Apps. It comes fully integrated with Android Studio hosted on macOS or Windows and contains all the development tools needed to develop an iOS app and publish to the App Store.

Getting Started

Building from Source Code

Requirements

  • Apple macOS 10.14+
  • Minimum 8GB RAM

Install the 'repo' Tool

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

You may also install the repo using brew:

brew install repo

Get the Source Code

Mainline branch:

repo init -u https://github.com/multi-os-engine/manifest.git -b moe-master
repo sync

Note: if you want to get the source code from development branch with initial support of Windows and bitcode, switch to "moe-windows-bitcode" branch:

repo init -u https://github.com/multi-os-engine/manifest.git -b moe-windows-bitcode
repo sync

Installing Homebrew & Dependencies

Install brew from brew.sh, then you can install MOE's dependencies:

brew install autogen autoconf automake libtool pkg-config wget isl cloog cmake gpg ant maven mpfr libmpc repo premake texinfo

Building MinGW & LLVM

Building the complete SDK and related tools requires LLVM and MinGW. To build these execute the following:

cd <repo>/moe
./gradlew :prebuilts:mingw :prebuilts:llvm

This step only needs to be done once (or until MinGW or LLVM components/requirements are changed).

Setting a custom version

cd <repo>/moe/tools
sh set_version.sh <component> <version>  

Building Multi-OS Engine

SDK Publisher: creating a developer SDK:

cd <repo>/moe
./gradlew :tools:moe-sdk:devsdk

SDK Publisher: building and publishing a SDK to Maven local:

cd <repo>/moe
./gradlew :tools:moe-sdk:publishToMavenLocal

Gradle Plugin: building and publishing the Gradle plugin to Maven local:

cd <repo>/moe
./gradlew :tools:moe-gradle:publishToMavenLocal

IDEA Plugin: building the IDEA plugin:

cd <repo>/moe/tools/master
./gradlew :moe.plugin.idea:build