Building via Command Line
This section outlines the steps required to build the Magic Leap OpenXR Samples using the build.py
script from the command line. Before attempting to build the samples, please complete the environment setup steps in Environment Setup. The build script uses gradle to build each of the applications.
Prerequisites
To build the OpenXR samples, you need the following:
- Complete Environment Setup.
- MLSDK SDK Version
1.5.0
or higher. - The latest OpenXR Samples from the ML Hub.
The MLSDK must be installed into a path without spaces.
Limitations
Please note the following limitations:
- You cannot run the OpenXR samples using the Magic Leap Application Simulator.
- On Windows, long filenames can cause problems while building the OpenXR samples. We recommend installing the samples in a directory with a short path.
Building the Samples
You can either build all of the Magic Leap OpenXR Samples or individual ones. The steps outlined below assume that you wish to build all of the Magic Leap OpenXR samples. However, if you wish to build an individual sample application, append the --project
option followed by the project name you wish to build. For example, --project eye_gaze
.
- After downloading the Magic Leap OpenXR samples from the Magic Leap Hub, navigate to the OpenXR Samples directory.
- Windows
- MacOS
cd %USERPROFILE%\MagicLeap\mlsdk\<Version>\samples\openxr_samples\samples
cd $HOME/MagicLeap/mlsdk/<Version>/samples/openxr_samples/samples
- Verify that your environment variables are set properly before running the build script. See the Open XR Environment Setup Guide to learn more.
- Windows
- MacOS
echo %ANDROID_HOME%
echo %MLSDK%
echo %JAVA_HOME%
If you are using a command line interface such as Git Bash, you will need to use Unix-like syntax instead of the formatting used in the example above.
echo $ANDROID_HOME
echo $MLSDK
echo $JAVA_HOME
- Run the following command to build Debug variants of the OpenXR Samples for the the Magic Leap 2. See the Notes on Building section for more information about build options.
- Windows
- MacOS
python build.py --build device --config debug
- By default
build.py
assumes that Visual Studio 2019 version 17 is used. To select a different compiler, Visual Studio 2017 for example, add--msvc “Visual Studio 15 2017”
to the command line. - Currently, the SDK supports Visual Studio up to version 17, 2019. If you are switching compilers make sure to do a full clean build by using the
--clean
parameter as shown below:
python build.py --build device --config debug --msvc "Visual Studio 17 2019"
python3 build.py --build device --config debug --clean
Build Script Parameters
- All
build.py
scripts by default build for both device (aka ML2) and host (aka App Sim). If you only wish to build for host add--build host
. If you only wish to build for device add--build device
. - All
build.py
scripts by default build release config only. If you only wish to build debug config use--config debug
. If you wish to build both debug and release configs use--config release debug
. - Use
--project
followed by the project name if you wish to build an individual sample. For example,--project eye_gaze
. - When building apps make sure that the MLSDK environment variable is pointing to the SDK install location.
If you receive errors that the Vulkan_LIBRARY
is missing, make sure you have the Vulkan SDK installed on your machine.
Building Release APKs
To generate release variants of the sample applications, you will need to sign the APK using a keystore. This is a standard convention for Android based applications. Use the instructions below to learn how to create a keystore that is compatible with the build.py
script.
Generating Certificates for Signed Release APKs
For building signed release APKs, you need the following files in your MagicLeap\mlsdk\<VERSION>\samples\openxr_samples\scripts
directory:
keystore.properties
mlsdk.keystore
Your scripts directory won’t have these files, so you will need to create them yourself.
mlsdk.keystore
file can be generated using either:
- keytool command, supplied by Java JDK installation
keytool -genkey -v -keystore mlsdk.keystore -alias samples_key -keyalg RSA -keysize 2048 -validity 10000
- Android Studio in Build > Generate Signed Bundle / APK... > APK > Key store path > Create new...
- Using a file editor create an empty
keystore.properties
file that has the following structure:
storePassword=<mlsdk.keystore password>
keyPassword=<key password>
keyAlias=samples_key
storeFile=<path to mlsdk.keystore>