mirror of
https://github.com/overte-org/overte.git
synced 2025-08-04 18:47:28 +02:00
Merge pull request #1584 from overte-org/cmake_variables
CMake refactor
This commit is contained in:
commit
b688a0539b
41 changed files with 340 additions and 500 deletions
30
.github/workflows/linux_server_build.yml
vendored
30
.github/workflows/linux_server_build.yml
vendored
|
@ -158,22 +158,12 @@ jobs:
|
|||
|
||||
# Tagged builds. E.g. release or release candidate builds.
|
||||
if [ "${{github.ref_type}}" == "tag" ]; then
|
||||
echo "PRODUCTION_BUILD=true" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
# Systems requiring our prebuilt Qt package
|
||||
if [[ "${{ matrix.os }}" = "ubuntu-18.04" || "${{ matrix.os }}" = "ubuntu-20.04" ]]; then
|
||||
echo # false
|
||||
echo "OVERTE_RELEASE_TYPE=PRODUCTION" >> $GITHUB_ENV
|
||||
else
|
||||
echo "OVERTE_USE_SYSTEM_QT=true" >> $GITHUB_ENV
|
||||
echo "OVERTE_RELEASE_TYPE=PR" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
# Architecture specific variables
|
||||
if [[ "${{ matrix.arch }}" = "aarch64" ]]; then
|
||||
echo "CMAKE_EXTRA=-DOVERTE_CPU_ARCHITECTURE= -DSERVER_ONLY=true -DBUILD_TOOLS=true" >> $GITHUB_ENV
|
||||
else # amd64
|
||||
echo "CMAKE_EXTRA=-DOVERTE_CPU_ARCHITECTURE=-msse3 -DSERVER_ONLY=true -DBUILD_TOOLS=true" >> $GITHUB_ENV
|
||||
fi
|
||||
echo "CMAKE_EXTRA=-DOVERTE_BUILD_SERVER=true -DOVERTE_BUILD_TOOLS=true -DOVERTE_BUILD_CLIENT=false" >> $GITHUB_ENV
|
||||
|
||||
# Configuration is broken into multiple steps because you can't set an env var and also reference it in the same step
|
||||
- name: Configure Build Environment 2
|
||||
|
@ -205,18 +195,6 @@ jobs:
|
|||
fi
|
||||
fi
|
||||
|
||||
echo "BUILD_NUMBER=$GIT_COMMIT_SHORT" >> $GITHUB_ENV
|
||||
|
||||
# Disabled until we build with Crashpad again.
|
||||
#~ if [ "${{ github.ref_type }}" == "tag" ]; then
|
||||
#~ export CMAKE_BACKTRACE_URL="${{ secrets.SENTRY_MINIDUMP_ENDPOINT }}"
|
||||
#~ export CMAKE_BACKTRACE_TOKEN="${{ github.ref_name }}_${{ matrix.os }}_${{ github.sha }}"
|
||||
#~ else
|
||||
#~ # We're building a PR, default to the PR endpoint
|
||||
#~ export CMAKE_BACKTRACE_URL="https://o4504831972343808.ingest.sentry.io/api/4504832427950080/minidump/?sentry_key=f511de295975461b8f92a36f4a4a4f32"
|
||||
#~ export CMAKE_BACKTRACE_TOKEN="server_pr_${{ github.event.number }}_${{ github.sha }}"
|
||||
#~ fi
|
||||
|
||||
- name: Configure Build Environment 3
|
||||
shell: bash
|
||||
run: |
|
||||
|
@ -267,7 +245,7 @@ jobs:
|
|||
- name: Configure CMake
|
||||
shell: bash
|
||||
# This syntax requires CMake 3.23
|
||||
run: cmake --preset conan-${BUILD_TYPE,,} $CMAKE_EXTRA
|
||||
run: cmake --preset conan-${BUILD_TYPE,,} -DOVERTE_RELEASE_TYPE=$OVERTE_RELEASE_TYPE -DOVERTE_RELEASE_NUMBER=$RELEASE_NUMBER -DOVERTE_GIT_COMMIT_SHORT=$GIT_COMMIT_SHORT $CMAKE_EXTRA
|
||||
|
||||
- name: Build Domain Server
|
||||
working-directory: build
|
||||
|
|
36
.github/workflows/master_build.yml
vendored
36
.github/workflows/master_build.yml
vendored
|
@ -13,17 +13,10 @@ on:
|
|||
env:
|
||||
APP_NAME: interface
|
||||
BUILD_TYPE: Release
|
||||
BUILD_NUMBER: ${{ github.event.number }}_${{ github.sha }}
|
||||
GIT_COMMIT: ${{ github.sha }}
|
||||
RELEASE_TYPE: PRODUCTION
|
||||
RELEASE_NUMBER: ${{ github.event.number }}_${{ github.sha }}
|
||||
STABLE_BUILD: 0
|
||||
UPLOAD_BUCKET: overte-public
|
||||
UPLOAD_REGION: fra1
|
||||
UPLOAD_ENDPOINT: "https://fra1.digitaloceanspaces.com"
|
||||
# Disabled until we build with Crashpad again.
|
||||
# CMAKE_BACKTRACE_URL: ${{ secrets.SENTRY_MINIDUMP_ENDPOINT }}
|
||||
# CMAKE_BACKTRACE_TOKEN: master_${{ github.event.number }}_${{ github.sha }}
|
||||
|
||||
# OSX-specific variables
|
||||
DEVELOPER_DIR: /Applications/Xcode_11.2.app/Contents/Developer
|
||||
|
@ -56,12 +49,6 @@ jobs:
|
|||
fail-fast: false
|
||||
runs-on: ${{matrix.os}}
|
||||
steps:
|
||||
- name: Report Build Number
|
||||
shell: bash
|
||||
run: |
|
||||
|
||||
echo "Build number: $BUILD_NUMBER"
|
||||
|
||||
- name: Configure build environment 1
|
||||
shell: bash
|
||||
id: buildenv1
|
||||
|
@ -119,11 +106,9 @@ jobs:
|
|||
echo "GIT_COMMIT_SHORT=${{ steps.buildenv1.outputs.github_sha_short }}" >> $GITHUB_ENV
|
||||
# Build type variables
|
||||
if [ "${{ matrix.build_type }}" = "full" ]; then
|
||||
echo "CLIENT_ONLY=FALSE" >> $GITHUB_ENV
|
||||
echo "INSTALLER=Overte-${{ github.event.number }}_${{ github.sha }}-${{ steps.buildenv1.outputs.github_sha_short }}.$INSTALLER_EXT" >> $GITHUB_ENV
|
||||
else
|
||||
echo "CLIENT_ONLY=TRUE" >> $GITHUB_ENV
|
||||
echo "INSTALLER=Overte-Interface-master$BUILD_NUMBER-${{ steps.buildenv1.outputs.github_sha_short }}.$INSTALLER_EXT" >> $GITHUB_ENV
|
||||
echo "INSTALLER=Overte-Interface-master-${{ steps.buildenv1.outputs.github_sha_short }}.$INSTALLER_EXT" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: Clear Working Directories
|
||||
|
@ -214,16 +199,15 @@ jobs:
|
|||
shell: bash
|
||||
|
||||
- name: Configure CMake
|
||||
if: startsWith(matrix.os, 'Windows') == false
|
||||
shell: bash
|
||||
# This syntax requires CMake 3.23
|
||||
run: cmake --preset conan-${BUILD_TYPE,,} -DCLIENT_ONLY:BOOLEAN=$CLIENT_ONLY -DBYPASS_SIGNING:BOOLEAN=TRUE $CMAKE_EXTRA
|
||||
|
||||
- name: Configure CMake (Windows)
|
||||
if: startsWith(matrix.os, 'Windows')
|
||||
shell: bash
|
||||
# This syntax requires CMake 3.23
|
||||
run: cmake --preset conan-default -DCLIENT_ONLY:BOOLEAN=$CLIENT_ONLY -DBYPASS_SIGNING:BOOLEAN=TRUE $CMAKE_EXTRA
|
||||
run: |
|
||||
if [[ "${{ matrix.os }}" =~ "Windows" ]]; then
|
||||
# This syntax requires CMake 3.23
|
||||
cmake --preset conan-default -DOVERTE_GIT_COMMIT_SHORT=$GIT_COMMIT_SHORT -DOVERTE_RELEASE_TYPE=NIGHTLY $CMAKE_EXTRA
|
||||
else
|
||||
# This syntax requires CMake 3.23
|
||||
cmake --preset conan-${BUILD_TYPE,,} -DOVERTE_GIT_COMMIT_SHORT=$GIT_COMMIT_SHORT -DOVERTE_RELEASE_TYPE=NIGHTLY $CMAKE_EXTRA
|
||||
fi
|
||||
|
||||
- name: Build application
|
||||
shell: bash
|
||||
|
@ -291,7 +275,7 @@ jobs:
|
|||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ env.INSTALLER }}
|
||||
path: build/${{ env.INSTALLER }}
|
||||
path: build/Overte-*
|
||||
if-no-files-found: error
|
||||
|
||||
#- name: Archive symbols
|
||||
|
|
36
.github/workflows/pr_build.yml
vendored
36
.github/workflows/pr_build.yml
vendored
|
@ -14,14 +14,8 @@ env:
|
|||
APP_NAME: interface
|
||||
BUILD_TYPE: Release
|
||||
GIT_COMMIT: ${{ github.event.pull_request.head.sha }}
|
||||
RELEASE_TYPE: PR
|
||||
RELEASE_NUMBER: ${{ github.event.number }}
|
||||
# Android
|
||||
VERSION_CODE: ${{ github.event.number }}
|
||||
# Sentry Crash Reporting
|
||||
# We can't use secrets or actions here, so the actual value has to be hardcoded.
|
||||
# Disabled until we build with Crashpad again.
|
||||
# CMAKE_BACKTRACE_URL: "https://o4504831972343808.ingest.sentry.io/api/4504832427950080/minidump/?sentry_key=f511de295975461b8f92a36f4a4a4f32"
|
||||
# CMAKE_BACKTRACE_TOKEN: PR_${{ github.event.number }}_${{ github.sha }}
|
||||
|
||||
UPLOAD_BUCKET: overte-public
|
||||
UPLOAD_REGION: fra1
|
||||
|
@ -101,18 +95,18 @@ jobs:
|
|||
|
||||
if [[ "${{ matrix.arch }}" = "aarch64" ]]; then
|
||||
if [ "${{ matrix.build_type }}" = "full" ]; then
|
||||
echo "CMAKE_EXTRA=-DOVERTE_CPU_ARCHITECTURE= -DBUILD_TOOLS:BOOLEAN=FALSE -DHIFI_PYTHON_EXEC:FILEPATH=$(which python3)" >> $GITHUB_ENV
|
||||
echo "CMAKE_EXTRA=-DOVERTE_BUILD_TOOLS=FALSE -DHIFI_PYTHON_EXEC:FILEPATH=$(which python3)" >> $GITHUB_ENV
|
||||
else
|
||||
echo "CMAKE_EXTRA=-DOVERTE_CPU_ARCHITECTURE= -DCLIENT_ONLY=1 -DBUILD_TOOLS:BOOLEAN=FALSE -DHIFI_PYTHON_EXEC:FILEPATH=$(which python3)" >> $GITHUB_ENV
|
||||
echo "CMAKE_EXTRA=-DOVERTE_BUILD_SERVER=FALSE -DOVERTE_BUILD_TOOLS=FALSE -DHIFI_PYTHON_EXEC:FILEPATH=$(which python3)" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if [[ "${{ matrix.arch }}" = "amd64" ]]; then
|
||||
if [ "${{ matrix.build_type }}" = "full" ]; then
|
||||
echo "CMAKE_EXTRA=-DOVERTE_CPU_ARCHITECTURE=-msse3 -DBUILD_TOOLS:BOOLEAN=FALSE -DHIFI_PYTHON_EXEC:FILEPATH=$(which python3)" >> $GITHUB_ENV
|
||||
echo "CMAKE_EXTRA=-DHIFI_PYTHON_EXEC:FILEPATH=$(which python3)" >> $GITHUB_ENV
|
||||
else
|
||||
echo "CMAKE_EXTRA=-DOVERTE_CPU_ARCHITECTURE=-msse3 -DCLIENT_ONLY=1 -DBUILD_TOOLS:BOOLEAN=FALSE -DHIFI_PYTHON_EXEC:FILEPATH=$(which python3)" >> $GITHUB_ENV
|
||||
echo "CMAKE_EXTRA=-DOVERTE_BUILD_SERVER=FALSE -DOVERTE_BUILD_TOOLS=FALSE -DHIFI_PYTHON_EXEC:FILEPATH=$(which python3)" >> $GITHUB_ENV
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -123,9 +117,9 @@ jobs:
|
|||
echo "PYTHON_EXEC=python3" >> $GITHUB_ENV
|
||||
echo "INSTALLER_EXT=dmg" >> $GITHUB_ENV
|
||||
if [ "${{ matrix.build_type }}" = "full" ]; then
|
||||
echo "CMAKE_EXTRA=-DOVERTE_CPU_ARCHITECTURE= -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib -G Xcode" >> $GITHUB_ENV
|
||||
echo "CMAKE_EXTRA=-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib -G Xcode" >> $GITHUB_ENV
|
||||
else
|
||||
echo "CMAKE_EXTRA=-DOVERTE_CPU_ARCHITECTURE= -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -DCLIENT_ONLY=1 -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib -G Xcode" >> $GITHUB_ENV
|
||||
echo "CMAKE_EXTRA=-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -DCLIENT_ONLY=1 -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib -G Xcode" >> $GITHUB_ENV
|
||||
fi
|
||||
echo "APP_TARGET_NAME=Overte" >> $GITHUB_ENV
|
||||
echo "CONAN_PROFILE=default" >> $GITHUB_ENV
|
||||
|
@ -162,14 +156,12 @@ jobs:
|
|||
echo "${{ steps.buildenv1.outputs.symbols_archive }}"
|
||||
if [ "${{ matrix.build_type }}" = "full" ]; then
|
||||
if [[ "${{ matrix.os }}" = "Ubuntu"* ]]; then
|
||||
echo "ARTIFACT_PATTERN=Overte-PR${{ github.event.number }}-${GIT_COMMIT_SHORT}-$(uname -m).$INSTALLER_EXT" >> $GITHUB_ENV
|
||||
echo "ARTIFACT_NAME=Overte-PR${{ github.event.number }}-${GIT_COMMIT_SHORT}-$(uname -m).$INSTALLER_EXT" >> $GITHUB_ENV
|
||||
else
|
||||
echo "ARTIFACT_PATTERN=Overte-PR${{ github.event.number }}-${GIT_COMMIT_SHORT}.$INSTALLER_EXT" >> $GITHUB_ENV
|
||||
echo "INSTALLER=Overte-$RELEASE_NUMBER-${GIT_COMMIT_SHORT}.$INSTALLER_EXT" >> $GITHUB_ENV
|
||||
echo "ARTIFACT_NAME=Overte-PR${{ github.event.number }}-${GIT_COMMIT_SHORT}.$INSTALLER_EXT" >> $GITHUB_ENV
|
||||
fi
|
||||
else
|
||||
echo "ARTIFACT_PATTERN=Overte-Interface-PR${{ github.event.number }}-${GIT_COMMIT_SHORT}.$INSTALLER_EXT" >> $GITHUB_ENV
|
||||
echo "INSTALLER=Overte-Interface-$RELEASE_NUMBER-${GIT_COMMIT_SHORT}.$INSTALLER_EXT" >> $GITHUB_ENV
|
||||
echo "ARTIFACT_NAME=Overte-Interface-PR${{ github.event.number }}-${GIT_COMMIT_SHORT}.$INSTALLER_EXT" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
@ -260,10 +252,10 @@ jobs:
|
|||
run: |
|
||||
if [[ "${{ matrix.os }}" =~ "Windows" ]]; then
|
||||
# This syntax requires CMake 3.23
|
||||
cmake --preset conan-default $CMAKE_EXTRA # Why does Conan not provide the preset we tell it to on Windows?
|
||||
cmake --preset conan-default -DOVERTE_RELEASE_NUMBER=${{ github.event.number }} -DOVERTE_GIT_COMMIT_SHORT=$GIT_COMMIT_SHORT -DOVERTE_RELEASE_TYPE=PR $CMAKE_EXTRA
|
||||
else
|
||||
# This syntax requires CMake 3.23
|
||||
cmake --preset conan-${BUILD_TYPE,,} $CMAKE_EXTRA
|
||||
cmake --preset conan-${BUILD_TYPE,,} -DOVERTE_RELEASE_NUMBER=${{ github.event.number }} -DOVERTE_GIT_COMMIT_SHORT=$GIT_COMMIT_SHORT -DOVERTE_RELEASE_TYPE=PR $CMAKE_EXTRA
|
||||
fi
|
||||
|
||||
- name: Build Application
|
||||
|
@ -354,6 +346,6 @@ jobs:
|
|||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ env.ARTIFACT_PATTERN }}
|
||||
path: ./build/${{ env.ARTIFACT_PATTERN }}
|
||||
name: ${{ env.ARTIFACT_NAME }}
|
||||
path: ./build/Overte-*
|
||||
if-no-files-found: error
|
||||
|
|
16
.github/workflows/release_build.yml
vendored
16
.github/workflows/release_build.yml
vendored
|
@ -16,16 +16,9 @@ env:
|
|||
APP_NAME: interface
|
||||
BUILD_TYPE: Release
|
||||
GIT_COMMIT: ${{ github.sha }}
|
||||
PRODUCTION_BUILD: true
|
||||
RELEASE_TYPE: PRODUCTION
|
||||
RELEASE_NUMBER: ${{ github.ref_name }}
|
||||
STABLE_BUILD: 1
|
||||
UPLOAD_BUCKET: overte-public
|
||||
UPLOAD_REGION: fra1
|
||||
UPLOAD_ENDPOINT: "https://fra1.digitaloceanspaces.com"
|
||||
# Disabled until we build with Crashpad again.
|
||||
# CMAKE_BACKTRACE_URL: ${{ secrets.SENTRY_MINIDUMP_ENDPOINT }}
|
||||
# CMAKE_BACKTRACE_TOKEN: ${{ github.ref_name }}_Windows_${{ github.sha }}
|
||||
|
||||
# WIN-specific variables
|
||||
PreferredToolArchitecture: X64
|
||||
|
@ -82,10 +75,7 @@ jobs:
|
|||
- name: Configure build environment 2
|
||||
shell: bash
|
||||
run: |
|
||||
|
||||
echo "BUILD_NUMBER=$GIT_COMMIT_SHORT" >> $GITHUB_ENV
|
||||
echo "ARTIFACT_PATTERN=Overte-$RELEASE_NUMBER.$INSTALLER_EXT" >> $GITHUB_ENV
|
||||
echo "CLIENT_ONLY=FALSE" >> $GITHUB_ENV
|
||||
echo "ARTIFACT_PATTERN=Overte-${{ github.ref_name }}.$INSTALLER_EXT" >> $GITHUB_ENV
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
|
@ -133,7 +123,7 @@ jobs:
|
|||
- name: Configure CMake
|
||||
shell: bash
|
||||
# This syntax requires CMake 3.23
|
||||
run: cmake --preset conan-${BUILD_TYPE,,} -DJSDOC_ENABLED:BOOL=TRUE -DCLIENT_ONLY:BOOLEAN=$CLIENT_ONLY -DBYPASS_SIGNING:BOOLEAN=TRUE $CMAKE_EXTRA
|
||||
run: cmake --preset conan-${BUILD_TYPE,,} -DOVERTE_RELEASE_NUMBER=${{ github.ref_name }} -DOVERTE_BUILD_TYPE=PRODUCTION -DJSDOC_ENABLED:BOOL=TRUE $CMAKE_EXTRA
|
||||
|
||||
- name: Build application
|
||||
shell: bash
|
||||
|
@ -209,7 +199,7 @@ jobs:
|
|||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ env.ARTIFACT_PATTERN }}
|
||||
path: build/${{ env.ARTIFACT_PATTERN }}
|
||||
path: build/Overte-*
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Archive symbols
|
||||
|
|
57
BUILD.md
57
BUILD.md
|
@ -60,19 +60,6 @@ Where `/path/to/directory` is the path to a directory where you wish the build f
|
|||
#### Possible Environment Variables
|
||||
|
||||
```text
|
||||
// The URL to post the dump to.
|
||||
CMAKE_BACKTRACE_URL
|
||||
// The identifying tag of the release.
|
||||
CMAKE_BACKTRACE_TOKEN
|
||||
|
||||
// The release version, e.g., 2021.3.2.
|
||||
RELEASE_NUMBER
|
||||
// The build commit, e.g., use a Git hash for the most recent commit in the branch - fd6973b.
|
||||
BUILD_NUMBER
|
||||
|
||||
// The type of release.
|
||||
RELEASE_TYPE=PRODUCTION|PR|DEV
|
||||
|
||||
// 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.
|
||||
|
@ -83,16 +70,29 @@ PRELOADED_SCRIPT_WHITELIST=ListOfEntries
|
|||
HF_PFX_FILE=Path to certificate
|
||||
HF_PFX_PASSPHRASE=Passphrase for certificate
|
||||
|
||||
// Determine the build type
|
||||
PRODUCTION_BUILD=0|1
|
||||
PR_BUILD=0|1
|
||||
STABLE_BUILD=0|1
|
||||
|
||||
// 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
|
||||
|
@ -120,24 +120,15 @@ In the examples below the variable $NAME would be replaced by the name of the de
|
|||
|
||||
The following build options can be used when running CMake
|
||||
|
||||
* BUILD_CLIENT
|
||||
* BUILD_SERVER
|
||||
* BUILD_TESTS
|
||||
* BUILD_TOOLS
|
||||
* CLIENT_ONLY // Will package only the Interface
|
||||
* SERVER_ONLY // Will package only the Server
|
||||
|
||||
### Optimization build options
|
||||
|
||||
* OVERTE_OPTIMIZE - This variable defaults to 1 if not set and enables compiler optimization flags on Linux and MacOS. Setting it to 0 will result in unoptimized build.
|
||||
* OVERTE_CPU_ARCHITECTURE - This variable contains architecture specific compiler flags which are used if `OVERTE_OPTIMIZE` is true. If it is not set, it defaults to `-march=native -mtune=native`, which helps yield more performance for locally used build, but for packaging it needs to be set to different value for portability, for example `-msse3`. Setting `OVERTE_CPU_ARCHITECTURE` to empty string will use default compiler settings and yield
|
||||
maximum compatibility.
|
||||
|
||||
* OVERTE_BUILD_CLIENT
|
||||
* OVERTE_BUILD_SERVER
|
||||
* OVERTE_BUILD_TESTS
|
||||
* OVERTE_BUILD_TOOLS
|
||||
|
||||
### Developer Build Options
|
||||
|
||||
* USE_GLES
|
||||
* DISABLE_UI
|
||||
* OVERTE_RENDERING_BACKEND
|
||||
* OVERTE_DISABLE_QML
|
||||
|
||||
### Devices
|
||||
|
||||
|
|
|
@ -114,19 +114,6 @@ git fetch --tags
|
|||
git tag
|
||||
```
|
||||
|
||||
## Architecture support
|
||||
|
||||
If the build is intended to be packaged for distribution, the `OVERTE_CPU_ARCHITECTURE`
|
||||
CMake variable needs to be set to an architecture specific value.
|
||||
|
||||
By default, it is set to `-march=native -mtune=native`, which yields builds optimized for a particular
|
||||
machine, but these builds will not work on machines lacking same CPU instructions.
|
||||
|
||||
For packaging, it is recommended to set it to a different value, for example `-msse3`. This will help ensure that the build will run on all reasonably modern CPUs.
|
||||
|
||||
Setting `OVERTE_CPU_ARCHITECTURE` to an empty string will use the default compiler settings and yield maximum compatibility.
|
||||
|
||||
|
||||
## Prepare conan
|
||||
|
||||
The next step is setting up conan
|
||||
|
|
13
BUILD_OSX.md
13
BUILD_OSX.md
|
@ -71,19 +71,6 @@ You can append `-j4` to assign more threads to build with. The number indicates
|
|||
|
||||
To package the installation, you can simply run `make package` afterwards.
|
||||
|
||||
## Architecture Support
|
||||
|
||||
If the build is intended to be packaged for distribution, the `OVERTE_CPU_ARCHITECTURE`
|
||||
CMake variable needs to be set to an architecture specific value.
|
||||
|
||||
By default, it is set to `-march=native -mtune=native`, which yields builds optimized for a particular
|
||||
machine, but these builds will not work on machines lacking same CPU instructions.
|
||||
|
||||
For packaging, it is recommended to set it to a different value, for example `-msse3`. This will help ensure that the build will run on all reasonably modern CPUs.
|
||||
|
||||
Setting `OVERTE_CPU_ARCHITECTURE` to an empty string will use the default compiler settings and yield
|
||||
maximum compatibility.
|
||||
|
||||
## FAQ
|
||||
|
||||
1. **Problem:** Running the scheme `interface.app` from Xcode causes a crash for Interface related to `libgl`.
|
||||
|
|
296
CMakeLists.txt
296
CMakeLists.txt
|
@ -3,96 +3,67 @@
|
|||
# Copyright 2020-2025 Overte e.V.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# 3.14 is the minimum version that supports symlinks on Windows
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
# As the official CMake documentation is pretty bad for non-experts, Craig Scott's "Professional CMake: A Practical Guide" is a worthwhile investment,
|
||||
# both as a guide and as a reference manual. https://crascit.com/professional-cmake/
|
||||
|
||||
# This should allow using long paths on Windows
|
||||
SET(CMAKE_NINJA_FORCE_RESPONSE_FILE 1 CACHE INTERNAL "")
|
||||
# 3.24 is the minimum version that supports COMPILE_WARNING_AS_ERROR
|
||||
cmake_minimum_required(VERSION 3.24)
|
||||
|
||||
include(SelectLibraryConfigurations)
|
||||
|
||||
# read USE_GLES enviroment variable and sets it as GLES option
|
||||
# TODO still gets overwritten by "use GLES on linux aarch64"
|
||||
set(GLES_OPTION "$ENV{USE_GLES}")
|
||||
|
||||
# Instruct CMake to run moc automatically when needed.
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
# Instruct CMake to run rcc automatically when needed
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
# use GLES on linux aarch64
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
||||
set(GLES_OPTION ON)
|
||||
endif()
|
||||
|
||||
# set our OS X deployment target
|
||||
# (needs to be set before first project() call and before prebuild.py)
|
||||
if (APPLE)
|
||||
set(ENV{MACOSX_DEPLOYMENT_TARGET} 10.11)
|
||||
# Needs to be set before the first project() call.
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.11" CACHE STRING "Specifies the minimum version of the target platform (e.g. macOS or iOS) on which the target binaries are to be deployed.")
|
||||
endif()
|
||||
|
||||
set(EXTERNAL_BUILD_ASSETS "https://build-deps.overte.org")
|
||||
|
||||
set(RELEASE_TYPE "$ENV{RELEASE_TYPE}")
|
||||
if ((NOT "${RELEASE_TYPE}" STREQUAL "PRODUCTION") AND (NOT "${RELEASE_TYPE}" STREQUAL "PR"))
|
||||
set(RELEASE_TYPE "DEV")
|
||||
endif()
|
||||
|
||||
# OVERTE_OPTIMIZE
|
||||
# Variable determining Overte optimization. If not set, it defaults to true.
|
||||
# Should be set to false to get completely unoptimized build for easier line-by-line debugging
|
||||
|
||||
#
|
||||
# Default compiler flags
|
||||
#
|
||||
# Compiler flags need to be set before calling project().
|
||||
if( NOT WIN32 )
|
||||
if(NOT DEFINED OVERTE_OPTIMIZE)
|
||||
message("Enabling code optimization for Overte and compiled dependencies")
|
||||
set(OVERTE_OPTIMIZE true CACHE BOOL "Enable code optimization for Overte and compiled dependencies")
|
||||
endif()
|
||||
|
||||
set(OVERTE_OPTIMIZE_FLAGS "")
|
||||
|
||||
if(OVERTE_OPTIMIZE)
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
message("Clang compiler detected, adding -O3 -fPIC -g flags")
|
||||
set(OVERTE_OPTIMIZE_FLAGS "-O3 -fPIC -g")
|
||||
elseif (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
message("GCC compiler detected, adding -O3 -fPIC -ggdb flags")
|
||||
set(OVERTE_OPTIMIZE_FLAGS "-O3 -fPIC -ggdb")
|
||||
else()
|
||||
message("No predefined optimization flags for compiler ${CMAKE_CXX_COMPILER_ID}")
|
||||
endif()
|
||||
endif()
|
||||
MESSAGE(STATUS "OVERTE_OPTIMIZE: ${OVERTE_OPTIMIZE}")
|
||||
|
||||
# OVERTE_CPU_ARCHITECTURE
|
||||
# Variable determining CPU architecture for which Overte will be built.
|
||||
# If defined, it's appended to CXXFLAGS and CFLAGS for Overte
|
||||
|
||||
#Assume -march=native for compilers that allow it if architecture is not specified
|
||||
if(NOT DEFINED OVERTE_CPU_ARCHITECTURE)
|
||||
if(OVERTE_OPTIMIZE AND ( (CMAKE_CXX_COMPILER_ID MATCHES "Clang") OR (CMAKE_CXX_COMPILER_ID MATCHES "GNU") ) )
|
||||
message("Optimization is enabled, but architecture is not specified. Assuming native build")
|
||||
set(OVERTE_CPU_ARCHITECTURE "-march=native -mtune=native" CACHE STRING "Specify architecture dependent compiler flags here")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(DEFINED OVERTE_CPU_ARCHITECTURE)
|
||||
set(OVERTE_OPTIMIZE_FLAGS "${OVERTE_OPTIMIZE_FLAGS} ${OVERTE_CPU_ARCHITECTURE}")
|
||||
message("Adding CPU architecture flags: ${OVERTE_CPU_ARCHITECTURE}")
|
||||
MESSAGE(STATUS "OVERTE_CPU_ARCHITECTURE: ${OVERTE_CPU_ARCHITECTURE}")
|
||||
endif()
|
||||
|
||||
# Function alignment is necessary for V8.
|
||||
# SetAlignedPointerInInternalField requires at least 2 byte alignment and -falign-functions will set alignment
|
||||
# to machine specific value which should be greater than 2.
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OVERTE_OPTIMIZE_FLAGS} -falign-functions")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OVERTE_OPTIMIZE_FLAGS} -falign-functions")
|
||||
|
||||
set(ENV{CXXFLAGS} "$ENV{CXXFLAGS} ${OVERTE_OPTIMIZE_FLAGS} -falign-functions")
|
||||
set(ENV{CFLAGS} "$ENV{CFLAGS} ${OVERTE_OPTIMIZE_FLAGS} -falign-functions")
|
||||
message($ENV{CXXFLAGS})
|
||||
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
||||
set(CMAKE_CXX_FLAGS "-falign-functions -fPIC -m64 -msse3" CACHE STRING "C++ compiler flags for all build types.")
|
||||
set(CMAKE_C_FLAGS "-falign-functions -fPIC -m64 -msse3" CACHE STRING "C compiler flags for all build types.")
|
||||
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
||||
# TODO: Find out which architecture optimizations to use on aarch64.
|
||||
# We should probably target the 64bit version of the Raspberry Pi 2 as minimum.
|
||||
set(CMAKE_CXX_FLAGS "-falign-functions -fPIC" CACHE STRING "C++ compiler flags for all build types.")
|
||||
set(CMAKE_C_FLAGS "-falign-functions -fPIC" CACHE STRING "C++ compiler flags for all build types.")
|
||||
endif()
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
message("Clang compiler detected, setting default flags.")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-Og -g" CACHE STRING "C++ compiler flags for Debug builds.")
|
||||
set(CMAKE_C_FLAGS_DEBUG "-Og -g" CACHE STRING "C compiler flags for Debug builds.")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -DNDEBUG -g" CACHE STRING "C++ compiler flags for RelWithDebInfo builds.")
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -DNDEBUG -g" CACHE STRING "C compiler flags for RelWithDebInfo builds.")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "C++ compiler flags for Release builds.")
|
||||
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "C compiler flags for Release builds.")
|
||||
elseif (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
message("GCC compiler detected, setting default flags")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-Og -ggdb3" CACHE STRING "C++ compiler flags for Debug builds.")
|
||||
set(CMAKE_C_FLAGS_DEBUG "-Og -ggdb3" CACHE STRING "C compiler flags for Debug builds.")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -DNDEBUG -ggdb2" CACHE STRING "C++ compiler flags for RelWithDebInfo builds.")
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -DNDEBUG -ggdb2" CACHE STRING "C compiler flags for RelWithDebInfo builds.")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "C++ compiler flags for Release builds.")
|
||||
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "C compiler flags for Release builds.")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
#
|
||||
# OVERTE_WARNINGS
|
||||
#
|
||||
# Here we add the ability to allowlist warnings we've determined we can't fix, or are safe to
|
||||
|
@ -101,14 +72,7 @@ endif()
|
|||
#
|
||||
# We can also treat warnings as errors. Without the allowlist this will almost certainly lead
|
||||
# to a build failure.
|
||||
|
||||
if(NOT DEFINED OVERTE_WARNINGS_ALLOWLIST)
|
||||
set(OVERTE_WARNINGS_ALLOWLIST true CACHE BOOL "Allowlist some warnings we can't currently fix")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED OVERTE_WARNINGS_AS_ERRORS)
|
||||
set(OVERTE_WARNINGS_AS_ERRORS false CACHE BOOL "Count warnings as errors")
|
||||
endif()
|
||||
set(OVERTE_WARNINGS_ALLOWLIST ON CACHE BOOL "Allowlist some warnings we can't currently fix.")
|
||||
|
||||
if(OVERTE_WARNINGS_ALLOWLIST)
|
||||
if (NOT WIN32)
|
||||
|
@ -130,14 +94,13 @@ if(OVERTE_WARNINGS_ALLOWLIST)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
if(OVERTE_WARNINGS_AS_ERRORS)
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC" OR (CMAKE_CXX_COMPILER_ID MATCHES "" AND WIN32))
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
|
||||
set(CMAKE_CFLAGS "${CMAKE_CFLAGS} /WX")
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
|
||||
set(CMAKE_CFLAGS "${CMAKE_CFLAGS} -Werror")
|
||||
endif()
|
||||
# Enabling warnings-as-errors by default on our Linux target and on Windows.
|
||||
# Our current Linux development target is Ubuntu 22.04, which uses GCC 11.2.
|
||||
# TODO: Enable warnings-as-errors once we stop throwing warnings on the relevant platforms.
|
||||
if ((CMAKE_CXX_COMPILER_ID MATCHES "GNU") AND (CMAKE_CXX_COMPILER_VERSION MATCHES "11"))
|
||||
set(COMPILE_WARNING_AS_ERROR OFF CACHE BOOL "")
|
||||
elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") # Windows
|
||||
set(COMPILE_WARNING_AS_ERROR OFF CACHE BOOL "")
|
||||
endif()
|
||||
|
||||
|
||||
|
@ -145,52 +108,43 @@ project(overte)
|
|||
include("cmake/init.cmake")
|
||||
include("cmake/compiler.cmake")
|
||||
|
||||
if (NOT DEFINED CLIENT_ONLY)
|
||||
set(CLIENT_ONLY 0)
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED SERVER_ONLY)
|
||||
set(SERVER_ONLY 0)
|
||||
endif()
|
||||
|
||||
if (ANDROID OR UWP)
|
||||
set(MOBILE 1)
|
||||
#
|
||||
# Overte build variables
|
||||
#
|
||||
set(OVERTE_BUILD_CLIENT ON CACHE BOOL "Build Interface.")
|
||||
set(OVERTE_BUILD_SERVER ON CACHE BOOL "Build domain-server, assignment-client, and ice-server.")
|
||||
set(OVERTE_BUILD_TESTS OFF CACHE BOOL "Build tests.")
|
||||
set(OVERTE_BUILD_MANUAL_TESTS OFF CACHE BOOL "Build manual tests.")
|
||||
set(OVERTE_BUILD_TOOLS ON CACHE BOOL "Build tools. Includes Oven, which is used for some server functionality.")
|
||||
set(OVERTE_BUILD_INSTALLER ON CACHE BOOL "Build installer.")
|
||||
set(OVERTE_DISABLE_QML OFF CACHE BOOL "Build without QML. (For graphics debugging.)")
|
||||
set(OVERTE_DOWNLOAD_SERVERLESS_CONTENT OFF CACHE BOOL "Download and setup default serverless content beside Interface.")
|
||||
# use OpenGL ES on Linux aarch64 and Android.
|
||||
if ((CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") OR ANDROID)
|
||||
# TODO: Change to GLES on aarch64 once GLES builds again.
|
||||
#set(OVERTE_RENDERING_BACKEND "GLES" CACHE STRING "Which rendering backend to compile with. Valid options are: 'OpenGL', 'GLES', and 'Vulkan'.")
|
||||
set(OVERTE_RENDERING_BACKEND "OpenGL" CACHE STRING "Which rendering backend to compile with. Valid options are: 'OpenGL', 'GLES', and 'Vulkan'.")
|
||||
else()
|
||||
set(MOBILE 0)
|
||||
set(OVERTE_RENDERING_BACKEND "OpenGL" CACHE STRING "Which rendering backend to compile with. Valid options are: 'OpenGL', 'GLES', and 'Vulkan'.")
|
||||
endif()
|
||||
set(OVERTE_EXTERNAL_BUILD_ASSETS "https://build-deps.overte.org" CACHE INTERNAL "")
|
||||
set(OVERTE_TIMESERVER_URL "http://timestamp.comodoca.com?td=sha256" CACHE STRING "URL to timeserver used for signing executables.")
|
||||
set(OVERTE_USE_OPTIMIZED_IK OFF CACHE BOOL "Use optimized IK.")
|
||||
set(OVERTE_DISABLE_KTX_CACHE OFF CACHE BOOL "Disable KTX Cache.")
|
||||
set(OVERTE_USE_KHR_ROBUSTNESS OFF CACHE BOOL "Use KHR_robustness.")
|
||||
|
||||
|
||||
|
||||
# Use default time server if none defined in environment
|
||||
set_from_env(TIMESERVER_URL TIMESERVER_URL "http://timestamp.comodoca.com?td=sha256")
|
||||
|
||||
set(HIFI_USE_OPTIMIZED_IK_OPTION OFF)
|
||||
set(BUILD_CLIENT_OPTION ON)
|
||||
set(BUILD_SERVER_OPTION ON)
|
||||
set(BUILD_TESTS_OPTION OFF)
|
||||
set(BUILD_MANUAL_TESTS_OPTION ${BUILD_TESTS_OPTION})
|
||||
set(BUILD_TOOLS_OPTION ON)
|
||||
set(BUILD_INSTALLER_OPTION ON)
|
||||
set(DISABLE_QML_OPTION OFF)
|
||||
set(DOWNLOAD_SERVERLESS_CONTENT_OPTION OFF)
|
||||
set(OVERTE_BACKTRACE_URL "" CACHE STRING "URL to an endpoint for uploading crash-dumps. For example Sentry.")
|
||||
set(OVERTE_BACKTRACE_TOKEN "" CACHE STRING "Token used to identify this build, for use in uploading crash-dumps.")
|
||||
|
||||
if (ANDROID OR UWP)
|
||||
set(BUILD_SERVER_OPTION OFF)
|
||||
set(BUILD_TOOLS_OPTION OFF)
|
||||
set(BUILD_INSTALLER OFF)
|
||||
endif()
|
||||
|
||||
if (CLIENT_ONLY)
|
||||
set(BUILD_SERVER_OPTION OFF)
|
||||
endif()
|
||||
|
||||
if (SERVER_ONLY)
|
||||
set(BUILD_CLIENT_OPTION OFF)
|
||||
set(BUILD_TESTS_OPTION OFF)
|
||||
set(OVERTE_BUILD_SERVER OFF CACHE BOOL FORCE "Overwritten (mobile build)")
|
||||
set(OVERTE_BUILD_TOOLS OFF CACHE BOOL FORCE "Overwritten (mobile build)")
|
||||
set(OVERTE_BUILD_INSTALLER OFF CACHE BOOL FORCE "Overwritten (mobile build)")
|
||||
endif()
|
||||
|
||||
if (ANDROID)
|
||||
set(GLES_OPTION ON)
|
||||
set(PLATFORM_QT_COMPONENTS AndroidExtras WebView)
|
||||
add_definitions(-DHIFI_ANDROID_APP=\"${HIFI_ANDROID_APP}\")
|
||||
if (
|
||||
|
@ -221,71 +175,62 @@ if (ANDROID)
|
|||
endif()
|
||||
else ()
|
||||
set(PLATFORM_QT_COMPONENTS WebEngine Xml)
|
||||
endif ()
|
||||
|
||||
if (USE_GLES AND (NOT ANDROID AND NOT UNIX))
|
||||
set(DISABLE_QML_OPTION ON)
|
||||
endif()
|
||||
|
||||
option(HIFI_USE_OPTIMIZED_IK "Use optimized IK" ${HIFI_USE_OPTIMIZED_IK_OPTION})
|
||||
option(BUILD_CLIENT "Build client components" ${BUILD_CLIENT_OPTION})
|
||||
option(BUILD_SERVER "Build server components" ${BUILD_SERVER_OPTION})
|
||||
option(BUILD_TESTS "Build tests" ${BUILD_TESTS_OPTION})
|
||||
option(BUILD_MANUAL_TESTS "Build manual tests" ${BUILD_MANUAL_TESTS_OPTION})
|
||||
option(BUILD_TOOLS "Build tools" ${BUILD_TOOLS_OPTION})
|
||||
option(BUILD_INSTALLER "Build installer" ${BUILD_INSTALLER_OPTION})
|
||||
option(USE_GLES "Use OpenGL ES" ${GLES_OPTION})
|
||||
option(USE_KHR_ROBUSTNESS "Use KHR_robustness" OFF)
|
||||
option(DISABLE_QML "Disable QML" ${DISABLE_QML_OPTION})
|
||||
option(DISABLE_KTX_CACHE "Disable KTX Cache" OFF)
|
||||
option(
|
||||
DOWNLOAD_SERVERLESS_CONTENT
|
||||
"Download and setup default serverless content beside Interface"
|
||||
${DOWNLOAD_SERVERLESS_CONTENT_OPTION}
|
||||
)
|
||||
|
||||
set(PLATFORM_QT_GL OpenGL)
|
||||
|
||||
if (USE_KHR_ROBUSTNESS)
|
||||
if (OVERTE_USE_KHR_ROBUSTNESS)
|
||||
add_definitions(-DUSE_KHR_ROBUSTNESS)
|
||||
endif()
|
||||
|
||||
if (USE_GLES)
|
||||
add_definitions(-DUSE_GLES)
|
||||
add_definitions(-DGPU_POINTER_STORAGE_SHARED)
|
||||
set(PLATFORM_GL_BACKEND gpu-gl-common gpu-gles)
|
||||
if (OVERTE_RENDERING_BACKEND STREQUAL "GLES")
|
||||
add_definitions(-DUSE_GLES)
|
||||
add_definitions(-DGPU_POINTER_STORAGE_SHARED)
|
||||
set(PLATFORM_GL_BACKEND gpu-gl-common gpu-gles)
|
||||
elseif (OVERTE_RENDERING_BACKEND STREQUAL "OpenGL")
|
||||
add_definitions(-DGPU_POINTER_STORAGE_RAW)
|
||||
set(PLATFORM_GL_BACKEND gpu-gl-common gpu-gl)
|
||||
elseif (OVERTE_RENDERING_BACKEND STREQUAL "Vulkan")
|
||||
# TODO
|
||||
message(FATAL_ERROR "Vulkan backend selected, but not implemented yet.")
|
||||
else()
|
||||
add_definitions(-DGPU_POINTER_STORAGE_RAW)
|
||||
set(PLATFORM_GL_BACKEND gpu-gl-common gpu-gl)
|
||||
message(FATAL_ERROR "Invalid OVERTE_RENDERING_BACKEND set. Expected 'GLES', 'OpenGL', or 'Vulkan'. Got '${OVERTE_RENDERING_BACKEND}'")
|
||||
endif()
|
||||
|
||||
foreach(PLATFORM_QT_COMPONENT ${PLATFORM_QT_COMPONENTS})
|
||||
list(APPEND PLATFORM_QT_LIBRARIES "Qt5::${PLATFORM_QT_COMPONENT}")
|
||||
endforeach()
|
||||
|
||||
MESSAGE(STATUS "Use optimized IK: " ${HIFI_USE_OPTIMIZED_IK})
|
||||
MESSAGE(STATUS "Build server: " ${BUILD_SERVER})
|
||||
MESSAGE(STATUS "Build client: " ${BUILD_CLIENT})
|
||||
MESSAGE(STATUS "Build tests: " ${BUILD_TESTS})
|
||||
MESSAGE(STATUS "Build tools: " ${BUILD_TOOLS})
|
||||
MESSAGE(STATUS "Build installer: " ${BUILD_INSTALLER})
|
||||
MESSAGE(STATUS "GL ES: " ${USE_GLES})
|
||||
MESSAGE(STATUS "DL serverless content: " ${DOWNLOAD_SERVERLESS_CONTENT})
|
||||
message(STATUS "Use optimized IK: " ${OVERTE_USE_OPTIMIZED_IK})
|
||||
message(STATUS "Build server: " ${OVERTE_BUILD_SERVER})
|
||||
message(STATUS "Build client: " ${OVERTE_BUILD_CLIENT})
|
||||
message(STATUS "Build tests: " ${OVERTE_BUILD_TESTS})
|
||||
message(STATUS "Build tools: " ${OVERTE_BUILD_TOOLS})
|
||||
message(STATUS "Build installer: " ${OVERTE_BUILD_INSTALLER})
|
||||
message(STATUS "Rendering backend: " ${OVERTE_RENDERING_BACKEND})
|
||||
message(STATUS "DL serverless content: " ${OVERTE_DOWNLOAD_SERVERLESS_CONTENT})
|
||||
|
||||
if (DISABLE_QML)
|
||||
MESSAGE(STATUS "QML disabled!")
|
||||
add_definitions(-DDISABLE_QML)
|
||||
if (OVERTE_DISABLE_QML)
|
||||
message(STATUS "QML disabled!")
|
||||
add_definitions(-DDISABLE_QML)
|
||||
endif()
|
||||
|
||||
if (DISABLE_KTX_CACHE)
|
||||
MESSAGE(STATUS "KTX cache disabled!")
|
||||
add_definitions(-DDISABLE_KTX_CACHE)
|
||||
if (OVERTE_DISABLE_KTX_CACHE)
|
||||
message(STATUS "KTX cache disabled!")
|
||||
add_definitions(-DDISABLE_KTX_CACHE)
|
||||
endif()
|
||||
|
||||
if (UNIX AND DEFINED ENV{HIFI_MEMORY_DEBUGGING})
|
||||
MESSAGE(STATUS "Memory debugging is enabled")
|
||||
endif()
|
||||
|
||||
# Set SERVER_ONLY and CLIENT_ONLY for later packaging.
|
||||
if ((NOT OVERTE_BUILD_CLIENT) AND OVERTE_BUILD_SERVER)
|
||||
set(SERVER_ONLY ON CACHE BOOL INTERNAL "")
|
||||
elseif ((NOT OVERTE_BUILD_SERVER) AND OVERTE_BUILD_CLIENT)
|
||||
set(CLIENT_ONLY ON CACHE BOOL INTERNAL "")
|
||||
endif()
|
||||
|
||||
|
||||
#
|
||||
# Helper projects
|
||||
#
|
||||
|
@ -327,14 +272,9 @@ add_definitions(-DGLM_FORCE_RADIANS)
|
|||
add_definitions(-DGLM_ENABLE_EXPERIMENTAL)
|
||||
add_definitions(-DGLM_FORCE_CTOR_INIT)
|
||||
|
||||
if (WIN32)
|
||||
# Deal with fakakta Visual Studo 2017 bug
|
||||
add_definitions(-DQT_NO_FLOAT16_OPERATORS -DWIN32)
|
||||
endif()
|
||||
|
||||
if (HIFI_USE_OPTIMIZED_IK)
|
||||
MESSAGE(STATUS "SET THE USE IK DEFINITION ")
|
||||
add_definitions(-DHIFI_USE_OPTIMIZED_IK)
|
||||
if (OVERTE_USE_OPTIMIZED_IK)
|
||||
message(STATUS "Setting definition for using optimized inverse kinematics.")
|
||||
add_definitions(-DHIFI_USE_OPTIMIZED_IK)
|
||||
endif()
|
||||
set(HIFI_LIBRARY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries")
|
||||
|
||||
|
@ -342,7 +282,7 @@ set(EXTERNAL_PROJECT_PREFIX "project")
|
|||
set_property(DIRECTORY PROPERTY EP_PREFIX ${EXTERNAL_PROJECT_PREFIX})
|
||||
setup_externals_binary_dir()
|
||||
|
||||
option(USE_NSIGHT "Attempt to find the nSight libraries" 1)
|
||||
set(OVERTE_USE_NSIGHT ON CACHE BOOL "Attempt to find the Nvidia nSight libraries.")
|
||||
|
||||
# FIXME hack to work on the proper Android toolchain
|
||||
if (ANDROID)
|
||||
|
@ -355,11 +295,11 @@ if (BUILD_GPU_FRAME_PLAYER_ONLY)
|
|||
add_subdirectory(tools/gpu-frame-player)
|
||||
else()
|
||||
|
||||
# BUILD_TOOLS option will be handled inside the tools's CMakeLists.txt because 'scribe' tool is required for build anyway
|
||||
# OVERTE_BUILD_TOOLS option will be handled inside the tools's CMakeLists.txt because 'scribe' tool is required for build anyway
|
||||
add_subdirectory(tools)
|
||||
|
||||
# add subdirectories for all targets
|
||||
if (BUILD_SERVER)
|
||||
if (OVERTE_BUILD_SERVER)
|
||||
add_subdirectory(assignment-client)
|
||||
set_target_properties(assignment-client PROPERTIES FOLDER "Apps")
|
||||
add_subdirectory(domain-server)
|
||||
|
@ -368,7 +308,7 @@ if (BUILD_SERVER)
|
|||
set_target_properties(ice-server PROPERTIES FOLDER "Apps")
|
||||
endif()
|
||||
|
||||
if (BUILD_CLIENT)
|
||||
if (OVERTE_BUILD_CLIENT)
|
||||
add_subdirectory(interface)
|
||||
if (APPLE)
|
||||
set_target_properties(Overte PROPERTIES FOLDER "Apps")
|
||||
|
@ -380,25 +320,25 @@ if (BUILD_CLIENT)
|
|||
option(USE_NEURON "Build Interface with Neuron library/plugin" OFF)
|
||||
endif()
|
||||
|
||||
if (BUILD_CLIENT OR BUILD_SERVER)
|
||||
if (OVERTE_BUILD_CLIENT OR OVERTE_BUILD_SERVER)
|
||||
add_subdirectory(plugins)
|
||||
add_subdirectory(server-console)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
if (BUILD_TESTS)
|
||||
if (OVERTE_BUILD_TESTS)
|
||||
# Turn on testing so that add_test works
|
||||
# MUST be in the root cmake file for ctest to work
|
||||
include(CTest)
|
||||
enable_testing()
|
||||
add_subdirectory(tests)
|
||||
if (BUILD_MANUAL_TESTS)
|
||||
if (OVERTE_BUILD_MANUAL_TESTS)
|
||||
add_subdirectory(tests-manual)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (BUILD_INSTALLER)
|
||||
if (OVERTE_BUILD_INSTALLER)
|
||||
if (UNIX)
|
||||
install(
|
||||
DIRECTORY "${CMAKE_SOURCE_DIR}/scripts"
|
||||
|
|
52
INSTALLER.md
52
INSTALLER.md
|
@ -13,7 +13,7 @@ Follow the [build guide](BUILD.md) to figure out how to build Overte for your pl
|
|||
|
||||
During generation, CMake should produce an `install` target and a `package` target.
|
||||
|
||||
The `install` target will copy the Overte targets and their dependencies to your `CMAKE_INSTALL_PREFIX`.
|
||||
The `install` target will copy the Overte targets and their dependencies to your `CMAKE_INSTALL_PREFIX`.
|
||||
This variable is set by the `project(hifi)` command in `CMakeLists.txt` to `C:/Program Files/hifi` and stored in `build/CMakeCache.txt`
|
||||
|
||||
## Packaging
|
||||
|
@ -26,9 +26,9 @@ To produce an installer, run the `package` target. However you will want to foll
|
|||
|
||||
To produce an executable installer on Windows, the following are required:
|
||||
|
||||
1. [7-zip](<https://www.7-zip.org/download.html>)
|
||||
1. [7-zip](<https://www.7-zip.org/download.html>)
|
||||
|
||||
1. [Nullsoft Scriptable Install System](http://nsis.sourceforge.net/Download) - 3.04
|
||||
1. [Nullsoft Scriptable Install System](http://nsis.sourceforge.net/Download) - 3.04
|
||||
Install using defaults (will install to `C:\Program Files (x86)\NSIS`)
|
||||
1. [NSIS Plugins](https://build-deps.overte.org/conan/nsis-overte-plugins/NSIS-hifi-plugins-1.0.zip)
|
||||
Copy contents to `C:\Program Files (x86)\NSIS\`.
|
||||
|
@ -38,39 +38,39 @@ To produce an executable installer on Windows, the following are required:
|
|||
1. Copy `UAC.nsh` to `C:\Program Files (x86)\NSIS\Include\`
|
||||
1. Copy `Plugins\x86-ansi\UAC.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-ansi\`
|
||||
1. Copy `Plugins\x86-unicode\UAC.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-unicode\`
|
||||
|
||||
|
||||
1. [nsProcess Plug-in for Nullsoft](http://nsis.sourceforge.net/NsProcess_plugin) - 1.6 (use the link marked **nsProcess_1_6.7z**)
|
||||
1. Extract Zip
|
||||
1. Copy `Include\nsProcess.nsh` to `C:\Program Files (x86)\NSIS\Include\`
|
||||
1. Copy `Plugins\nsProcess.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-ansi\`
|
||||
1. Copy `Plugins\nsProcessW.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-unicode\`
|
||||
|
||||
|
||||
1. [InetC Plug-in for Nullsoft](http://nsis.sourceforge.net/Inetc_plug-in) - 1.0
|
||||
1. Extract Zip
|
||||
1. Copy `Plugin\x86-ansi\InetC.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-ansi\`
|
||||
1. Copy `Plugin\x86-unicode\InetC.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-unicode\`
|
||||
|
||||
|
||||
1. [NSISpcre Plug-in for Nullsoft](http://nsis.sourceforge.net/NSISpcre_plug-in) - 1.0
|
||||
1. Extract Zip
|
||||
1. Copy `NSISpre.nsh` to `C:\Program Files (x86)\NSIS\Include\`
|
||||
1. Copy `NSISpre.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-ansi\`
|
||||
|
||||
|
||||
1. [nsisSlideshow Plug-in for Nullsoft](<http://wiz0u.free.fr/prog/nsisSlideshow/>) - 1.7
|
||||
1. Extract Zip
|
||||
1. Copy `bin\nsisSlideshow.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-ansi\`
|
||||
1. Copy `bin\nsisSlideshowW.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-unicode\`
|
||||
|
||||
|
||||
1. [Nsisunz plug-in for Nullsoft](http://nsis.sourceforge.net/Nsisunz_plug-in)
|
||||
1. Download both Zips and unzip
|
||||
1. Copy `nsisunz\Release\nsisunz.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-ansi\`
|
||||
1. Copy `NSISunzU\Plugin unicode\nsisunz.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-unicode\`
|
||||
|
||||
|
||||
1. [ApplicationID plug-in for Nullsoft]() - 1.0
|
||||
1. Download [`Pre-built DLLs`](<https://github.com/connectiblutz/NSIS-ApplicationID/releases/download/1.1/NSIS-ApplicationID.zip>)
|
||||
1. Extract Zip
|
||||
1. Copy `Release\ApplicationID.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-ansi\`
|
||||
1. Copy `ReleaseUnicode\ApplicationID.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-unicode\`
|
||||
|
||||
|
||||
1. [Node.JS and NPM](https://nodejs.org/en/download/)
|
||||
1. Install version 10.15.0 LTS (or greater)
|
||||
#### Code Signing (optional)
|
||||
|
@ -78,15 +78,15 @@ To produce an executable installer on Windows, the following are required:
|
|||
For code signing to work, you will need to set the `HF_PFX_FILE` and `HF_PFX_PASSPHRASE` environment variables to be present during CMake runtime and globally as we proceed to package the installer.
|
||||
|
||||
#### Creating the Installer
|
||||
|
||||
|
||||
1. Perform a clean cmake from a new terminal.
|
||||
1. Open the `overte.sln` solution with elevated (administrator) permissions on Visual Studio and select the **Release** configuration.
|
||||
1. Build the solution.
|
||||
1. Build `packaged-server-console-npm-install` (found under **hidden/Server Console**)
|
||||
1. Build `packaged-server-console` (found under **Server Console**)
|
||||
This will add 2 folders to `build\server-console\` -
|
||||
1. Build `packaged-server-console` (found under **Server Console**)
|
||||
This will add 2 folders to `build\server-console\` -
|
||||
`server-console-win32-x64` and `x64`
|
||||
1. Build CMakeTargets->PACKAGE
|
||||
1. Build CMakeTargets->PACKAGE
|
||||
The installer is now available in `build\_CPack_Packages\win64\NSIS`
|
||||
|
||||
#### Create an MSIX Package
|
||||
|
@ -109,15 +109,15 @@ For code signing to work, you will need to set the `HF_PFX_FILE` and `HF_PFX_PAS
|
|||
1. Ensure you have all the prerequisites fulfilled from the [MacOS Build Guide](BUILD_OSX.md).
|
||||
2. Perform a clean CMake in your build folder. e.g.
|
||||
```bash
|
||||
BUILD_GLOBAL_SERVICES=STABLE USE_STABLE_GLOBAL_SERVICES=1 RELEASE_BUILD=PRODUCTION BUILD_NUMBER="Insert Build Identifier here e.g. short hash of your last Git commit" STABLE_BUILD=1 PRODUCTION_BUILD=1 RELEASE_NUMBER="Insert Release Version Here e.g. 1.1.0" RELEASE_TYPE=PRODUCTION cmake -DCMAKE_OSX_SYSROOT="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk" -DCLIENT_ONLY=1 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOSX_SDK=10.12 ..
|
||||
cmake -DOVERTE_GIT_COMMIT_SHORT="Insert short hash of your last Git commit" -DOVERTE_RELEASE_NUMBER="Insert Release Version Here e.g. 1.1.0" -DOVERTE_RELEASE_TYPE=PRODUCTION -DCMAKE_OSX_SYSROOT="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk" -DOVERTE_BUILD_SERVER=0 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOSX_SDK=10.12 ..
|
||||
```
|
||||
3. Pick a method to build and package your release.
|
||||
|
||||
#### Option A: Use Xcode GUI
|
||||
|
||||
1. Perform a Release build of ALL_BUILD
|
||||
2. Perform a Release build of `packaged-server-console`
|
||||
This will add a folder to `build\server-console\` -
|
||||
2. Perform a Release build of `packaged-server-console`
|
||||
This will add a folder to `build\server-console\` -
|
||||
Sandbox-darwin-x64
|
||||
3. Perform a Release build of `package`
|
||||
Installer is now available in `build/_CPack_Packages/Darwin/DragNDrop`
|
||||
|
@ -140,9 +140,9 @@ Overte Interface AppImages are built using [linuxdeploy](https://github.com/linu
|
|||
1. Prepare build environment
|
||||
Follow the [Linux build guide](BUILD_LINUX.md).
|
||||
|
||||
2. Configure Interface (**Make sure that OVERTE_CPU_ARCHITECTURE is set to an empty string or `-msse3` depending on target CPU architecture!**)
|
||||
2. Configure Interface
|
||||
```bash
|
||||
cmake --preset conan-release -DOVERTE_CPU_ARCHITECTURE=-msse3
|
||||
cmake --preset conan-release
|
||||
```
|
||||
|
||||
3. Create AppImage
|
||||
|
@ -180,7 +180,7 @@ Overte Interface AppImages are built using [linuxdeploy](https://github.com/linu
|
|||
1. Build Docker image as instructed in the relevant Dockerfile in [tools/ci-scripts/deb_package/](tools/ci-scripts/deb_package/)
|
||||
|
||||
2. Create/Start container
|
||||
Example: `docker run -v $(pwd)/../../..:/overte -it overte/overte-server-build:0.1.2-debian-11-amd64`
|
||||
Example: `docker run -v $(pwd)/../../..:/overte -it overte/overte-server-build:0.1.2-debian-11-amd64`
|
||||
|
||||
3. Prepare build environment
|
||||
```bash
|
||||
|
@ -188,10 +188,7 @@ cd overte
|
|||
mkdir build
|
||||
rm -rf build/*
|
||||
conan install . -s build_type=Release -b missing -pr:b=default -of build
|
||||
```
|
||||
Add `PRODUCTION_BUILD=1` to below command for release and release candidate builds.
|
||||
```bash
|
||||
cmake --preset conan-release -DOVERTE_CPU_ARCHITECTURE=-msse3
|
||||
cmake --preset conan-release -DOVERTE_BUILD_CLIENT=false -DOVERTE_BUILD_TOOLS=true
|
||||
```
|
||||
|
||||
4. Build
|
||||
|
@ -212,7 +209,7 @@ DEBVERSION="1-experimental-debian-11" DEBEMAIL="julian.gro@overte.org" DEBFULLNA
|
|||
1. Build Docker image as instructed in the relevant Dockerfile in [tools/ci-scripts/rpm_package/](tools/ci-scripts/rpm_package/)
|
||||
|
||||
2. Create/Start container
|
||||
Example: `docker run -v $(pwd)/../../..:/overte -it overte/overte-server-build:0.1.2-fedora-36-amd64`
|
||||
Example: `docker run -v $(pwd)/../../..:/overte -it overte/overte-server-build:0.1.2-fedora-36-amd64`
|
||||
|
||||
3. Prepare build environment
|
||||
```bash
|
||||
|
@ -220,10 +217,7 @@ cd overte
|
|||
mkdir build
|
||||
rm -rf build/*
|
||||
conan install . -s build_type=Release -b missing -pr:b=default -of build
|
||||
```
|
||||
Add `PRODUCTION_BUILD=1` to below command for release and release candidate builds.
|
||||
```bash
|
||||
cmake --preset conan-release -DOVERTE_CPU_ARCHITECTURE=-msse3 -DSERVER_ONLY=true -DBUILD_TOOLS=true
|
||||
cmake --preset conan-release -DOVERTE_BUILD_CLIENT=false -DOVERTE_BUILD_TOOLS=true
|
||||
```
|
||||
|
||||
4. Build
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Copyright 2013-2019 High Fidelity, Inc.
|
||||
# Copyright 2021-2022 Overte e.V.
|
||||
# Copyright 2021-2025 Overte e.V.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
set(TARGET_NAME assignment-client)
|
||||
|
@ -27,7 +27,7 @@ include_hifi_library_headers(entities)
|
|||
add_crashpad()
|
||||
target_breakpad()
|
||||
|
||||
if (BUILD_TOOLS)
|
||||
if (OVERTE_BUILD_TOOLS)
|
||||
add_dependencies(${TARGET_NAME} oven)
|
||||
|
||||
if (WIN32)
|
||||
|
@ -43,7 +43,7 @@ if (BUILD_TOOLS)
|
|||
$<TARGET_FILE:oven>
|
||||
$<TARGET_FILE_DIR:${TARGET_NAME}>/oven)
|
||||
endif()
|
||||
endif (BUILD_TOOLS)
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
package_libraries_for_deployment()
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG")
|
||||
if (WIN32)
|
||||
# Building with webrtc-audio-processing on Windows fails on cppstd 14.
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
else ()
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
endif ()
|
||||
# Building with webrtc-audio-processing fails on cppstd 14.
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
if (NOT "${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#
|
||||
# Created by Clement Brisset on 01/19/18.
|
||||
# Copyright 2018 High Fidelity, Inc.
|
||||
# Copyright 2025 Overte e.V.
|
||||
#
|
||||
# Distributed under the Apache License, Version 2.0.
|
||||
# See the accompanying file LICENSE or http:#www.apache.org/licenses/LICENSE-2.0.html
|
||||
|
@ -13,18 +14,14 @@ macro(add_crashpad)
|
|||
set (USE_CRASHPAD TRUE)
|
||||
message(STATUS "Checking crashpad config")
|
||||
|
||||
if ("$ENV{CMAKE_BACKTRACE_URL}" STREQUAL "")
|
||||
message(STATUS "Checking crashpad config - CMAKE_BACKTRACE_URL is not set, disabled.")
|
||||
if (OVERTE_BACKTRACE_URL STREQUAL "")
|
||||
message(STATUS "Checking crashpad config - -DOVERTE_BACKTRACE_URL is empty, disabled.")
|
||||
set(USE_CRASHPAD FALSE)
|
||||
else()
|
||||
set(CMAKE_BACKTRACE_URL $ENV{CMAKE_BACKTRACE_URL})
|
||||
endif()
|
||||
|
||||
if ("$ENV{CMAKE_BACKTRACE_TOKEN}" STREQUAL "")
|
||||
message(STATUS "Checking crashpad config - CMAKE_BACKTRACE_TOKEN is not set, disabled.")
|
||||
if (OVERTE_BACKTRACE_TOKEN STREQUAL "")
|
||||
message(STATUS "Checking crashpad config - -DOVERTE_BACKTRACE_TOKEN is empty, disabled.")
|
||||
set(USE_CRASHPAD FALSE)
|
||||
else()
|
||||
set(CMAKE_BACKTRACE_TOKEN $ENV{CMAKE_BACKTRACE_TOKEN})
|
||||
endif()
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
||||
|
@ -42,8 +39,8 @@ macro(add_crashpad)
|
|||
endif()
|
||||
|
||||
add_definitions(-DHAS_CRASHPAD)
|
||||
add_definitions(-DCMAKE_BACKTRACE_URL=\"${CMAKE_BACKTRACE_URL}\")
|
||||
add_definitions(-DCMAKE_BACKTRACE_TOKEN=\"${CMAKE_BACKTRACE_TOKEN}\")
|
||||
add_definitions(-DOVERTE_BACKTRACE_URL=\"${OVERTE_BACKTRACE_URL}\")
|
||||
add_definitions(-DOVERTE_BACKTRACE_TOKEN=\"${OVERTE_BACKTRACE_TOKEN}\")
|
||||
|
||||
target_include_directories(${TARGET_NAME} PRIVATE ${CRASHPAD_INCLUDE_DIRS})
|
||||
target_link_libraries(${TARGET_NAME} ${CRASHPAD_LIBRARY} ${CRASHPAD_UTIL_LIBRARY} ${CRASHPAD_BASE_LIBRARY})
|
||||
|
|
|
@ -130,7 +130,7 @@ macro(AUTOSCRIBE_SHADER)
|
|||
file(WRITE "${SHADER_SCRIBED}.name" "${SHADER_NAME}.${SHADER_TYPE}")
|
||||
AUTOSCRIBE_APPEND_QRC("${SHADER_COUNT}/name" "${SHADER_NAME_FILE}")
|
||||
|
||||
if(USE_GLES)
|
||||
if (OVERTE_RENDERING_BACKEND STREQUAL "GLES")
|
||||
set(SPIRV_CROSS_ARGS --version 310es)
|
||||
AUTOSCRIBE_PLATFORM_SHADER("310es")
|
||||
AUTOSCRIBE_PLATFORM_SHADER("310es/stereo")
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
# cmake/macros
|
||||
#
|
||||
# Copyright 2016 High Fidelity, Inc.
|
||||
# Copyright 2025 Overte e.V.
|
||||
# Created by Stephen Birarda on January 6th, 2016
|
||||
#
|
||||
# Distributed under the Apache License, Version 2.0.
|
||||
|
@ -24,7 +25,7 @@ macro(fixup_interface)
|
|||
")
|
||||
endif ()
|
||||
|
||||
if (RELEASE_TYPE STREQUAL "DEV")
|
||||
if (OVERTE_RELEASE_TYPE STREQUAL "DEV")
|
||||
install(CODE "
|
||||
execute_process(COMMAND ${MACDEPLOYQT_COMMAND}\
|
||||
\${CMAKE_INSTALL_PREFIX}/${_INTERFACE_INSTALL_PATH}/\
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
# cmake/macros
|
||||
#
|
||||
# Copyright 2019 High Fidelity, Inc.
|
||||
# Copyright 2025 Overte e.V.
|
||||
# Created by Nissim Hadar on January 14th, 2016
|
||||
#
|
||||
# Distributed under the Apache License, Version 2.0.
|
||||
|
@ -24,7 +25,7 @@ macro(fixup_nitpick)
|
|||
")
|
||||
endif ()
|
||||
|
||||
if (RELEASE_TYPE STREQUAL "DEV")
|
||||
if (OVERTE_RELEASE_TYPE STREQUAL "DEV")
|
||||
install(CODE "
|
||||
execute_process(COMMAND ${MACDEPLOYQT_COMMAND}\
|
||||
\${CMAKE_INSTALL_PREFIX}/${_NITPICK_INSTALL_PATH}/\
|
||||
|
|
|
@ -136,11 +136,11 @@ macro(GENERATE_INSTALLERS)
|
|||
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
|
||||
|
||||
if (BUILD_CLIENT)
|
||||
if (OVERTE_BUILD_CLIENT)
|
||||
cpack_add_component(${CLIENT_COMPONENT} DISPLAY_NAME "Overte Interface")
|
||||
endif ()
|
||||
|
||||
if (BUILD_SERVER)
|
||||
if (OVERTE_BUILD_SERVER)
|
||||
cpack_add_component(${SERVER_COMPONENT} DISPLAY_NAME "Overte Server")
|
||||
endif ()
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# MemoryDebugger.cmake
|
||||
#
|
||||
# Copyright 2015 High Fidelity, Inc.
|
||||
# Copyright 2023 Overte e.V.
|
||||
# Copyright 2023-2025 Overte e.V.
|
||||
#
|
||||
# Distributed under the Apache License, Version 2.0.
|
||||
# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
|
@ -15,9 +15,6 @@ if ("$ENV{OVERTE_MEMORY_DEBUGGING}")
|
|||
message(FATAL_ERROR "Thread debugging and memory debugging can't be enabled at the same time." )
|
||||
endif()
|
||||
|
||||
if (OVERTE_OPTIMIZE)
|
||||
message(WARNING "You should consider building without optimization by passing -DOVERTE_OPTIMIZE=false to CMake")
|
||||
endif()
|
||||
if (NOT CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
message(WARNING "You should consider building with debugging enabled by passing -DCMAKE_BUILD_TYPE=Debug to CMake. Current type is ${CMAKE_BUILD_TYPE}")
|
||||
endif()
|
||||
|
|
|
@ -22,7 +22,7 @@ macro(optional_win_executable_signing)
|
|||
# setup a post build command to sign the executable
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME} POST_BUILD
|
||||
COMMAND ${SIGNTOOL_EXECUTABLE} sign /fd sha256 /f %HF_PFX_FILE% /p %HF_PFX_PASSPHRASE% /tr ${TIMESERVER_URL} /td SHA256 ${EXECUTABLE_PATH}
|
||||
COMMAND ${SIGNTOOL_EXECUTABLE} sign /fd sha256 /f %HF_PFX_FILE% /p %HF_PFX_PASSPHRASE% /tr ${OVERTE_TIMESERVER_URL} /td SHA256 ${EXECUTABLE_PATH}
|
||||
)
|
||||
else ()
|
||||
message(FATAL_ERROR "HF_PFX_PASSPHRASE must be set for executables to be signed.")
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
# Created by Leonardo Murillo on 07/14/2015.
|
||||
# Copyright 2015 High Fidelity, Inc.
|
||||
# Copyright 2020 Vircadia contributors.
|
||||
# Copyright 2025 Overte e.V.
|
||||
#
|
||||
# Distributed under the Apache License, Version 2.0.
|
||||
# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
|
@ -13,24 +14,21 @@
|
|||
# and decides how targets should be packaged.
|
||||
|
||||
macro(SET_PACKAGING_PARAMETERS)
|
||||
set(PR_BUILD 0)
|
||||
set(PRODUCTION_BUILD 0)
|
||||
set(DEV_BUILD 0)
|
||||
set(BUILD_GLOBAL_SERVICES "DEVELOPMENT")
|
||||
set(USE_STABLE_GLOBAL_SERVICES 0)
|
||||
set(BUILD_NUMBER 0)
|
||||
set(OVERTE_GIT_COMMIT_SHORT 0 CACHE STRING "Short Git commit hash to use for versioning.")
|
||||
|
||||
set(APP_USER_MODEL_ID "com.highfidelity.console-dev")
|
||||
|
||||
set_from_env(RELEASE_TYPE RELEASE_TYPE "DEV")
|
||||
set_from_env(RELEASE_NUMBER RELEASE_NUMBER "")
|
||||
set_from_env(STABLE_BUILD STABLE_BUILD 0)
|
||||
set(OVERTE_RELEASE_TYPE "DEV" CACHE STRING "Valid options are: 'PRODUCTION', 'PR', 'NIGHTLY', and 'DEV'.")
|
||||
set(OVERTE_RELEASE_NUMBER "0000.00.0" CACHE STRING "Release version number. E.g. 2025.05.1-rc1 for the first release candidate of the first release in May 2025.")
|
||||
|
||||
set_from_env(PRELOADED_STARTUP_LOCATION PRELOADED_STARTUP_LOCATION "")
|
||||
set_from_env(PRELOADED_SCRIPT_ALLOWLIST PRELOADED_SCRIPT_ALLOWLIST "")
|
||||
|
||||
|
||||
set_from_env(BYPASS_SIGNING BYPASS_SIGNING 0)
|
||||
|
||||
message(STATUS "The RELEASE_TYPE variable is: ${RELEASE_TYPE}")
|
||||
message(STATUS "The OVERTE_RELEASE_TYPE variable is: ${OVERTE_RELEASE_TYPE}")
|
||||
|
||||
# setup component categories for installer
|
||||
set(DDE_COMPONENT dde)
|
||||
|
@ -43,10 +41,19 @@ macro(SET_PACKAGING_PARAMETERS)
|
|||
set(INTERFACE_BUNDLE_NAME "interface")
|
||||
endif()
|
||||
|
||||
if (RELEASE_TYPE STREQUAL "PRODUCTION")
|
||||
set(DEPLOY_PACKAGE TRUE)
|
||||
set(PRODUCTION_BUILD 1)
|
||||
set(BUILD_VERSION ${RELEASE_NUMBER})
|
||||
string(TIMESTAMP BUILD_DATE "%Y-%m-%d" UTC)
|
||||
|
||||
# To not break our NSIS later down the line, we use `1` here instead of `ON`.
|
||||
set(PRODUCTION_BUILD 0 CACHE INTERNAL "")
|
||||
set(PR_BUILD 0 CACHE INTERNAL "")
|
||||
set(NIGHTLY_BUILD 0 CACHE INTERNAL "")
|
||||
set(DEV_BUILD 0 CACHE INTERNAL "")
|
||||
|
||||
if (OVERTE_RELEASE_TYPE STREQUAL "PRODUCTION")
|
||||
# To not break our NSIS later down the line, we use `1` here instead of `ON`.
|
||||
# INTERNAL implies FORCE and breaks if FORCE is added.
|
||||
set(PRODUCTION_BUILD 1 CACHE INTERNAL "")
|
||||
set(BUILD_VERSION ${OVERTE_RELEASE_NUMBER})
|
||||
set(BUILD_ORGANIZATION "Overte")
|
||||
set(HIGH_FIDELITY_PROTOCOL "hifi")
|
||||
set(HIGH_FIDELITY_APP_PROTOCOL "hifiapp")
|
||||
|
@ -55,72 +62,60 @@ macro(SET_PACKAGING_PARAMETERS)
|
|||
# add definition for this release type
|
||||
add_definitions(-DPRODUCTION_BUILD)
|
||||
|
||||
# if the build is a PRODUCTION_BUILD from the "stable" branch
|
||||
# then use the STABLE gobal services
|
||||
if (STABLE_BUILD)
|
||||
message(STATUS "The RELEASE_TYPE is PRODUCTION and STABLE_BUILD is 1")
|
||||
set(BUILD_GLOBAL_SERVICES "STABLE")
|
||||
set(USE_STABLE_GLOBAL_SERVICES 1)
|
||||
endif ()
|
||||
set(BUILD_GLOBAL_SERVICES "STABLE")
|
||||
set(USE_STABLE_GLOBAL_SERVICES 1)
|
||||
|
||||
|
||||
if (NOT BYPASS_SIGNING)
|
||||
set(BYPASS_SIGNING 0)
|
||||
endif ()
|
||||
set(BYPASS_SIGNING 0)
|
||||
endif()
|
||||
|
||||
elseif (RELEASE_TYPE STREQUAL "PR")
|
||||
set(DEPLOY_PACKAGE TRUE)
|
||||
set(PR_BUILD 1)
|
||||
set(BUILD_VERSION "PR${RELEASE_NUMBER}")
|
||||
set(BUILD_ORGANIZATION "Overte - PR${RELEASE_NUMBER}")
|
||||
elseif (OVERTE_RELEASE_TYPE STREQUAL "PR")
|
||||
# To not break our NSIS later down the line, we use `1` here instead of `ON`.
|
||||
set(PR_BUILD 1 CACHE INTERNAL "")
|
||||
set(BUILD_VERSION "PR${OVERTE_RELEASE_NUMBER}-${BUILD_DATE}")
|
||||
set(BUILD_ORGANIZATION "Overte - ${BUILD_VERSION}")
|
||||
set(INTERFACE_ICON_PREFIX "interface-beta")
|
||||
|
||||
# add definition for this release type
|
||||
add_definitions(-DPR_BUILD)
|
||||
else ()
|
||||
set(DEV_BUILD 1)
|
||||
set(BUILD_VERSION "dev")
|
||||
|
||||
elseif (OVERTE_RELEASE_TYPE STREQUAL "NIGHTLY")
|
||||
# To not break our NSIS later down the line, we use `1` here instead of `ON`.
|
||||
set(NIGHTLY_BUILD 1 CACHE INTERNAL "")
|
||||
set(BUILD_VERSION "Nightly-${BUILD_DATE}")
|
||||
set(BUILD_ORGANIZATION "Overte - ${BUILD_VERSION}")
|
||||
set(INTERFACE_ICON_PREFIX "interface-beta")
|
||||
|
||||
# add definition for this release type
|
||||
add_definitions(-DPR_BUILD)
|
||||
|
||||
elseif (OVERTE_RELEASE_TYPE STREQUAL "DEV")
|
||||
# To not break our NSIS later down the line, we use `1` here instead of `ON`.
|
||||
set(DEV_BUILD 1 CACHE INTERNAL "")
|
||||
set(BUILD_VERSION "Dev-${BUILD_DATE}")
|
||||
set(BUILD_ORGANIZATION "Overte - ${BUILD_VERSION}")
|
||||
set(INTERFACE_ICON_PREFIX "interface-beta")
|
||||
|
||||
# add definition for this release type
|
||||
add_definitions(-DDEV_BUILD)
|
||||
endif ()
|
||||
|
||||
else()
|
||||
message(FATAL_ERROR "OVERTE_RELEASE_TYPE invalid. Expected: 'RELEASE', 'PR', 'NIGHTLY', or 'DEV'. Got: '${OVERTE_RELEASE_TYPE}'")
|
||||
endif()
|
||||
|
||||
set(NITPICK_BUNDLE_NAME "nitpick")
|
||||
if (RELEASE_TYPE STREQUAL "PRODUCTION")
|
||||
if (PRODUCTION_BUILD)
|
||||
set(NITPICK_ICON_PREFIX "nitpick")
|
||||
else ()
|
||||
set(NITPICK_ICON_PREFIX "nitpick-beta")
|
||||
endif ()
|
||||
|
||||
string(TIMESTAMP BUILD_TIME "%d/%m/%Y")
|
||||
|
||||
# if STABLE_BUILD is 1, PRODUCTION_BUILD must be 1 and
|
||||
# DEV_BUILD and PR_BUILD must be 0
|
||||
if (STABLE_BUILD)
|
||||
if ((NOT PRODUCTION_BUILD) OR PR_BUILD OR DEV_BUILD)
|
||||
message(FATAL_ERROR "Cannot produce STABLE_BUILD without PRODUCTION_BUILD")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
if ((PRODUCTION_BUILD OR PR_BUILD) AND NOT STABLE_BUILD)
|
||||
set(GIT_COMMIT_SHORT $ENV{GIT_COMMIT_SHORT})
|
||||
set(BUILD_VERSION_NO_SHA ${BUILD_VERSION})
|
||||
if (NOT PRODUCTION_BUILD)
|
||||
# append the abbreviated commit SHA to the build version
|
||||
# since this is a PR build or master/nightly builds
|
||||
set(BUILD_VERSION_NO_SHA ${BUILD_VERSION})
|
||||
set(BUILD_VERSION "${BUILD_VERSION}-${GIT_COMMIT_SHORT}")
|
||||
|
||||
# pass along a release number without the SHA in case somebody
|
||||
# wants to compare master or PR builds as integers
|
||||
set(BUILD_NUMBER ${RELEASE_NUMBER})
|
||||
endif ()
|
||||
|
||||
if (DEPLOY_PACKAGE)
|
||||
# For deployed packages we do not grab the serverless content any longer.
|
||||
# Instead, we deploy just the serverless content that is in the interface/resources/serverless
|
||||
# directory. If we ever move back to delivering serverless via a hosted .zip file,
|
||||
# we can re-enable this.
|
||||
set(DOWNLOAD_SERVERLESS_CONTENT OFF)
|
||||
# since this is a PR build or master/nightly build
|
||||
set(BUILD_VERSION "${BUILD_VERSION}-${OVERTE_GIT_COMMIT_SHORT}")
|
||||
endif ()
|
||||
|
||||
if (APPLE)
|
||||
|
@ -135,10 +130,10 @@ macro(SET_PACKAGING_PARAMETERS)
|
|||
set(INTERFACE_INSTALL_DIR ".")
|
||||
set(NITPICK_INSTALL_DIR ".")
|
||||
|
||||
if (CLIENT_ONLY)
|
||||
set(CONSOLE_EXEC_NAME "Console.app")
|
||||
if (NOT OVERTE_BUILD_SERVER)
|
||||
set(CONSOLE_EXEC_NAME "Console.app")
|
||||
else ()
|
||||
set(CONSOLE_EXEC_NAME "Sandbox.app")
|
||||
set(CONSOLE_EXEC_NAME "Sandbox.app")
|
||||
endif()
|
||||
set(CONSOLE_INSTALL_APP_PATH "${CONSOLE_INSTALL_DIR}/${CONSOLE_EXEC_NAME}")
|
||||
|
||||
|
@ -146,7 +141,7 @@ macro(SET_PACKAGING_PARAMETERS)
|
|||
set(COMPONENT_APP_PATH "${CONSOLE_APP_CONTENTS}/MacOS/Components.app")
|
||||
set(COMPONENT_INSTALL_DIR "${COMPONENT_APP_PATH}/Contents/MacOS")
|
||||
set(CONSOLE_PLUGIN_INSTALL_DIR "${COMPONENT_APP_PATH}/Contents/PlugIns")
|
||||
|
||||
|
||||
set(INTERFACE_INSTALL_APP_PATH "${INTERFACE_INSTALL_DIR}/${INTERFACE_BUNDLE_NAME}.app")
|
||||
set(INTERFACE_ICON_FILENAME "${INTERFACE_ICON_PREFIX}.icns")
|
||||
set(NITPICK_ICON_FILENAME "${NITPICK_ICON_PREFIX}.icns")
|
||||
|
@ -188,7 +183,7 @@ macro(SET_PACKAGING_PARAMETERS)
|
|||
set(INTERFACE_HF_SHORTCUT_NAME "${INTERFACE_SHORTCUT_NAME}")
|
||||
set(CONSOLE_HF_SHORTCUT_NAME "Overte ${CONSOLE_SHORTCUT_NAME}")
|
||||
set(SANDBOX_HF_SHORTCUT_NAME "Overte ${SANDBOX_SHORTCUT_NAME}")
|
||||
|
||||
|
||||
set(PRE_SANDBOX_INTERFACE_SHORTCUT_NAME "Overte")
|
||||
set(PRE_SANDBOX_CONSOLE_SHORTCUT_NAME "Server Console")
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#
|
||||
# Created by Brad Hefta-Gaub on 2016/07/07
|
||||
# Copyright 2016 High Fidelity, Inc.
|
||||
# Copyright 2025 Overte e.V.
|
||||
#
|
||||
# Distributed under the Apache License, Version 2.0.
|
||||
# See the accompanying file LICENSE or http:#www.apache.org/licenses/LICENSE-2.0.html
|
||||
|
@ -10,7 +11,7 @@ macro(SETUP_HIFI_CLIENT_SERVER_PLUGIN)
|
|||
set(PLUGIN_SUBFOLDER ${ARGN})
|
||||
setup_hifi_library()
|
||||
|
||||
if (BUILD_CLIENT)
|
||||
if (OVERTE_BUILD_CLIENT)
|
||||
if (APPLE)
|
||||
add_dependencies(Overte ${TARGET_NAME})
|
||||
else()
|
||||
|
@ -18,7 +19,7 @@ macro(SETUP_HIFI_CLIENT_SERVER_PLUGIN)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
if (BUILD_SERVER)
|
||||
if (OVERTE_BUILD_SERVER)
|
||||
add_dependencies(assignment-client ${TARGET_NAME})
|
||||
endif()
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
macro(SETUP_HIFI_PLUGIN)
|
||||
set(${TARGET_NAME}_SHARED 1)
|
||||
setup_hifi_library(${ARGV})
|
||||
if (BUILD_CLIENT)
|
||||
if (OVERTE_BUILD_CLIENT)
|
||||
if (APPLE)
|
||||
add_dependencies(Overte ${TARGET_NAME})
|
||||
else()
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
#
|
||||
# Copyright 2015 High Fidelity, Inc.
|
||||
# Copyright 2025 Overte e.V.
|
||||
# Created by Bradley Austin Davis on 2015/10/10
|
||||
#
|
||||
# Distributed under the Apache License, Version 2.0.
|
||||
# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
#
|
||||
macro(TARGET_NSIGHT)
|
||||
if (WIN32 AND USE_NSIGHT)
|
||||
|
||||
if (WIN32 AND OVERTE_USE_NSIGHT)
|
||||
|
||||
# grab the global CHECKED_FOR_NSIGHT_ONCE property
|
||||
get_property(NSIGHT_UNAVAILABLE GLOBAL PROPERTY CHECKED_FOR_NSIGHT_ONCE)
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
// Created by Stephen Birarda on 1/14/16.
|
||||
// Copyright 2015 High Fidelity, Inc.
|
||||
// Copyright 2021 Vircadia contributors.
|
||||
// Copyright 2025 Overte e.V.
|
||||
//
|
||||
// Distributed under the Apache License, Version 2.0.
|
||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
|
@ -25,16 +26,16 @@ namespace BuildInfo {
|
|||
const QString MODIFIED_ORGANIZATION = "@BUILD_ORGANIZATION@";
|
||||
const QString ORGANIZATION_DOMAIN = "overte.org";
|
||||
const QString VERSION = "@BUILD_VERSION@";
|
||||
const QString BUILD_NUMBER = "@BUILD_NUMBER@";
|
||||
const QString BUILD_NUMBER = "@BUILD_VERSION_NO_SHA@";
|
||||
const QString BUILD_GLOBAL_SERVICES = "@BUILD_GLOBAL_SERVICES@";
|
||||
const QString BUILD_TIME = "@BUILD_TIME@";
|
||||
const QString BUILD_TIME = "@BUILD_DATE@";
|
||||
const QString PRELOADED_STARTUP_LOCATION = "@PRELOADED_STARTUP_LOCATION@";
|
||||
const QString PRELOADED_SCRIPT_ALLOWLIST = "@PRELOADED_SCRIPT_ALLOWLIST@";
|
||||
|
||||
enum BuildType {
|
||||
Dev,
|
||||
PR,
|
||||
Master,
|
||||
Nightly,
|
||||
Stable
|
||||
};
|
||||
|
||||
|
@ -42,8 +43,11 @@ namespace BuildInfo {
|
|||
const BuildType BUILD_TYPE = PR;
|
||||
const QString BUILD_TYPE_STRING = "pr";
|
||||
#elif defined(PRODUCTION_BUILD)
|
||||
const BuildType BUILD_TYPE = @STABLE_BUILD@ ? Stable : Master;
|
||||
const QString BUILD_TYPE_STRING = @STABLE_BUILD@ ? "stable" : "master";
|
||||
const BuildType BUILD_TYPE = Stable;
|
||||
const QString BUILD_TYPE_STRING = "stable";
|
||||
#elif defined(NIGHTLY_BUILD)
|
||||
const BuildType BUILD_TYPE = Nightly;
|
||||
const QString BUILD_TYPE_STRING = "nightly";
|
||||
#else
|
||||
const BuildType BUILD_TYPE = Dev;
|
||||
const QString BUILD_TYPE_STRING = "dev";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"releaseType": "@RELEASE_TYPE@",
|
||||
"buildNumber": "@BUILD_NUMBER@",
|
||||
"releaseType": "@OVERTE_RELEASE_TYPE@",
|
||||
"buildNumber": "@OVERTE_GIT_COMMIT_SHORT@",
|
||||
"stableBuild": "@STABLE_BUILD@",
|
||||
"buildIdentifier": "@BUILD_VERSION@",
|
||||
"organization": "@BUILD_ORGANIZATION@",
|
||||
|
|
|
@ -32,10 +32,10 @@ find_package(
|
|||
)
|
||||
|
||||
|
||||
if (BUILD_TOOLS AND JSDOC_ENABLED)
|
||||
message(STATUS "JSDoc enabled, depending on jsdoc")
|
||||
add_custom_qrc_path(CUSTOM_INTERFACE_QRC_PATHS "${CMAKE_BINARY_DIR}/tools/jsdoc/out/hifiJSDoc.json" "auto-complete/hifiJSDoc.json")
|
||||
endif ()
|
||||
if (OVERTE_BUILD_TOOLS AND JSDOC_ENABLED)
|
||||
message(STATUS "JSDoc enabled, depending on jsdoc")
|
||||
add_custom_qrc_path(CUSTOM_INTERFACE_QRC_PATHS "${CMAKE_BINARY_DIR}/tools/jsdoc/out/hifiJSDoc.json" "auto-complete/hifiJSDoc.json")
|
||||
endif()
|
||||
|
||||
set(RESOURCES_QRC ${CMAKE_CURRENT_BINARY_DIR}/resources.qrc)
|
||||
set(RESOURCES_RCC ${CMAKE_CURRENT_BINARY_DIR}/resources.rcc)
|
||||
|
@ -48,8 +48,8 @@ else ()
|
|||
qt5_add_binary_resources(resources "${RESOURCES_QRC}" DESTINATION "${RESOURCES_RCC}")
|
||||
endif()
|
||||
|
||||
if (BUILD_TOOLS AND JSDOC_ENABLED)
|
||||
add_dependencies(resources jsdoc)
|
||||
if (OVERTE_BUILD_TOOLS AND JSDOC_ENABLED)
|
||||
add_dependencies(resources jsdoc)
|
||||
endif()
|
||||
|
||||
list(APPEND GENERATE_QRC_DEPENDS ${RESOURCES_RCC})
|
||||
|
@ -435,7 +435,7 @@ if (SCRIPTS_INSTALL_DIR)
|
|||
)
|
||||
endif()
|
||||
|
||||
if (DOWNLOAD_SERVERLESS_CONTENT)
|
||||
if (OVERTE_DOWNLOAD_SERVERLESS_CONTENT)
|
||||
add_dependency_external_projects(serverless-content)
|
||||
|
||||
ExternalProject_Get_Property(serverless-content SOURCE_DIR)
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
// Created by Andrzej Kapolka on 5/10/13.
|
||||
// Copyright 2013 High Fidelity, Inc.
|
||||
// Copyright 2020 Vircadia contributors.
|
||||
// Copyright 2022-2023 Overte e.V.
|
||||
// Copyright 2022-2025 Overte e.V.
|
||||
//
|
||||
// Distributed under the Apache License, Version 2.0.
|
||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
|
@ -597,7 +597,7 @@ void Application::initialize(const QCommandLineParser &parser) {
|
|||
|
||||
// If launched from Steam, let it handle updates
|
||||
bool buildCanUpdate = BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable
|
||||
|| BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Master;
|
||||
|| BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Nightly;
|
||||
if (!parser.isSet("no-updater") && buildCanUpdate) {
|
||||
constexpr auto INSTALLER_TYPE_CLIENT_ONLY = "client_only";
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
//
|
||||
// Created by David Rowe on 24 Aug 2015.
|
||||
// Copyright 2015 High Fidelity, Inc.
|
||||
// Copyright 2025 Overte e.V.
|
||||
//
|
||||
// Distributed under the Apache License, Version 2.0.
|
||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
|
@ -103,7 +104,7 @@ bool CrashRecoveryHandler::suggestCrashReporting() {
|
|||
"and not yet part of the official code. We'd highly appreciate it if you enabled\n"
|
||||
"crash reporting to help us test this potential addition.";
|
||||
break;
|
||||
case BuildInfo::BuildType::Master:
|
||||
case BuildInfo::BuildType::Nightly:
|
||||
explainText = "You're running a pre-release version. This is an official release, but the code\n"
|
||||
"is not yet considered to be fully stable. We'd highly appreciate it if you enabled\n"
|
||||
"crash reporting to help us test the upcoming release.";
|
||||
|
|
|
@ -45,7 +45,7 @@ if (WIN32)
|
|||
|
||||
ExternalProject_Add(
|
||||
qtlite
|
||||
URL "${EXTERNAL_BUILD_ASSETS}/dependencies/qtlite/qt-lite-5.9.9-win-oct-15-2019.zip"
|
||||
URL "${OVERTE_EXTERNAL_BUILD_ASSETS}/dependencies/qtlite/qt-lite-5.9.9-win-oct-15-2019.zip"
|
||||
URL_HASH MD5=0176277bca37d219e83738caf3a698eb
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
|
@ -78,7 +78,7 @@ endif ()
|
|||
if (APPLE)
|
||||
ExternalProject_Add(
|
||||
qtlite
|
||||
URL "${EXTERNAL_BUILD_ASSETS}/dependencies/qtlite/qt-lite-5.9.9-mac.zip"
|
||||
URL "${OVERTE_EXTERNAL_BUILD_ASSETS}/dependencies/qtlite/qt-lite-5.9.9-mac.zip"
|
||||
URL_HASH MD5=0cd78d40e5f539a7e314cf99b6cae0d0
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
//
|
||||
// Created by Leonardo Murillo on 6/1/2015.
|
||||
// Copyright 2015 High Fidelity, Inc.
|
||||
// Copyright 2023 Overte e.V.
|
||||
// Copyright 2023-2025 Overte e.V.
|
||||
//
|
||||
// Distributed under the Apache License, Version 2.0.
|
||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
|
@ -46,10 +46,10 @@ void AutoUpdater::getLatestVersionData() {
|
|||
|
||||
if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable) {
|
||||
buildsURL = NetworkingConstants::BUILDS_XML_URL;
|
||||
} else if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Master) {
|
||||
} else if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Nightly) {
|
||||
buildsURL = NetworkingConstants::MASTER_BUILDS_XML_URL;
|
||||
}
|
||||
|
||||
|
||||
QNetworkRequest latestVersionRequest(buildsURL);
|
||||
|
||||
latestVersionRequest.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
|
||||
|
@ -82,10 +82,10 @@ void AutoUpdater::parseLatestVersionData() {
|
|||
// master builds look at the version node (build number)
|
||||
if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable) {
|
||||
versionKey = "stable_version";
|
||||
} else if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Master) {
|
||||
} else if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Nightly) {
|
||||
versionKey = "version";
|
||||
}
|
||||
|
||||
|
||||
while (xml.readNextStartElement()) {
|
||||
if (xml.name() == "projects") {
|
||||
while (xml.readNextStartElement()) {
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
//
|
||||
//
|
||||
// Created by Dale Glass on 25/06/2023.
|
||||
// Copyright 2023 Overte e.V.
|
||||
// Copyright 2023-2025 Overte e.V.
|
||||
//
|
||||
// Distributed under the Apache License, Version 2.0.
|
||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
|
@ -103,7 +103,7 @@ public slots:
|
|||
* Reasons for it failing to start include:
|
||||
*
|
||||
* * Not having a crash reporter for the platform
|
||||
* * Crash reporter not being configured with reporting URLs (CMAKE_BACKTRACE_TOKEN and CMAKE_BACKTRACE_URL)
|
||||
* * Crash reporter not being configured with reporting URLs (OVERTE_BACKTRACE_TOKEN and OVERTE_BACKTRACE_URL)
|
||||
* * Crash reporter is present and configured, but failed to initialize for some reason
|
||||
*
|
||||
* @return true Crash reporter is present, configured and working.
|
||||
|
@ -118,7 +118,7 @@ public slots:
|
|||
* This setting is independent of isCrashMonitorStarted() -- crash reporting may be enabled but fail to work
|
||||
* due to the crash reporting component being missing or failing to initialize.
|
||||
*
|
||||
* @return true Crashes will be reported to CMAKE_BACKTRACE_URL
|
||||
* @return true Crashes will be reported to OVERTE_BACKTRACE_URL
|
||||
* @return false Crashes will not be reported
|
||||
*/
|
||||
bool isEnabled() const { return _crashReportingEnabled; }
|
||||
|
@ -126,7 +126,7 @@ public slots:
|
|||
/**
|
||||
* @brief Set whether we want to submit crash reports to the report server
|
||||
*
|
||||
* The report server is configured with CMAKE_BACKTRACE_URL.
|
||||
* The report server is configured with OVERTE_BACKTRACE_URL.
|
||||
* Emits crashReportingEnabledChanged signal.
|
||||
*
|
||||
* @note This automatically calls start(), so it should be called after setPath(), setUrl() and setToken()
|
||||
|
@ -137,7 +137,7 @@ public slots:
|
|||
/**
|
||||
* @brief Set the URL where to send crash reports to
|
||||
*
|
||||
* If not set, a predefined URL specified at compile time via CMAKE_BACKTRACE_URL
|
||||
* If not set, a predefined URL specified at compile time via OVERTE_BACKTRACE_URL
|
||||
* will be used.
|
||||
*
|
||||
* @param url URL
|
||||
|
@ -150,7 +150,7 @@ public slots:
|
|||
* This is an identifier in the crash collection service, such as Sentry, and may contain
|
||||
* a branch name or a version number.
|
||||
*
|
||||
* If not set, a predefined token specified at compile time via CMAKE_BACKTRACE_TOKEN
|
||||
* If not set, a predefined token specified at compile time via OVERTE_BACKTRACE_TOKEN
|
||||
* will be used.
|
||||
*
|
||||
* @param token Token
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
//
|
||||
// Created by Clement Brisset on 01/19/18.
|
||||
// Copyright 2018 High Fidelity, Inc.
|
||||
// Copyright 2025 Overte e.V.
|
||||
//
|
||||
// Distributed under the Apache License, Version 2.0.
|
||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
|
@ -47,8 +48,8 @@ Q_LOGGING_CATEGORY(crash_handler, "overte.crash_handler")
|
|||
|
||||
|
||||
|
||||
static const std::string BACKTRACE_URL{ CMAKE_BACKTRACE_URL };
|
||||
static const std::string BACKTRACE_TOKEN{ CMAKE_BACKTRACE_TOKEN };
|
||||
static const std::string BACKTRACE_URL{ OVERTE_BACKTRACE_URL };
|
||||
static const std::string BACKTRACE_TOKEN{ OVERTE_BACKTRACE_TOKEN };
|
||||
|
||||
std::string custom_backtrace_url;
|
||||
std::string custom_backtrace_token;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# Created by Bradley Austin Davis on 2015/10/25
|
||||
# Copyright 2015 High Fidelity, Inc.
|
||||
# Copyright 2023-2024 Overte e.V.
|
||||
# Copyright 2023-2025 Overte e.V.
|
||||
#
|
||||
# Distributed under the Apache License, Version 2.0.
|
||||
# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
|
@ -12,8 +12,8 @@ file(GLOB PLUGIN_SUBDIRS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT
|
|||
list(REMOVE_ITEM PLUGIN_SUBDIRS "CMakeFiles")
|
||||
|
||||
# client-side plugins
|
||||
if (NOT SERVER_ONLY AND NOT ANDROID)
|
||||
if (WIN32 AND (NOT USE_GLES))
|
||||
if (OVERTE_BUILD_CLIENT AND NOT ANDROID)
|
||||
if (WIN32 AND (NOT OVERTE_RENDERING_BACKEND STREQUAL "GLES"))
|
||||
set(DIR "oculus")
|
||||
add_subdirectory(${DIR})
|
||||
set(DIR "oculusLegacy")
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
#
|
||||
# Created by Bradley Austin Davis on 2015/10/25
|
||||
# Copyright 2015 High Fidelity, Inc.
|
||||
# Copyright 2023 Overte e.V.
|
||||
# Copyright 2023-2025 Overte e.V.
|
||||
#
|
||||
# Distributed under the Apache License, Version 2.0.
|
||||
# See the accompanying file LICENSE or http:#www.apache.org/licenses/LICENSE-2.0.html
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
if (WIN32 AND (NOT USE_GLES))
|
||||
if (WIN32 AND (NOT OVERTE_RENDERING_BACKEND STREQUAL "GLES"))
|
||||
|
||||
# if we were passed an Oculus App ID for entitlement checks, send that along
|
||||
if (DEFINED ENV{OCULUS_APP_ID})
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
# Created by Bradley Austin Davis on 2015/11/18
|
||||
# Copyright 2015 High Fidelity, Inc.
|
||||
# Copyright 2020 Vircadia contributors.
|
||||
# Copyright 2023 Overte e.V.
|
||||
# Copyright 2023-2025 Overte e.V.
|
||||
#
|
||||
# Distributed under the Apache License, Version 2.0.
|
||||
# See the accompanying file LICENSE or http:#www.apache.org/licenses/LICENSE-2.0.html
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
if ((WIN32 OR UNIX AND NOT APPLE) AND NOT USE_GLES)
|
||||
if ((WIN32 OR UNIX AND NOT APPLE) AND (NOT OVERTE_RENDERING_BACKEND STREQUAL "GLES"))
|
||||
set(TARGET_NAME openvr)
|
||||
setup_hifi_plugin(Gui Qml Multimedia)
|
||||
link_hifi_libraries(shared task gl qml networking controllers ui
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#
|
||||
# Created by Michael Bailey on 12/20/2019
|
||||
# Copyright 2019 Michael Bailey
|
||||
# Copyright 2025 Overte e.V.
|
||||
#
|
||||
# Distributed under the Apache License, Version 2.0.
|
||||
# See the accompanying file LICENSE or http:#www.apache.org/licenses/LICENSE-2.0.html
|
||||
|
@ -11,6 +12,6 @@ setup_hifi_client_server_plugin()
|
|||
link_hifi_libraries(shared audio plugins)
|
||||
target_opus()
|
||||
|
||||
if (BUILD_SERVER)
|
||||
if (OVERTE_BUILD_SERVER)
|
||||
install_beside_console()
|
||||
endif ()
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#
|
||||
# Created by Brad Hefta-Gaub on 6/9/2016
|
||||
# Copyright 2016 High Fidelity, Inc.
|
||||
# Copyright 2025 Overte e.V.
|
||||
#
|
||||
# Distributed under the Apache License, Version 2.0.
|
||||
# See the accompanying file LICENSE or http:#www.apache.org/licenses/LICENSE-2.0.html
|
||||
|
@ -10,6 +11,6 @@ set(TARGET_NAME pcmCodec)
|
|||
setup_hifi_client_server_plugin()
|
||||
link_hifi_libraries(shared audio plugins)
|
||||
|
||||
if (BUILD_SERVER)
|
||||
if (OVERTE_BUILD_SERVER)
|
||||
install_beside_console()
|
||||
endif ()
|
||||
|
|
|
@ -28,7 +28,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "Server Console")
|
|||
set_target_properties(${TARGET_NAME}-npm-install PROPERTIES FOLDER "hidden/Server Console")
|
||||
|
||||
# add a dependency from the package target to the server components
|
||||
if (BUILD_CLIENT)
|
||||
if (OVERTE_BUILD_CLIENT)
|
||||
if (APPLE)
|
||||
add_dependencies(${TARGET_NAME} Overte)
|
||||
else()
|
||||
|
@ -36,7 +36,7 @@ if (BUILD_CLIENT)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
if (BUILD_SERVER)
|
||||
if (OVERTE_BUILD_SERVER)
|
||||
add_dependencies(${TARGET_NAME} assignment-client domain-server)
|
||||
endif()
|
||||
|
||||
|
|
|
@ -22,8 +22,8 @@ function(check_test name)
|
|||
set(BUILD_TOOL_RESULT ${RESULT} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
if (BUILD_TOOLS)
|
||||
set(ALL_TOOLS
|
||||
if (OVERTE_BUILD_TOOLS)
|
||||
set(ALL_TOOLS
|
||||
udt-test
|
||||
gpu-frame-player
|
||||
ice-client
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Copyright 2013-2019 High Fidelity, Inc.
|
||||
# Copyright 2020 Vircadia contributors.
|
||||
# Copyright 2022 Overte e.V.
|
||||
# Copyright 2022-2025 Overte e.V.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# Post build script
|
||||
|
@ -18,7 +18,7 @@ def main():
|
|||
release_number = os.environ['RELEASE_NUMBER']
|
||||
full_prefix = upload_prefix + release_number
|
||||
S3 = boto3.client('s3', region_name=os.environ['UPLOAD_REGION'], endpoint_url=os.environ['UPLOAD_ENDPOINT'])
|
||||
path = os.path.join(os.getcwd(), os.environ['ARTIFACT_PATTERN'])
|
||||
path = os.path.join(os.getcwd(), "Overte-*")
|
||||
print("Checking for files to upload in {}..".format(path))
|
||||
files = glob.glob(path, recursive=False)
|
||||
for archiveFile in files:
|
||||
|
|
|
@ -14,7 +14,7 @@ file(TO_NATIVE_PATH ${JSDOC_WORKING_DIR}/root.js NATIVE_JSDOC_WORKING_DIR)
|
|||
|
||||
set(JSDOC_OUTPUT_PATH ${OUTPUT_DIR} CACHE INTERNAL "${PROJECT_NAME}: JSDoc output directory")
|
||||
|
||||
add_custom_command(TARGET ${TARGET_NAME}
|
||||
add_custom_command(TARGET ${TARGET_NAME} POST_BUILD
|
||||
COMMAND ${NPM_EXECUTABLE} --no-progress install && ${JSDOC_PATH} ${NATIVE_JSDOC_WORKING_DIR} -c ${JSDOC_CONFIG_PATH} -d ${OUTPUT_DIR}
|
||||
WORKING_DIRECTORY ${JSDOC_WORKING_DIR}
|
||||
COMMENT "generate the JSDoc JSON"
|
||||
|
|
|
@ -147,7 +147,7 @@ if (WIN32)
|
|||
COMMAND "${CMAKE_COMMAND}" -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/AppDataHighFidelity" "$<TARGET_FILE_DIR:${TARGET_NAME}>/AppDataHighFidelity"
|
||||
)
|
||||
|
||||
if (RELEASE_TYPE STREQUAL "DEV")
|
||||
if (OVERTE_RELEASE_TYPE STREQUAL "DEV")
|
||||
# This to enable running from the IDE
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
|
|
Loading…
Reference in a new issue