From 2c790d7b5f2247a08e588664081d64501368f786 Mon Sep 17 00:00:00 2001 From: Mamadou Babaei Date: Thu, 1 Aug 2024 19:47:18 +0200 Subject: [PATCH] complete installation instructions --- .../installation/epic-games-launcher.md | 10 +- ...epositories-branch-dropdown-choose-tag.png | 3 + ...re-devops-repositories-branch-dropdown.png | 3 + ...-repositories-building-missing-modules.png | 3 + ...s-repositories-download-branch-tag-zip.png | 3 + ...azure-devops-repositories-download-dev.png | 3 + ...e-visual-studio-project-files-progress.png | 3 + ...s-generate-visual-studio-project-files.png | 3 + ...re-devops-repositories-missing-modules.png | 3 + ...sitories-specific-version-download-zip.png | 3 + ...-repositories-specific-version-history.png | 3 + ...tories-specific-version-release-commit.png | 3 + .../microsoft-azure-devops-repositories.md | 364 ++++++++++++++++++ 13 files changed, 406 insertions(+), 1 deletion(-) create mode 100644 Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-branch-dropdown-choose-tag.png create mode 100644 Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-branch-dropdown.png create mode 100755 Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-building-missing-modules.png create mode 100644 Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-download-branch-tag-zip.png create mode 100644 Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-download-dev.png create mode 100755 Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-generate-visual-studio-project-files-progress.png create mode 100755 Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-generate-visual-studio-project-files.png create mode 100755 Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-missing-modules.png create mode 100644 Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-specific-version-download-zip.png create mode 100644 Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-specific-version-history.png create mode 100644 Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-specific-version-release-commit.png diff --git a/Handbook/src/getting-started/installation/epic-games-launcher.md b/Handbook/src/getting-started/installation/epic-games-launcher.md index 53c50b03..9dbb14cb 100644 --- a/Handbook/src/getting-started/installation/epic-games-launcher.md +++ b/Handbook/src/getting-started/installation/epic-games-launcher.md @@ -38,7 +38,15 @@ Before we start the plugin installation through [the Epic Games Launcher](https: ![Plugin installation through the Epic Games Launcher - step 9](epic-games-launcher-009.png "Plugin installation through the Epic Games Launcher - step 9") -10. One last confirmation could be navigating to `YourEngineInstallationPath/Engine/Plugins/Marketplace` directory. The SenseGlove Unreal Engine Plugin source and binaries can be found inside this directory. This is especially useful in case one desires to copy the plugin for example to their own project's source code to run it at the project level instead of running it at the engine level. Please beware that it's best practice to keep the plugin either at the project level or the engine level, not both, as it may create various kinds of issues. Especially if the version of the plugin installed at the engine level differs from the one installed at the plugin level. A guide on [verifying the plugin version](../../getting-started/plugin-verify-version-enable/README.md) exist as well. +10. One last confirmation could be navigating to `YourEngineInstallationPath/Engine/Plugins/Marketplace` directory. The SenseGlove Unreal Engine Plugin source and binaries can be found inside this directory. This is especially useful in case one desires to copy the plugin for example to their own project's source code to run it at the project level instead of running it at the engine level. ![Plugin installation through the Epic Games Launcher - step 10](epic-games-launcher-010.png "Plugin installation through the Epic Games Launcher - step 10") +> [!WARNING] +> Please note that it is best practice to install the plugin either at the +> project level or the engine level, but not both. Having the plugin installed +> in both locations, at the same time, can lead to various issues, especially if +> the version of the plugin installed at the engine level differs from the one +> installed at the plugin level. +> A guide on [verifying the plugin version](../../getting-started/plugin-verify-version-enable/README.md) +> is also available as well. diff --git a/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-branch-dropdown-choose-tag.png b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-branch-dropdown-choose-tag.png new file mode 100644 index 00000000..000dbe3e --- /dev/null +++ b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-branch-dropdown-choose-tag.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9dc84ba8212da52778ef6365bdf49149a64f3d249df6a1b75a99aef27e3c5f07 +size 109105 diff --git a/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-branch-dropdown.png b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-branch-dropdown.png new file mode 100644 index 00000000..0d701833 --- /dev/null +++ b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-branch-dropdown.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99affb50c7f73b8c82e4dae78d746bd90e5637f17eeea6577b57613d469853c4 +size 106388 diff --git a/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-building-missing-modules.png b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-building-missing-modules.png new file mode 100755 index 00000000..be9cd546 --- /dev/null +++ b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-building-missing-modules.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91bb4840af315445a78bec2f8f3fc50a72ed803dcf858f3cd458c5362a90e242 +size 38748 diff --git a/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-download-branch-tag-zip.png b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-download-branch-tag-zip.png new file mode 100644 index 00000000..2f3ecc4c --- /dev/null +++ b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-download-branch-tag-zip.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ca79686f520399fb3aa66a6629b833936a8cce36ca4bfbc1bb18bb1d0bb2e05 +size 125119 diff --git a/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-download-dev.png b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-download-dev.png new file mode 100644 index 00000000..2982be01 --- /dev/null +++ b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-download-dev.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8551dc349dfa561df0f3409ad5bc78b60287303c7fc8319bf3cd85ae7c265f05 +size 124329 diff --git a/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-generate-visual-studio-project-files-progress.png b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-generate-visual-studio-project-files-progress.png new file mode 100755 index 00000000..8498d7ba --- /dev/null +++ b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-generate-visual-studio-project-files-progress.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86c40da40fffa0c26939a196a82306c7d8f7a860101789d2eabe952005050ce1 +size 35753 diff --git a/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-generate-visual-studio-project-files.png b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-generate-visual-studio-project-files.png new file mode 100755 index 00000000..72dc2a3b --- /dev/null +++ b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-generate-visual-studio-project-files.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb00bad5c00ac82c1cb00437778b759c67f4a37dc05c2a719b6935466ad22335 +size 43677 diff --git a/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-missing-modules.png b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-missing-modules.png new file mode 100755 index 00000000..65f589a6 --- /dev/null +++ b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-missing-modules.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d00ce4583c246f173803b2362f8c5fbb86f68abee7961655d7f1da9259c8d99 +size 106253 diff --git a/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-specific-version-download-zip.png b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-specific-version-download-zip.png new file mode 100644 index 00000000..e596c52c --- /dev/null +++ b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-specific-version-download-zip.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0a68040f555e447bde134d154a417dc15222469d19817a800b96416a280fc3b +size 124189 diff --git a/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-specific-version-history.png b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-specific-version-history.png new file mode 100644 index 00000000..3a8dcbbb --- /dev/null +++ b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-specific-version-history.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:895d0aab7b841388a0b3264ad7b2820cd4d657654e9280fb8617ad41f1833207 +size 139920 diff --git a/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-specific-version-release-commit.png b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-specific-version-release-commit.png new file mode 100644 index 00000000..5b266e5d --- /dev/null +++ b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories-specific-version-release-commit.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c22bd3d4ac25e3272cca4a59d880dcd7d020a2d2e95bdd9a9af4aac6b4594931 +size 122228 diff --git a/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories.md b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories.md index af08bf58..4a5b8d34 100644 --- a/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories.md +++ b/Handbook/src/getting-started/installation/microsoft-azure-devops-repositories.md @@ -1 +1,365 @@ # Plugin Installation through Microsoft Azure DevOps Repositories + +While [plugin installation through the Epic Games Launcher](epic-games-launcher.md) is the most convenient method for most users to obtain and install the latest version of [the SenseGlove Unreal Engine Plugin marketplace page](https://www.unrealengine.com/marketplace/en-US/product/the-senseglove-unreal-engine-plugin), there might be valid reasons to instead download and install the plugin directly from [the SenseGlove Unreal Engine Plugin Microsoft Azure DevOps Repository](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal). These reasons may include: + +- Downloading an older version that is no longer available on [the Unreal Engine Marketplace](https://www.unrealengine.com/marketplace/en-US/store). +- Downloading a recent version that has been submitted to the Unreal Engine Marketplace, but is still awaiting approval and publication by the Unreal Engine Marketplace Team. +- Downloading an under-development, unstable release of the plugin for testing purposes. +- Or, any other specific needs that require direct access to the repository. + +Nonetheless, here is a step-by-step guide to downloading and installing the plugin from the Microsoft Azure DevOps Repositories. + +## Download a Specific Version + +To download a specific version of the plugin, follow these steps: + +1. Navigate to the [the SenseGlove Unreal Engine Plugin Microsoft Azure DevOps Repository](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal). + +2. Locate the branch dropdown menu at the top of the page, just below the navigation bar, and next to the `Copy to clipboard` icon. There you'll find a dropdown menu. By default, it usually selects the [master](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=%2F&version=GBmaster&_a=contents) branch. + +![Plugin Installation through Microsoft Azure DevOps Repositories - The branch dropdown menu](microsoft-azure-devops-repositories-branch-dropdown.png "Plugin Installation through Microsoft Azure DevOps Repositories - The branch dropdown menu") + +3. Use the dropdown menu to choose a desired branch containing the source code for a specific version of Unreal Engine or a specific release of the plugin marked with a release tag. + +![Plugin Installation through Microsoft Azure DevOps Repositories - Choosing a tag from the branch dropdown menu](microsoft-azure-devops-repositories-branch-dropdown-choose-tag.png "Plugin Installation through Microsoft Azure DevOps Repositories - Choosing a tag from the branch dropdown menu") + +> [!NOTE] +> A branch named with engine version numbers, such as `5.4`, `5.3`, etc., +> ususally contains the source code for the latest stable version of the plugin +> compatible with that specific Unreal Engine version, provided that version is +> still supported. +> For a comprehensive list of supported engine versions please refer to +> [the Platform Support Matrix](../../appendix/platform-support-matrix.md). +> +> As a general rule of thumb, the `master` branch should work with any supported +> Unreal Engine version. This is because it does not specify any `EngineVersion` +> inside the main `.uplugin` file. However, there may be rare exceptions where +> it does not work due to breaking changes between engine versions that the +> plugin cannot accommodate. One such a instance occurred with version `2.0.x` +> of the plugin, where +> [some breaking changes prevented UE `5.1` from sharing similar code with versions `5.2+`](https://dev.azure.com/SenseGlove/SenseGlove-Unreal/_git/SenseGlove-Unreal/commit/b2861b0068ca59f283b983ed41efa84086826079?refName=refs%2Fheads%2F5.1&path=%2FSource%2FSenseGlove%2FSenseGlove.Build.cs&_a=compare). +> For this reason, it is generally recommended to select a branch specific to +> the version of the Unreal Engine you intend to use with the plugin. +> +> The same principles that apply to the `master` branch also apply to the `dev` +> branch, which will discuss later. +> +> We will also cover how to obtain a working version from a tag for scenarios +> like the one mentioned above. + +4. After selecting your desired branch or tag, click on the kebab menu (three vertical dots) located at the top right of the screen and choose `Download as Zip` to obtain the source code for that branch or tag. + +![Plugin Installation through Microsoft Azure DevOps Repositories - Downloading a branch or tag as Zip](microsoft-azure-devops-repositories-download-branch-tag-zip.png "Plugin Installation through Microsoft Azure DevOps Repositories - Downloading a branch or tag as Zip") + +## Download a Specific Version for a Specifc Unreal Engine Version + +As mentioned earlier, due to breaking changes between Unreal Engine versions, it might not be feasible to share the same source code across different Unreal Engine versions. Since release tags are created from the `master` branch, they contain code compatible only with the latest version of Unreal Engine. Therefore, the instructions for downloading a specific version from a release tag might not work with some Unreal Engine versions. In such cases, you can use an alternative approach: + +1. First, choose the appropriate branch for your desired Unreal Engine version from the branch dropdown menu, as discussed earlier. Then navigate to the `History` tab. + +![Plugin Installation through Microsoft Azure DevOps Repositories - Downloading a specific version for a specifc Unreal Engine version - History tab](microsoft-azure-devops-repositories-specific-version-history.png "Plugin Installation through Microsoft Azure DevOps Repositories - Downloading a specific version for a specifc Unreal Engine version - History tab") + +2. Look through the commit history for a commit message that says `bump the plugin version to vX.X.X` as all releases are finalized with this exact commit message and the plugin version. Next, click on the commit message for the version you are looking for. + +3. Once you've selected the correct commit, click on the `Browse Files` button next to the kebab menu (three vertical dots) at the top right of the screen. + +![Plugin Installation through Microsoft Azure DevOps Repositories - Downloading a specific version for a specifc Unreal Engine version - Release commit](microsoft-azure-devops-repositories-specific-version-release-commit.png "Plugin Installation through Microsoft Azure DevOps Repositories - Downloading a specific version for a specifc Unreal Engine version - Release commit") + +4. You should now be in the `Content` tab, with the branch dropdown menu displaying the commit hash instead of a branch name or tag. Click on the kebab menu (three vertical dots) again, and select `Download as Zip`. This will give you a zip file containing the exact release you need, compatible with your chosen Unreal Engine version. + +![Plugin Installation through Microsoft Azure DevOps Repositories - Downloading a specific version for a specifc Unreal Engine version - Download as Zip](microsoft-azure-devops-repositories-specific-version-download-zip.png "Plugin Installation through Microsoft Azure DevOps Repositories - Downloading a specific version for a specifc Unreal Engine version - Download as Zip") + +## Download the Bleeding-edge Development Branch + +> [!CAUTION] +> The `dev` branch is an active development branch that is constant and +> ongoing changes. As a result, the code on this branch is primarily untested +> and therefore not production-ready. It may not even compile successfully or +> may lack comprehensive documentation. +> For any serious development, it is generally recommended to use a stable +> release of the plugin. The `dev` branch is publicly accessible to give you a +> preview of upcoming features and for trial purposes only. +> +> The most up-to-date documentation for the dev branch can usually be found at: +> at: +> [https://unreal.dev.senseglove.com/next](https://unreal.dev.senseglove.com/next). + +Downloading the [`dev`](https://dev.azure.com/SenseGlove/_git/SenseGlove-Unreal?path=%2F&version=GBdev&_a=contents) branch is as easy as choosing the `dev` branch from the branch dropdown menu (as discussed earlier) and then choosing `Download as Zip` from the kebab menu (three vertical dots). + +![Plugin Installation through Microsoft Azure DevOps Repositories - Downloading the bleeding-edge development branch](microsoft-azure-devops-repositories-download-dev.png "Plugin Installation through Microsoft Azure DevOps Repositories - Downloading the bleeding-edge development branch") + +## Installation + +Once you have obtained the desired plugin version compatible with the Unreal Engine version you have in mind using any of the methods mentioned above, it's time to build and install the plugin. There are two ways to install the SenseGlove Unreal Engine Plugin, one is at the engine level, and the other is per project. + +- **Engine-level installation**: this method makes the plugin accessible to any project within that Unreal Engine version. + +- **Per-project installation**: this method makes the plugin accessible only to a specific project. + +> [!WARNING] +> Please note that it is best practice to install the plugin either at the +> project level or the engine level, but not both. Having the plugin installed +> in both locations, at the same time, can lead to various issues, especially if +> the version of the plugin installed at the engine level differs from the one +> installed at the plugin level. +> A guide on [verifying the plugin version](../../getting-started/plugin-verify-version-enable/README.md) +> is also available as well. + +### Engine-level installation + +### Per-project installation + +1. Locate your existing C++ or Blueprint project, or create a new project from scratch. + +> [!IMPORTANT] +> Before proceeding, make sure your project's Unreal Editor is closed, and you +> do not have your project open in your C++ IDE to avoid any issues. + +2. Inside your project's root directory create a new `Plugins` directory if you don't have one already. + +3. Inside the `Plugins` directory create a new directory named `SenseGlove`. + +4. Extract the content of your downloaded zip file into the `SenseGlove` directory. + +5. Remove any directories or files that are only meant for use by the SenseGlove Unreal Engine Plugin maintainers. These are not part of the distributed plugin package and are not required by either Unreal Engine or the SenseGlove Unreal Engine Plugin to function correctly. + +The mandatory files and folders to stay are as follows: + +``` +Config +Content +Resources +Source +SenseGlove.uplugin +``` + +Anything else can be safely removed. For example, these files and folders can be safely deleted: + +``` +Handbook +Packager +.clang-format +.editorconfig +.gitattributes +.gitignore +README.md +``` + +6. Ensure your project has the correct structure. + +For a Blueprint-only project, it should look something like this: + +``` +MyBlueprintProject + │ + ├── Config + │ + ├── Content + │ + ├── Plugins + │ │ + │ └── SenseGlove + │ │ + │ ├── Config + │ │ + │ ├── Content + │ │ + │ ├── Resources + │ │ + │ ├── SenseGlove.uplugin + │ │ + │ └── Source + │ + └── MyBlueprintProject.uproject +``` + +For a C++ project, the structure should look like this: + +``` +MyCppProject + │ + ├── Config + │ + ├── Content + │ + ├── Plugins + │ │ + │ └── SenseGlove + │ │ + │ ├── Config + │ │ + │ ├── Content + │ │ + │ ├── Resources + │ │ + │ ├── SenseGlove.uplugin + │ │ + │ └── Source + │ + ├── Source + │ + └── MyCppProject.uproject +``` + +> [!TIP] +> If you are keeping your project under Git and Git LFS, consider keeping the `.gitignore` and `.gitattributes` as they help keep irrelevant files out of the remote repository, or manage binary blobs efficiently. + +7. OK, now it's time to build the plugin. + +> [!NOTE] +> For Linux build instructions see the [Linux Build Instructions section](#linux-build-instructions). + +For a Blueprint-only project, on Microsoft Windows simply double-clicking the project's `.uproject` file should present you with a pop-up informing you that some binary modules are missing. + +![Plugin Installation through Microsoft Azure DevOps Repositories - Missing Modules dialog](microsoft-azure-devops-repositories-missing-modules.png "Plugin Installation through Microsoft Azure DevOps Repositories - Missing Modules dialog") + +After confirming, the build process will start automatically, and a dialog indicating the build progress will be shown: + +![Plugin Installation through Microsoft Azure DevOps Repositories - Building missing modules progress dialog](microsoft-azure-devops-repositories-building-missing-modules.png "Plugin Installation through Microsoft Azure DevOps Repositories - Building missing modules progress dialog") + +Once finished successfully, the project will be loaded. + +> [!NOTE] +> Sometimes, due to an esoteric bug in some versions of Unreal Engine, the build process for Blueprint-only projects may immediately fail after choosing `Yes` in the `Missing Modules` dialog. If this happens, one workaround would be to try to build the plugin inside a temporary C++ project, then copy the `Plugins/SenseGlove` folder containing the binaries, from the C++ project to your Blueprint project and then try to reopen the project again. + +For C++ projects, on Microsoft Windows, right-click on your C++ `.uproject` file and choose `Generate Visual Studio project files`: + +![Plugin Installation through Microsoft Azure DevOps Repositories - Generating Visual Studio project files](microsoft-azure-devops-repositories-generate-visual-studio-project-files.png "Plugin Installation through Microsoft Azure DevOps Repositories - Generating Visual Studio project files") + +A dialog will pop up shows you the progress of generating the Visual Studio project files: + +![Plugin Installation through Microsoft Azure DevOps Repositories - Generating Visual Studio project files progress](microsoft-azure-devops-repositories-generate-visual-studio-project-files-progress.png "Plugin Installation through Microsoft Azure DevOps Repositories - Generating Visual Studio project files progress") + +Once the project files are generated, open up the C++ project in your preferred C++ IDE and build the project. After this, the project can be loaded in the Unreal Editor. + +8. Once the plugin has been built successfully, [ensure the SenseGlove Unreal Engine is enabled and verify the plugin version matches the expected version](../../getting-started/plugin-verify-version-enable/README.md). + +#### Linux Build Instructions + +When building the SenseGlove Unreal Engine Plugin on Linux, you won't encounter the `Missing Modules` dialog that appears on Microsoft Windows. Instead, examining the Unreal Editor logs reveals that the Unreal Editor automatically chooses `No` in response to the `Would you like to rebuild them now?` question as the `No is implied` states. + +```sh +$ /path/to/UnrealEngine/Engine/Binaries/Linux/UnrealEditor \ + /path/to/MyBlueprintProject/MyBlueprintProject.uproject + +LogLinux: Warning: MessageBox: The following modules are missing or built with a different engine version: + + SenseGlove + SenseGloveAndroid + SenseGloveBackend + SenseGloveBackendKismet + SenseGloveBuildHacks + SenseGloveConnect + SenseGloveConnectImpl + SenseGloveConnectKismet + SenseGloveCore + SenseGloveCoreImpl + SenseGloveCoreKismet + SenseGloveDebug + SenseGloveDebugKismet + SenseGloveEditor + SenseGloveInterop + (+8 others, see log for details) + +Would you like to rebuild them now?: Missing MyBlueprintProject Modules: No is implied. +LogCore: Engine exit requested (reason: EngineExit() was called) +LogExit: Preparing to exit. +LogPakFile: Destroying PakPlatformFile +LogExit: Exiting. +LogInit: Tearing down SDL. +Exiting abnormally (error code: 1) +``` + +If your Unreal Engine installation on Linux was obtained from the [GitHub Sources](https://github.com/EpicGames/UnrealEngine) y you can generate the project files using the following command: + +```sh +$ /path/to/UnrealEngine/GenerateProjectFiles.sh \ + /path/to/MyProject/MyProject.uproject \ + -editor -game -makefile +``` + +However, if you are using [a prebuilt Linux version of Unreal Engine](https://www.unrealengine.com/en-US/linux), the main `GenerateProjectFiles.sh` script at the engine root does not exists. Instead, we have to invoke the underlying `GenerateProjectFiles.sh` script located elsewhere. This is a different script which shares the same name and is also present in the GitHub sources. The main `GenerateProjectFiles.sh` script at the engine root is actually a wrapper around this script. + +```sh +$ /path/to/UnrealEngine/Engine/Build/BatchFiles/Linux/GenerateProjectFiles.sh \ + /path/to/MyProject/MyProject.uproject \ + -editor -game -makefile +``` + +Still, running the any of the above commands on a Blueprint project results in the following error: + +``` +$ /path/to/UnrealEngine/Engine/Build/BatchFiles/Linux/GenerateProjectFiles.sh \ + /path/to/MyBlueprintProject/MyBlueprintProject.uproject \ + -editor -game -makefile + +Setting up Unreal Engine project files... + +Setting up bundled DotNet SDK +Log file: /home/mamadou/.config/Epic/UnrealBuildTool/Log_GPF.txt +Project file formats specified via the command line will be ignored when generating +project files from the editor and other engine tools. + +Consider setting your desired IDE from the editor preferences window, or modify your +BuildConfiguration.xml file with: + + + + + Make + + + + +Generating Make project files: +Discovering modules, targets and source code for project... +Total execution time: 0.35 seconds +Directory '/path/to/MyBlueprintProject/MyBlueprintProject' is missing 'Source' folder. +``` + +For a C++ project, however, the project files will generate without any issues: + +```sh +$ /path/to/UnrealEngine/Engine/Build/BatchFiles/Linux/GenerateProjectFiles.sh \ + /path/to/MyCppProject/MyCppProject.uproject \ + -editor -game -makefile + +Setting up Unreal Engine project files... + +Setting up bundled DotNet SDK +Log file: /home/mamadou/.config/Epic/UnrealBuildTool/Log_GPF.txt +Project file formats specified via the command line will be ignored when generating +project files from the editor and other engine tools. + +Consider setting your desired IDE from the editor preferences window, or modify your +BuildConfiguration.xml file with: + + + + + Make + + + + +Generating Make project files: +Discovering modules, targets and source code for project... +Generating data for project indexing... 100% + +Generating QueryTargets data for editor... +Total execution time: 2.98 seconds +``` + +So, the workaround for Blueprint projects is to build the plugin inside a C++ project and then copy the `Plugin/SenseGlove` directory, which contains the built binary modules, to the corresponding directory in your Blueprint project. + +```sh +$ /path/to/UnrealEngine/Engine/Build/BatchFiles/Linux/GenerateProjectFiles.sh \ + /path/to/MyCppProject/MyCppProject.uproject \ + -editor -game -makefile +$ make MyCppProjectEditor -C /path/to/MyCppProject/ +$ cp -vr \ + /path/to/MyCppProject/Plugins/SenseGlove \ + /path/to/MyBlueprintProject/Plugins/ +$ /path/to/UnrealEngine/Engine/Binaries/Linux/UnrealEditor \ + /path/to/MyBlueprintProject/MyBlueprintProject.uproject +```