SDK Build Environment for Qt Linux Platform - magic-lantern-studio/mle-documentation GitHub Wiki

This page discusses how to build the Magic Lantern SDK for Linux and MacOS platforms using the Qt and Open Inventor technologies.

Table of Contents

Dependencies

The Magic Lantern SDK for Qt depends on many of the core components utilized by the Linux Platform. Instructions for building these components may be found on the SDK Build Environment for Linux Platform wiki page. However, all of the components built on that page are not necessary for the Qt Platform (since we will be building the parts targeting Qt instead).

When setting up the build environment, follow the instructions for Coin v4.0.0. We will also be using the SoQt v1.6.0 library (instead of SoXt).

Build the following core components:

  • Build the Core util Library for Tools
    • A qmake project is also available under $MLE_HOME/Core/util/qt/mlutil/mlutil.pro
  • Build the Core math Libraries
    • A qmake project is also available under $MLE_HOME/Core/math/qt/mlmath/mlmath.pro
  • Build the Digital Workprint Libraries
    • A qmake project is also available under $MLE_HOME/DigitalWorkprint/lib/qt/DWP/DWP.pro
    • A qmake project for DwpChecker is available under $MLE_HOME/DigitalWorkprint/lib/qt/DwpChecker/DwpChecker.pro
  • Build the Digital Playprint Libraries
    • A qmake project is also available under $MLE_HOME/DigitalPlayprint/lib/qt/DPP/DPP.pro
  • Build the Digital Playprint Runtime Library for Tools
    • A qmake project is also available under $MLE_HOME/DigitalPlayprint/runtime/qt/playprint/playprint.pro
  • Build the Mastering Library and Tools
    • A qmake project is also available under $MLE_HOME/DigitalPlayprint/master/qt/DPPGen/DPPGen.pro
    • A qmake project is also available under $MLE_HOME/DigitalPlayprint/master/qt/gentables/gentables.pro
    • A qmake project is also available under $MLE_HOME/DigitalPlayprint/master/qt/gengroup/gengroup.pro
    • A qmake project is also available under $MLE_HOME/DigitalPlayprint/master/qt/genscene/genscene.pro
    • A qmake project is also available under $MLE_HOME/DigitalPlayprint/master/qt/genmedia/genmedia.pro
    • A qmake project is also available under $MLE_HOME/DigitalPlayprint/master/qt/genmakefile/genmakefile.pro
    • A qmake project is also available under $MLE_HOME/DigitalPlayprint/master/qt/genppscript/genppscript.pro
    • A qmake project is also available under $MLE_HOME/DigitalPlayprint/master/qt/gendpp/gendpp.pro
  • Build the SDK Properties
    • A qmake project is also available under $MLE_HOME/Parts/props/qt/mleprops/mleprops.pro

Details

After building the core Magic Lantern components above, the Qt-specific components can be built.

Build the Magic Lantern SDK Runtime Engine

There are three flavors of the SDK Runtime Engine for Qt:

  1. Rehearsal Target
  2. Runtime Target
  3. Inventor Target

Rehearsal Target Instructions

The Qt Rehearsal target is used to build the Runtime Engine utilized by a Rehearsal Player.

In the Qt Creator tool, select "File->Open File or Project..." to bring up a open file dialog. Browse to "$MLE_HOME/Core/mlert/qt/libmlert_rehearsal" and select the libmlert_rehearsal.pro project. Build the project by selecting the build icon in the lower-left-hand corner of Qt Creator.

The libmlert.so dynamic shared object will be built in the "$MLE_HOME/Core/mlert/qt/build-libmlert_rehearsal-Desktop-Debug" directory.

Command-line Build Instructions

The Rehearsal libmlert.so library may also be built using make. The Makefile.qt may be found in the "$MLE_HOME/build/linux" directory. Change to that directory and use the following command-line:

make -f Makefile.qt <build_target>

Makefile.qt offers the following build targets:

Build Target Description
libmlert_rehearsal Build libmlert.so
libmlert_rehearsal_clean Clean up the build artifacts
libmlert_rehearsal_install Install libmlert.so into $MLE_ROOT/lib/mle/qt/rehearsal
libmlert_rehearsal_uninstall Uninstall libmlert.so from $MLE_ROOT/lib/mle/qt/rehearsal

Runtime Target Instructions

The Qt Runtime target is used to build the Runtime Engine for mastered titles that utilize Digital Playprints.

In the Qt Creator tool, select "File->Open File or Project..." to bring up a open file dialog. Browse to "$MLE_HOME/Core/mlert/qt/libmlert_runtime" and select the libmlert_runtime.pro project. Build the project by selecting the build icon in the lower-left-hand corner of Qt Creator.

The libmlert.so dynamic shared object will be built in the "$MLE_HOME/Core/mlert/qt/build-libmlert_runtime-Desktop-Debug" directory.

Command-line Build Instructions

The Runtime libmlert.so library may also be built using make. The Makefile.qt may be found in the "$MLE_HOME/build/linux" directory. Change to that directory and use the following command-line:

make -f Makefile.qt <build_target>

Makefile.qt offers the following build targets:

Build Target Description
libmlert_runtime Build libmlert.so
libmlert_runtime_clean Clean up the build artifacts
libmlert_runtime_install Install libmlert.so into $MLE_ROOT/lib/mle/qt/runtime
libmlert_runtime_uninstall Uninstall libmlert.so from $MLE_ROOT/lib/mle/qt/runtime

Inventor Target Instructions

The Qt Inventor target is used to build the Runtime Engine that is used for Open Inventor titles. These components are used with titles that utilize Digital Workprints.

In the Qt Creator tool, select "File->Open File or Project..." to bring up a open file dialog. Browse to "$MLE_HOME/Core/mlert/qt/libmlert_inventor" and select the libmlert_inventor.pro project. Build the project by selecting the build icon in the lower-left-hand corner of Qt Creator.

The libmlert.so dynamic shared object will be built in the "$MLE_HOME/Core/mlert/qt/build-libmlert_inventor-Desktop-Debug" directory.

Command-line Build Instructions

The Inventor libmlert.so library may also be built using make. The Makefile.qt may be found in the "$MLE_HOME/build/linux" directory. Change to that directory and use the following command-line:

make -f Makefile.qt <build_target>

Makefile.qt offers the following build targets:

Build Target Description
libmlert_inventor Build libmlert.so
libmlert_inventor_clean Clean up the build artifacts
libmlert_inventor_install Install libmlert.so into $MLE_ROOT/lib/mle/qt/inventor
libmlert_inventor_uninstall Uninstall libmlert.so from $MLE_ROOT/lib/mle/qt/inventor

Build the Magic Lantern SDK Stages

These instructions build the Magic Lantern Stages for the Qt platform. There is one target for the Inventor components:

  • Qt Project: $MLE_HOME/Parts/stages/inventor/build/qt/ivstage_rehearsal/ivstage_rehearsal.pro

Build the ivstage_rehearsal Project

In the Qt Creator tool, select "File->Open File or Project..." to bring up a open file dialog. Browse to "$MLE_HOME/Parts/stages/inventor/build/qt/ivstage_rehearsal" and select the ivstage_rehearsal.pro project. Build the project by selecting the build icon in the lower-left-hand corner of Qt Creator.

The libMleIvStage.so dynamic shared object will be built in the "$MLE_HOME/Parts/stages/inventor/build/qt/build-ivstage_rehearsal-Desktop_Qt_5_15_0_GCC_64bit-Debug" directory.

Command-line Build Instructions

The libMleIvStage.so library may also be built using make. The Makefile.qt may be found in the "$MLE_HOME/build/linux" directory. Change to that directory and use the following command-line:

make -f Makefile.qt <build_target>

Makefile.qt offers the following build targets:

Build Target Description
ivstage_rehearsal Build libMleIvStage.so
ivstage_rehearsal_clean Clean up the build artifacts
ivastage_rehearsal_install Install libMleIvStage.so into $MLE_ROOT/lib/mle/qt/rehearsal
ivstage_rehearsal_uninstall Uninstall libMleIvStage.so from $MLE_ROOT/lib/mle/qt/rehearsal

Build the Magic Lantern SDK Sets

These instructions build the Magic Lantern Sets for the Qt platform. There is one target for the Inventor components:

  • Qt Project: $MLE_HOME/Parts/sets/inventor/build/qt/ivset_rehearsal/ivset_rehearsal.pro

Build the ivset_rehearsal Project

In the Qt Creator tool, select "File->Open File or Project..." to bring up a open file dialog. Browse to "$MLE_HOME/Parts/sets/inventor/build/qt/ivset_rehearsal" and select the ivset_rehearsal.pro project. Build the project by selecting the build icon in the lower-left-hand corner of Qt Creator.

The libMle2dSet.so and libMle3dSet.so dynamic shared objects will be built in the "$MLE_HOME/Parts/sets/inventor/build/qt/build-ivset_rehearsal-Desktop_Qt_5_15_0_GCC_64bit-Debug" directory.

Command-line Build Instructions

The set libraries may also be built using make. The Makefile.qt may be found in the "$MLE_HOME/build/linux" directory. Change to that directory and use the following command-line:

make -f Makefile.qt <build_target>

Makefile.qt offers the following build targets:

Build Target Description
ivset_rehearsal Build libMle2dSet.so and libMle3dSet.so
ivset_rehearsal_clean Clean up the build artifacts
ivset_rehearsal_install Install libMle2dSet.so and libMle3dSet.so into $MLE_ROOT/lib/mle/qt/rehearsal
ivset_rehearsal_uninstall Uninstall libMle2dSet.so and libMle3dSet.so from $MLE_ROOT/lib/mle/qt/rehearsal

Build the Magic Lantern SDK Media References

These instructions build the Magic Lantern Media References for the Qt platform. There is one target for the Inventor components:

  • Qt Project: $MLE_HOME/Parts/mediaref/inventor/build/qt/ivmref_rehearsal/ivmref_rehearsal.pro

Build the ivmref_rehearsal Project

In the Qt Creator tool, select "File->Open File or Project..." to bring up a open file dialog. Browse to "$MLE_HOME/Parts/mediaref/inventor/build/qt/ivmref_rehearsal" and select the ivmref_rehearsal.pro project. Build the project by selecting the build icon in the lower-left-hand corner of Qt Creator.

The libMle2dImageMediaRef.so, libMle3dColorMapMediaRef.so, libMle3dModelMediaRef.so.so and libMle3dTextureMapMediaRef.so.so dynamic shared objects will be built in the "$MLE_HOME/Parts/mediaref/inventor/build/qt/build-ivmref_rehearsal-Desktop_Qt_5_15_0_GCC_64bit-Debug" directory.

Command-line Build Instructions

The media reference libraries may also be built using make. The Makefile.qt may be found in the "$MLE_HOME/build/linux" directory. Change to that directory and use the following command-line:

make -f Makefile.qt <build_target>

Makefile.qt offers the following build targets:

Build Target Description
ivmref_rehearsal Build libMle2dImageMediaRef.so, libMle3dColorMapMediaRef.so, libMle3dModelMediaRef.so.so and libMle3dTextureMapMediaRef.so.so
ivmref_rehearsal_clean Clean up the build artifacts
ivmref_rehearsal_install Install libMle2dImageMediaRef.so, libMle3dColorMapMediaRef.so, libMle3dModelMediaRef.so.so and libMle3dTextureMapMediaRef.so.so into $MLE_ROOT/lib/mle/qt/rehearsal
ivmref_rehearsal_uninstall Uninstall libMle2dImageMediaRef.so, libMle3dColorMapMediaRef.so, libMle3dModelMediaRef.so.so and libMle3dTextureMapMediaRef.so.so from $MLE_ROOT/lib/mle/qt/rehearsal

Build the Magic Lantern SDK Roles

These instructions build the Magic Lantern Roles for the Qt platform. There is one target for the Inventor components:

  • Qt Project: $MLE_HOME/Parts/roles/inventor/build/qt/ivrole_rehearsal/ivrole_rehearsal.pro

Build the ivrole_rehearsal Project

In the Qt Creator tool, select "File->Open File or Project..." to bring up a open file dialog. Browse to "$MLE_HOME/Parts/roles/inventor/build/qt/ivrole_rehearsal" and select the ivrole_rehearsal.pro project. Build the project by selecting the build icon in the lower-left-hand corner of Qt Creator.

The libivroles.so, libMle2dImgRole.so, libMle2dRole.so and libMle3dRole.so dynamic shared objects will be built in the "$MLE_HOME/Parts/roles/inventor/build/qt/build-ivrole_rehearsal-Desktop_Qt_5_15_0_GCC_64bit-Debug" directory.

Command-line Build Instructions

The role libraries may also be built using make. The Makefile.qt may be found in the "$MLE_HOME/build/linux" directory. Change to that directory and use the following command-line:

make -f Makefile.qt <build_target>

Makefile.qt offers the following build targets:

Build Target Description
ivrole_rehearsal Build libivroles.so, libMle2dImgRole.so, libMle2dRole.so and libMle3drole.so
ivrole_rehearsal_clean Clean up the build artifacts
ivrole_rehearsal_install Install libivroles.so, libMle2dImgRole.so, libMle2dRole.so and libMle3drole.so into $MLE_ROOT/lib/mle/qt/rehearsal
ivrole_rehearsal_uninstall Uninstall libivroles.so, libMle2dImgRole.so, libMle2dRole.so and libMle3drole.so from $MLE_ROOT/lib/mle/qt/rehearsal

Build the Magic Lantern SDK Actors

These instructions build the Magic Lantern Actors for the Qt platform. There is one target for the Inventor components:

  • Qt Project: $MLE_HOME/Parts/actors/inventor/build/qt/ivactor_rehearsal/ivactor_rehearsal.pro

Build the ivactor_rehearsal Project

In the Qt Creator tool, select "File->Open File or Project..." to bring up a open file dialog. Browse to "$MLE_HOME/Parts/actors/inventor/build/qt/ivactor_rehearsal" and select the ivactor_rehearsal.pro project. Build the project by selecting the build icon in the lower-left-hand corner of Qt Creator.

The libMle2dImageActor.so, libMle3dCameraActor.so and libMleEscapeActor.so dynamic shared objects will be built in the "$MLE_HOME/Parts/actors/inventor/build/qt/build-ivactor_rehearsal-Desktop_Qt_5_15_0_GCC_64bit-Debug" directory.

Command-line Build Instructions

The actor libraries may also be built using make. The Makefile.qt may be found in the "$MLE_HOME/build/linux" directory. Change to that directory and use the following command-line:

make -f Makefile.qt <build_target>

Makefile.qt offers the following build targets:

Build Target Description
ivactor_rehearsal Build libMle2dImageActor.so, libMle3dCameraActor.so and libMleEscapeActor.so
ivactor_rehearsal_clean Clean up the build artifacts
ivactor_rehearsal_install Install libMle2dImageActor.so, libMle3dCameraActor.so and libMleEscapeActor.so into $MLE_ROOT/lib/mle/qt/rehearsal
ivactor_rehearsal_uninstall Uninstall libMle2dImageActor.so, libMle3dCameraActor.so and libMleEscapeActor.so from $MLE_ROOT/lib/mle/qt/rehearsal

Build the Magic Lantern SDK Loaders

These instructions build the Magic Lantern Loaders for the Qt platform. There is one target for the Inventor components:

  • Qt Project: $MLE_HOME/Parts/loaders/build/qt/rehearsal/libmlloaders_rehearsal/libmlloaders_rehearsal.pro

Build the libmlloaders_rehearsal Project

In the Qt Creator tool, select "File->Open File or Project..." to bring up a open file dialog. Browse to "$MLE_HOME/Parts/loaders/build/qt/rehearsal/libmlloaders_rehearsal" and select the libmlloaders_rehearsal.pro project. Build the project by selecting the build icon in the lower-left-hand corner of Qt Creator.

The library components that are built include

Library Directory Location Component
libmlloaders.a "$MLE_ROOT/lib/mle/qt/rehearsal" Magic Lantern Studio Loaders (Debug)
libmlloaders.so "$MLE_ROOT/lib/mle/qt/rehearsal" Magic Lantern Studio Loaders (Debug)

where MLE_ROOT is currently /opt/MagicLantern.

Build the Magic Lantern Authoring Toolkit

These instructions build the Magic Lantern Studio Authoring Toolkit, ATK, for the Qt platform. There is one target for the Inventor components:

  • Qt Project: "$MLE_HOME/ATK/rehearsal/build/qt/libmleatk_rehearsal"

Build the libmleatk_rehearsal Project

In the Qt Creator tool, select "File->Open File or Project..." to bring up a open file dialog. Browse to "$MLE_HOME/ATK/rehearsal/build/qt/libmleatk_rehearsal" and select the libmleatk_rehearsal.pro project. Build the project by selecting the build icon in the lower-left-hand corner of Qt Creator.

The library components that are built include

Library Directory Location Component
libmleatk.a "$MLE_ROOT/lib/mle/qt/rehearsal" Magic Lantern Studio ATK (Debug)
libmleatk.so "$MLE_ROOT/lib/mle/qt/rehearsal" Magic Lantern Studio ATK (Debug)

where MLE_ROOT is currently /opt/MagicLantern.