Skip to content
This repository has been archived by the owner on Dec 1, 2021. It is now read-only.

CompileFramework

Janis Sprenger edited this page Oct 1, 2021 · 3 revisions

Compling the MOSIM framework from scratch

In order to be able to deploy the framework, you need to have the following software installed on your machine:

  • git
  • meta git
  • Microsoft Visual Studio
  • Unity Version 2018.4.1f (soon to be deprecated)
  • Unity Version 2019.18.1f

In order to compile the framework and compile all components (Launcher, MMUs, Adapters, Services) from scratch, we recommend cloning the MOSIM meta git using

meta git clone https://github.com/Daimler/MOSIM.git

This will not only clone the main deploy functionality but the MOSIM Core, Services, Tools and Demos folder as well.

Deploy Scripts

You will find several deploy related scripts in the cloned mosim folder:

Script Description
deploy.bat Central script to deploy the whole framework.
clean.bat Remove all files generated during the deploy process.
deploy_variables.bat Sets the required environment variables pointing to Visual Studio and Unity
remove_double_mmus.bat Removes unnecessary MMUs from the generated Environment
update_framework_dlls.bat Copy generated DLLs to the respective sub-folders in Services and Demo

Deploy Procedure

In order to deploy, adjust the environment variables in the deploy_variables.bat script to the specifics of your system. The following environment variables are required:

Variable Description
DEVENV Path to the Visual Studio devenv program.
UNITY2018_4_1 Path to the Unity 2018.4.1f Unity.exe file.
UNITY2019_18_1 Path to the Unity 2019.18.1f Unity.exe file.
Note
I did check almost all components w.r.t. Unity 2019. Apparently this does work and we could already remove the dependency to Unity 2018.

After adjusting the paths according to your system, you can run the deploy.bat script in a cmd window (or usually by double-clicking the file). This script does not run with Powershell!

During the deployment process, several components are compiled and copied to the right location. There will be some output from the different programs, including green and red notifications over the success or failure of deploying different features.

After the deploy script is successfully terminated, you will find the generated MMI environment in build\Environment. We recommend running the build/deployScript.exe if this is the first auto-deployment. It will register all components with the windows firewall automatically but requires elevated (admin) rights.

Last but not least, you can start the framework by executing the launcher in build\Environment\Launcher\Launcher.exe.

Issues during the deploy process

If there are issues during the deploy process, they should appear as red notifications. In addition, most of the compilation output is forwarded to the user and can be checked manually.

The Blender IK service will download and unzip blender automatically. This may take a while and will result in a rather weird looking console output (see below). This is totally normal and expected. If the screen appears to be frozen, please check again if it is still downloading and / or unzipping the file.

image

The Blender IK service will pop up an additional CMD window to upgrade the python pip installation. The window will close automatically after 10s. This is a workaround, as the installation of pip packages with the blender-native python installation fails to terminate the first time it is called. If the duration is too short for your system, you can adjust it in the Services\BlenderIK\deploy.bat script.

Cleanup of Basic MMUs

As the deploy script compiles all Basic MMUs and there are multiple implementations of a similar MMU (e.g. ReachSimple vs ReachConcurrent), we provided an additional script to remove the duplicates. After deploying the framework, just run the remove_double_mmus.bat script from the meta repository folder.

Update Framework Dlls

During development in the core, a full deploy does take a significant amount of time. Thus, if you are working in the core framework projects (e.g. the Core/Framework/LanguageSupport/CS), and recompile the project manually, you can call the update_framework_dlls.bat to copy the generated DLLs to the Services and Demos repository. Please ensure, that you did run the deploy script at least once before.

Unity Engine Dlls

Several components require the UnityEngine.dll / UnityEditor.dll libraries. As the publication of these dlls is not permitted, they will be copied automatically during the deployment. You can manually trigger this copy procedure by calling the distribute_unity.bat script in the Core repository. Be aware, that it requires the environment variables pointing to the local Unity installation.

Clean procedure

To perform a clean procedure (similar to Visual Studios "Clean Solution" process), you can run the clean.bat script. It will remove all build folders and clean all visual studio solutions utilized in the process.

MOSIM Documentation

Introduction

Documentation

Known Issues

Clone this wiki locally