mirror of
https://github.com/overte-org/overte.git
synced 2025-08-20 13:28:20 +02:00
135 lines
4.5 KiB
Markdown
135 lines
4.5 KiB
Markdown
<!--
|
|
Copyright 2013-2019 High Fidelity, Inc.
|
|
Copyright 2020-2021 Vircadia contributors
|
|
Copyright 2021-2025 Overte e.V.
|
|
SPDX-License-Identifier: Apache-2.0
|
|
-->
|
|
|
|
# General Build Information
|
|
|
|
*Last Updated on 2025-03-17*
|
|
|
|
## OS Specific Build Guides
|
|
|
|
* [Build Windows](BUILD_WIN.md) - complete instructions for Windows.
|
|
* [Build Linux](BUILD_LINUX.md) - additional instructions for Linux.
|
|
* [Build OSX](BUILD_OSX.md) - additional instructions for OS X.
|
|
* [Build Android](BUILD_ANDROID.md) - additional instructions for Android.
|
|
|
|
## Dependencies
|
|
- [git](https://git-scm.com/downloads): >= 1.6
|
|
- [CMake](https://cmake.org/download/): 3.9 (or greater up to latest 3.x.x)
|
|
- [Conan](https://conan.io/downloads): 2.x
|
|
- [Python](https://www.python.org/downloads/): 3.6 or higher
|
|
- [Node.JS](https://nodejs.org/en/): >= 12.13.1 LTS
|
|
- Used to build the server-console, JSDoc, and script console autocomplete.
|
|
|
|
## Conan Dependencies
|
|
Most of our dependencies are automatically fetched and built using Conan.
|
|
See the accompanying `conanfile.py` for a full list of direct dependencies.
|
|
|
|
### CMake
|
|
|
|
Overte uses CMake to generate build files and project files for your platform.
|
|
|
|
### Conan
|
|
|
|
Overte uses conan to download and build dependencies.
|
|
Conan can be downloaded from here: https://conan.io/downloads
|
|
|
|
See the accompanying `conanfile.py` for a full list of direct dependencies.
|
|
|
|
Building the dependencies can be lengthy and the resulting files will be stored in your home directory.
|
|
To move them to a different location, you can set the `CONAN_HOME` variable to any folder where you wish to install the dependencies.
|
|
|
|
Linux:
|
|
|
|
```bash
|
|
export CONAN_HOME=/path/to/directory
|
|
```
|
|
|
|
Windows:
|
|
```bash
|
|
set CONAN_HOME=/path/to/directory
|
|
```
|
|
|
|
Where `/path/to/directory` is the path to a directory where you wish the build files to get stored.
|
|
|
|
### Generating Build Files
|
|
|
|
#### Possible Environment Variables
|
|
|
|
```text
|
|
// The Interface will have a custom default home and startup location.
|
|
PRELOADED_STARTUP_LOCATION=Location/IP/URL
|
|
// The Interface will have a custom default script whitelist, comma separated, no spaces.
|
|
// This will also activate the whitelist on Interface's first run.
|
|
PRELOADED_SCRIPT_WHITELIST=ListOfEntries
|
|
|
|
// Code-signing environment variables must be set during runtime of CMake AND globally when the signing takes place.
|
|
HF_PFX_FILE=Path to certificate
|
|
HF_PFX_PASSPHRASE=Passphrase for certificate
|
|
|
|
// Determine if to utilize testing or stable directory services URLs
|
|
USE_STABLE_GLOBAL_SERVICES=1
|
|
BUILD_GLOBAL_SERVICES=STABLE
|
|
```
|
|
|
|
#### Possible CMake Variables
|
|
|
|
```text
|
|
// The URL to post the dump to.
|
|
OVERTE_BACKTRACE_URL
|
|
// The identifying tag of the release.
|
|
OVERTE_BACKTRACE_TOKEN
|
|
|
|
// The release version, e.g., 2021.3.2. For PR builds the PR number, e.g. 577.
|
|
// Not used for nightlies and development builds.
|
|
OVERTE_RELEASE_NUMBER
|
|
// The build commit, e.g., use a Git hash for the most recent commit in the branch - fd6973b.
|
|
OVERTE_GIT_COMMIT_SHORT
|
|
|
|
// The type of release.
|
|
OVERTE_RELEASE_TYPE=PRODUCTION|PR|NIGHTLY|DEV
|
|
```
|
|
|
|
#### Generate Files
|
|
|
|
```bash
|
|
conan install . -s build_type=Release -b missing -of build
|
|
cmake --preset conan-release
|
|
```
|
|
|
|
If CMake gives you the same error message repeatedly after the build fails, try removing `CMakeCache.txt`.
|
|
|
|
### Finding Dependencies
|
|
|
|
The following applies for dependencies we do not grab via Conan.
|
|
|
|
You can point our [CMake find modules](cmake/modules/) to the correct version of dependencies by setting one of the three following variables to the location of the correct version of the dependency.
|
|
|
|
In the examples below the variable $NAME would be replaced by the name of the dependency in uppercase, and $name would be replaced by the name of the dependency in lowercase (ex: OPENSSL_ROOT_DIR, openssl).
|
|
|
|
* $NAME_ROOT_DIR - pass this variable to Cmake with the -DNAME_ROOT_DIR= flag when running Cmake to generate build files
|
|
* $NAME_ROOT_DIR - set this variable in your ENV
|
|
* HIFI_LIB_DIR - set this variable in your ENV to your Overte lib folder, should contain a folder '$name'
|
|
|
|
## Optional Components
|
|
|
|
### Build Options
|
|
|
|
The following build options can be used when running CMake
|
|
|
|
* OVERTE_BUILD_CLIENT
|
|
* OVERTE_BUILD_SERVER
|
|
* OVERTE_BUILD_TESTS
|
|
* OVERTE_BUILD_TOOLS
|
|
|
|
### Developer Build Options
|
|
|
|
* OVERTE_RENDERING_BACKEND
|
|
* OVERTE_DISABLE_QML
|
|
|
|
### Devices
|
|
|
|
You can support external input/output devices such as Leap Motion, MIDI, and more by adding each individual SDK in the visible building path. Refer to the readme file available in each device folder in [interface/external/](interface/external) for the detailed explanation of the requirements to use the device.
|