Merge pull request #1584 from overte-org/cmake_variables

CMake refactor
This commit is contained in:
ksuprynowicz 2025-06-13 09:20:17 +02:00 committed by GitHub
commit b688a0539b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
41 changed files with 340 additions and 500 deletions

View file

@ -158,22 +158,12 @@ jobs:
# Tagged builds. E.g. release or release candidate builds. # Tagged builds. E.g. release or release candidate builds.
if [ "${{github.ref_type}}" == "tag" ]; then if [ "${{github.ref_type}}" == "tag" ]; then
echo "PRODUCTION_BUILD=true" >> $GITHUB_ENV echo "OVERTE_RELEASE_TYPE=PRODUCTION" >> $GITHUB_ENV
fi
# Systems requiring our prebuilt Qt package
if [[ "${{ matrix.os }}" = "ubuntu-18.04" || "${{ matrix.os }}" = "ubuntu-20.04" ]]; then
echo # false
else else
echo "OVERTE_USE_SYSTEM_QT=true" >> $GITHUB_ENV echo "OVERTE_RELEASE_TYPE=PR" >> $GITHUB_ENV
fi fi
# Architecture specific variables echo "CMAKE_EXTRA=-DOVERTE_BUILD_SERVER=true -DOVERTE_BUILD_TOOLS=true -DOVERTE_BUILD_CLIENT=false" >> $GITHUB_ENV
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
# Configuration is broken into multiple steps because you can't set an env var and also reference it in the same step # 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 - name: Configure Build Environment 2
@ -205,18 +195,6 @@ jobs:
fi fi
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 - name: Configure Build Environment 3
shell: bash shell: bash
run: | run: |
@ -267,7 +245,7 @@ jobs:
- name: Configure CMake - name: Configure CMake
shell: bash shell: bash
# This syntax requires CMake 3.23 # 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 - name: Build Domain Server
working-directory: build working-directory: build

View file

@ -13,17 +13,10 @@ on:
env: env:
APP_NAME: interface APP_NAME: interface
BUILD_TYPE: Release BUILD_TYPE: Release
BUILD_NUMBER: ${{ github.event.number }}_${{ github.sha }}
GIT_COMMIT: ${{ github.sha }} GIT_COMMIT: ${{ github.sha }}
RELEASE_TYPE: PRODUCTION
RELEASE_NUMBER: ${{ github.event.number }}_${{ github.sha }}
STABLE_BUILD: 0
UPLOAD_BUCKET: overte-public UPLOAD_BUCKET: overte-public
UPLOAD_REGION: fra1 UPLOAD_REGION: fra1
UPLOAD_ENDPOINT: "https://fra1.digitaloceanspaces.com" 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 # OSX-specific variables
DEVELOPER_DIR: /Applications/Xcode_11.2.app/Contents/Developer DEVELOPER_DIR: /Applications/Xcode_11.2.app/Contents/Developer
@ -56,12 +49,6 @@ jobs:
fail-fast: false fail-fast: false
runs-on: ${{matrix.os}} runs-on: ${{matrix.os}}
steps: steps:
- name: Report Build Number
shell: bash
run: |
echo "Build number: $BUILD_NUMBER"
- name: Configure build environment 1 - name: Configure build environment 1
shell: bash shell: bash
id: buildenv1 id: buildenv1
@ -119,11 +106,9 @@ jobs:
echo "GIT_COMMIT_SHORT=${{ steps.buildenv1.outputs.github_sha_short }}" >> $GITHUB_ENV echo "GIT_COMMIT_SHORT=${{ steps.buildenv1.outputs.github_sha_short }}" >> $GITHUB_ENV
# Build type variables # Build type variables
if [ "${{ matrix.build_type }}" = "full" ]; then 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 echo "INSTALLER=Overte-${{ github.event.number }}_${{ github.sha }}-${{ steps.buildenv1.outputs.github_sha_short }}.$INSTALLER_EXT" >> $GITHUB_ENV
else else
echo "CLIENT_ONLY=TRUE" >> $GITHUB_ENV echo "INSTALLER=Overte-Interface-master-${{ steps.buildenv1.outputs.github_sha_short }}.$INSTALLER_EXT" >> $GITHUB_ENV
echo "INSTALLER=Overte-Interface-master$BUILD_NUMBER-${{ steps.buildenv1.outputs.github_sha_short }}.$INSTALLER_EXT" >> $GITHUB_ENV
fi fi
- name: Clear Working Directories - name: Clear Working Directories
@ -214,16 +199,15 @@ jobs:
shell: bash shell: bash
- name: Configure CMake - name: Configure CMake
if: startsWith(matrix.os, 'Windows') == false
shell: bash shell: bash
# This syntax requires CMake 3.23 run: |
run: cmake --preset conan-${BUILD_TYPE,,} -DCLIENT_ONLY:BOOLEAN=$CLIENT_ONLY -DBYPASS_SIGNING:BOOLEAN=TRUE $CMAKE_EXTRA if [[ "${{ matrix.os }}" =~ "Windows" ]]; then
# This syntax requires CMake 3.23
- name: Configure CMake (Windows) cmake --preset conan-default -DOVERTE_GIT_COMMIT_SHORT=$GIT_COMMIT_SHORT -DOVERTE_RELEASE_TYPE=NIGHTLY $CMAKE_EXTRA
if: startsWith(matrix.os, 'Windows') else
shell: bash # This syntax requires CMake 3.23
# This syntax requires CMake 3.23 cmake --preset conan-${BUILD_TYPE,,} -DOVERTE_GIT_COMMIT_SHORT=$GIT_COMMIT_SHORT -DOVERTE_RELEASE_TYPE=NIGHTLY $CMAKE_EXTRA
run: cmake --preset conan-default -DCLIENT_ONLY:BOOLEAN=$CLIENT_ONLY -DBYPASS_SIGNING:BOOLEAN=TRUE $CMAKE_EXTRA fi
- name: Build application - name: Build application
shell: bash shell: bash
@ -291,7 +275,7 @@ jobs:
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ env.INSTALLER }} name: ${{ env.INSTALLER }}
path: build/${{ env.INSTALLER }} path: build/Overte-*
if-no-files-found: error if-no-files-found: error
#- name: Archive symbols #- name: Archive symbols

View file

@ -14,14 +14,8 @@ env:
APP_NAME: interface APP_NAME: interface
BUILD_TYPE: Release BUILD_TYPE: Release
GIT_COMMIT: ${{ github.event.pull_request.head.sha }} GIT_COMMIT: ${{ github.event.pull_request.head.sha }}
RELEASE_TYPE: PR # Android
RELEASE_NUMBER: ${{ github.event.number }}
VERSION_CODE: ${{ github.event.number }} 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_BUCKET: overte-public
UPLOAD_REGION: fra1 UPLOAD_REGION: fra1
@ -101,18 +95,18 @@ jobs:
if [[ "${{ matrix.arch }}" = "aarch64" ]]; then if [[ "${{ matrix.arch }}" = "aarch64" ]]; then
if [ "${{ matrix.build_type }}" = "full" ]; 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 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
fi fi
if [[ "${{ matrix.arch }}" = "amd64" ]]; then if [[ "${{ matrix.arch }}" = "amd64" ]]; then
if [ "${{ matrix.build_type }}" = "full" ]; 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 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 fi
fi fi
@ -123,9 +117,9 @@ jobs:
echo "PYTHON_EXEC=python3" >> $GITHUB_ENV echo "PYTHON_EXEC=python3" >> $GITHUB_ENV
echo "INSTALLER_EXT=dmg" >> $GITHUB_ENV echo "INSTALLER_EXT=dmg" >> $GITHUB_ENV
if [ "${{ matrix.build_type }}" = "full" ]; then 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 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 fi
echo "APP_TARGET_NAME=Overte" >> $GITHUB_ENV echo "APP_TARGET_NAME=Overte" >> $GITHUB_ENV
echo "CONAN_PROFILE=default" >> $GITHUB_ENV echo "CONAN_PROFILE=default" >> $GITHUB_ENV
@ -162,14 +156,12 @@ jobs:
echo "${{ steps.buildenv1.outputs.symbols_archive }}" echo "${{ steps.buildenv1.outputs.symbols_archive }}"
if [ "${{ matrix.build_type }}" = "full" ]; then if [ "${{ matrix.build_type }}" = "full" ]; then
if [[ "${{ matrix.os }}" = "Ubuntu"* ]]; 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 else
echo "ARTIFACT_PATTERN=Overte-PR${{ github.event.number }}-${GIT_COMMIT_SHORT}.$INSTALLER_EXT" >> $GITHUB_ENV echo "ARTIFACT_NAME=Overte-PR${{ github.event.number }}-${GIT_COMMIT_SHORT}.$INSTALLER_EXT" >> $GITHUB_ENV
echo "INSTALLER=Overte-$RELEASE_NUMBER-${GIT_COMMIT_SHORT}.$INSTALLER_EXT" >> $GITHUB_ENV
fi fi
else else
echo "ARTIFACT_PATTERN=Overte-Interface-PR${{ github.event.number }}-${GIT_COMMIT_SHORT}.$INSTALLER_EXT" >> $GITHUB_ENV echo "ARTIFACT_NAME=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
fi fi
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@ -260,10 +252,10 @@ jobs:
run: | run: |
if [[ "${{ matrix.os }}" =~ "Windows" ]]; then if [[ "${{ matrix.os }}" =~ "Windows" ]]; then
# This syntax requires CMake 3.23 # 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 else
# This syntax requires CMake 3.23 # 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 fi
- name: Build Application - name: Build Application
@ -354,6 +346,6 @@ jobs:
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ env.ARTIFACT_PATTERN }} name: ${{ env.ARTIFACT_NAME }}
path: ./build/${{ env.ARTIFACT_PATTERN }} path: ./build/Overte-*
if-no-files-found: error if-no-files-found: error

View file

@ -16,16 +16,9 @@ env:
APP_NAME: interface APP_NAME: interface
BUILD_TYPE: Release BUILD_TYPE: Release
GIT_COMMIT: ${{ github.sha }} GIT_COMMIT: ${{ github.sha }}
PRODUCTION_BUILD: true
RELEASE_TYPE: PRODUCTION
RELEASE_NUMBER: ${{ github.ref_name }}
STABLE_BUILD: 1
UPLOAD_BUCKET: overte-public UPLOAD_BUCKET: overte-public
UPLOAD_REGION: fra1 UPLOAD_REGION: fra1
UPLOAD_ENDPOINT: "https://fra1.digitaloceanspaces.com" 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 # WIN-specific variables
PreferredToolArchitecture: X64 PreferredToolArchitecture: X64
@ -82,10 +75,7 @@ jobs:
- name: Configure build environment 2 - name: Configure build environment 2
shell: bash shell: bash
run: | run: |
echo "ARTIFACT_PATTERN=Overte-${{ github.ref_name }}.$INSTALLER_EXT" >> $GITHUB_ENV
echo "BUILD_NUMBER=$GIT_COMMIT_SHORT" >> $GITHUB_ENV
echo "ARTIFACT_PATTERN=Overte-$RELEASE_NUMBER.$INSTALLER_EXT" >> $GITHUB_ENV
echo "CLIENT_ONLY=FALSE" >> $GITHUB_ENV
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
@ -133,7 +123,7 @@ jobs:
- name: Configure CMake - name: Configure CMake
shell: bash shell: bash
# This syntax requires CMake 3.23 # 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 - name: Build application
shell: bash shell: bash
@ -209,7 +199,7 @@ jobs:
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: ${{ env.ARTIFACT_PATTERN }} name: ${{ env.ARTIFACT_PATTERN }}
path: build/${{ env.ARTIFACT_PATTERN }} path: build/Overte-*
if-no-files-found: error if-no-files-found: error
- name: Archive symbols - name: Archive symbols

View file

@ -60,19 +60,6 @@ Where `/path/to/directory` is the path to a directory where you wish the build f
#### Possible Environment Variables #### Possible Environment Variables
```text ```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. // The Interface will have a custom default home and startup location.
PRELOADED_STARTUP_LOCATION=Location/IP/URL PRELOADED_STARTUP_LOCATION=Location/IP/URL
// The Interface will have a custom default script whitelist, comma separated, no spaces. // 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_FILE=Path to certificate
HF_PFX_PASSPHRASE=Passphrase for 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 // Determine if to utilize testing or stable directory services URLs
USE_STABLE_GLOBAL_SERVICES=1 USE_STABLE_GLOBAL_SERVICES=1
BUILD_GLOBAL_SERVICES=STABLE 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 #### Generate Files
```bash ```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 The following build options can be used when running CMake
* BUILD_CLIENT * OVERTE_BUILD_CLIENT
* BUILD_SERVER * OVERTE_BUILD_SERVER
* BUILD_TESTS * OVERTE_BUILD_TESTS
* BUILD_TOOLS * OVERTE_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.
### Developer Build Options ### Developer Build Options
* USE_GLES * OVERTE_RENDERING_BACKEND
* DISABLE_UI * OVERTE_DISABLE_QML
### Devices ### Devices

View file

@ -114,19 +114,6 @@ git fetch --tags
git tag 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 ## Prepare conan
The next step is setting up conan The next step is setting up conan

View file

@ -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. 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 ## FAQ
1. **Problem:** Running the scheme `interface.app` from Xcode causes a crash for Interface related to `libgl`. 1. **Problem:** Running the scheme `interface.app` from Xcode causes a crash for Interface related to `libgl`.

View file

@ -3,96 +3,67 @@
# Copyright 2020-2025 Overte e.V. # Copyright 2020-2025 Overte e.V.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# 3.14 is the minimum version that supports symlinks on Windows # As the official CMake documentation is pretty bad for non-experts, Craig Scott's "Professional CMake: A Practical Guide" is a worthwhile investment,
cmake_minimum_required(VERSION 3.14) # both as a guide and as a reference manual. https://crascit.com/professional-cmake/
# This should allow using long paths on Windows # This should allow using long paths on Windows
SET(CMAKE_NINJA_FORCE_RESPONSE_FILE 1 CACHE INTERNAL "") 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) 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. # Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOMOC ON)
# Instruct CMake to run rcc automatically when needed # Instruct CMake to run rcc automatically when needed
set(CMAKE_AUTORCC ON) 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 # set our OS X deployment target
# (needs to be set before first project() call and before prebuild.py)
if (APPLE) 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() 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 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. # Function alignment is necessary for V8.
# SetAlignedPointerInInternalField requires at least 2 byte alignment and -falign-functions will set alignment # SetAlignedPointerInInternalField requires at least 2 byte alignment and -falign-functions will set alignment
# to machine specific value which should be greater than 2. # to machine specific value which should be greater than 2.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OVERTE_OPTIMIZE_FLAGS} -falign-functions") if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OVERTE_OPTIMIZE_FLAGS} -falign-functions") 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.")
set(ENV{CXXFLAGS} "$ENV{CXXFLAGS} ${OVERTE_OPTIMIZE_FLAGS} -falign-functions") elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
set(ENV{CFLAGS} "$ENV{CFLAGS} ${OVERTE_OPTIMIZE_FLAGS} -falign-functions") # TODO: Find out which architecture optimizations to use on aarch64.
message($ENV{CXXFLAGS}) # 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() endif()
#
# OVERTE_WARNINGS # OVERTE_WARNINGS
# #
# Here we add the ability to allowlist warnings we've determined we can't fix, or are safe to # 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 # We can also treat warnings as errors. Without the allowlist this will almost certainly lead
# to a build failure. # to a build failure.
set(OVERTE_WARNINGS_ALLOWLIST ON CACHE BOOL "Allowlist some warnings we can't currently fix.")
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()
if(OVERTE_WARNINGS_ALLOWLIST) if(OVERTE_WARNINGS_ALLOWLIST)
if (NOT WIN32) if (NOT WIN32)
@ -130,14 +94,13 @@ if(OVERTE_WARNINGS_ALLOWLIST)
endif() endif()
endif() endif()
if(OVERTE_WARNINGS_AS_ERRORS) # Enabling warnings-as-errors by default on our Linux target and on Windows.
if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC" OR (CMAKE_CXX_COMPILER_ID MATCHES "" AND WIN32)) # Our current Linux development target is Ubuntu 22.04, which uses GCC 11.2.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX") # TODO: Enable warnings-as-errors once we stop throwing warnings on the relevant platforms.
set(CMAKE_CFLAGS "${CMAKE_CFLAGS} /WX") if ((CMAKE_CXX_COMPILER_ID MATCHES "GNU") AND (CMAKE_CXX_COMPILER_VERSION MATCHES "11"))
else() set(COMPILE_WARNING_AS_ERROR OFF CACHE BOOL "")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") # Windows
set(CMAKE_CFLAGS "${CMAKE_CFLAGS} -Werror") set(COMPILE_WARNING_AS_ERROR OFF CACHE BOOL "")
endif()
endif() endif()
@ -145,52 +108,43 @@ project(overte)
include("cmake/init.cmake") include("cmake/init.cmake")
include("cmake/compiler.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() 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() 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.")
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.")
# 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)
if (ANDROID OR UWP) if (ANDROID OR UWP)
set(BUILD_SERVER_OPTION OFF) set(OVERTE_BUILD_SERVER OFF CACHE BOOL FORCE "Overwritten (mobile build)")
set(BUILD_TOOLS_OPTION OFF) set(OVERTE_BUILD_TOOLS OFF CACHE BOOL FORCE "Overwritten (mobile build)")
set(BUILD_INSTALLER OFF) set(OVERTE_BUILD_INSTALLER OFF CACHE BOOL FORCE "Overwritten (mobile build)")
endif()
if (CLIENT_ONLY)
set(BUILD_SERVER_OPTION OFF)
endif()
if (SERVER_ONLY)
set(BUILD_CLIENT_OPTION OFF)
set(BUILD_TESTS_OPTION OFF)
endif() endif()
if (ANDROID) if (ANDROID)
set(GLES_OPTION ON)
set(PLATFORM_QT_COMPONENTS AndroidExtras WebView) set(PLATFORM_QT_COMPONENTS AndroidExtras WebView)
add_definitions(-DHIFI_ANDROID_APP=\"${HIFI_ANDROID_APP}\") add_definitions(-DHIFI_ANDROID_APP=\"${HIFI_ANDROID_APP}\")
if ( if (
@ -221,71 +175,62 @@ if (ANDROID)
endif() endif()
else () else ()
set(PLATFORM_QT_COMPONENTS WebEngine Xml) set(PLATFORM_QT_COMPONENTS WebEngine Xml)
endif ()
if (USE_GLES AND (NOT ANDROID AND NOT UNIX))
set(DISABLE_QML_OPTION ON)
endif() 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 (OVERTE_USE_KHR_ROBUSTNESS)
if (USE_KHR_ROBUSTNESS)
add_definitions(-DUSE_KHR_ROBUSTNESS) add_definitions(-DUSE_KHR_ROBUSTNESS)
endif() endif()
if (USE_GLES) if (OVERTE_RENDERING_BACKEND STREQUAL "GLES")
add_definitions(-DUSE_GLES) add_definitions(-DUSE_GLES)
add_definitions(-DGPU_POINTER_STORAGE_SHARED) add_definitions(-DGPU_POINTER_STORAGE_SHARED)
set(PLATFORM_GL_BACKEND gpu-gl-common gpu-gles) 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() else()
add_definitions(-DGPU_POINTER_STORAGE_RAW) message(FATAL_ERROR "Invalid OVERTE_RENDERING_BACKEND set. Expected 'GLES', 'OpenGL', or 'Vulkan'. Got '${OVERTE_RENDERING_BACKEND}'")
set(PLATFORM_GL_BACKEND gpu-gl-common gpu-gl)
endif() endif()
foreach(PLATFORM_QT_COMPONENT ${PLATFORM_QT_COMPONENTS}) foreach(PLATFORM_QT_COMPONENT ${PLATFORM_QT_COMPONENTS})
list(APPEND PLATFORM_QT_LIBRARIES "Qt5::${PLATFORM_QT_COMPONENT}") list(APPEND PLATFORM_QT_LIBRARIES "Qt5::${PLATFORM_QT_COMPONENT}")
endforeach() endforeach()
MESSAGE(STATUS "Use optimized IK: " ${HIFI_USE_OPTIMIZED_IK}) message(STATUS "Use optimized IK: " ${OVERTE_USE_OPTIMIZED_IK})
MESSAGE(STATUS "Build server: " ${BUILD_SERVER}) message(STATUS "Build server: " ${OVERTE_BUILD_SERVER})
MESSAGE(STATUS "Build client: " ${BUILD_CLIENT}) message(STATUS "Build client: " ${OVERTE_BUILD_CLIENT})
MESSAGE(STATUS "Build tests: " ${BUILD_TESTS}) message(STATUS "Build tests: " ${OVERTE_BUILD_TESTS})
MESSAGE(STATUS "Build tools: " ${BUILD_TOOLS}) message(STATUS "Build tools: " ${OVERTE_BUILD_TOOLS})
MESSAGE(STATUS "Build installer: " ${BUILD_INSTALLER}) message(STATUS "Build installer: " ${OVERTE_BUILD_INSTALLER})
MESSAGE(STATUS "GL ES: " ${USE_GLES}) message(STATUS "Rendering backend: " ${OVERTE_RENDERING_BACKEND})
MESSAGE(STATUS "DL serverless content: " ${DOWNLOAD_SERVERLESS_CONTENT}) message(STATUS "DL serverless content: " ${OVERTE_DOWNLOAD_SERVERLESS_CONTENT})
if (DISABLE_QML) if (OVERTE_DISABLE_QML)
MESSAGE(STATUS "QML disabled!") message(STATUS "QML disabled!")
add_definitions(-DDISABLE_QML) add_definitions(-DDISABLE_QML)
endif() endif()
if (DISABLE_KTX_CACHE) if (OVERTE_DISABLE_KTX_CACHE)
MESSAGE(STATUS "KTX cache disabled!") message(STATUS "KTX cache disabled!")
add_definitions(-DDISABLE_KTX_CACHE) add_definitions(-DDISABLE_KTX_CACHE)
endif() endif()
if (UNIX AND DEFINED ENV{HIFI_MEMORY_DEBUGGING}) if (UNIX AND DEFINED ENV{HIFI_MEMORY_DEBUGGING})
MESSAGE(STATUS "Memory debugging is enabled") MESSAGE(STATUS "Memory debugging is enabled")
endif() 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 # Helper projects
# #
@ -327,14 +272,9 @@ add_definitions(-DGLM_FORCE_RADIANS)
add_definitions(-DGLM_ENABLE_EXPERIMENTAL) add_definitions(-DGLM_ENABLE_EXPERIMENTAL)
add_definitions(-DGLM_FORCE_CTOR_INIT) add_definitions(-DGLM_FORCE_CTOR_INIT)
if (WIN32) if (OVERTE_USE_OPTIMIZED_IK)
# Deal with fakakta Visual Studo 2017 bug message(STATUS "Setting definition for using optimized inverse kinematics.")
add_definitions(-DQT_NO_FLOAT16_OPERATORS -DWIN32) add_definitions(-DHIFI_USE_OPTIMIZED_IK)
endif()
if (HIFI_USE_OPTIMIZED_IK)
MESSAGE(STATUS "SET THE USE IK DEFINITION ")
add_definitions(-DHIFI_USE_OPTIMIZED_IK)
endif() endif()
set(HIFI_LIBRARY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries") 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}) set_property(DIRECTORY PROPERTY EP_PREFIX ${EXTERNAL_PROJECT_PREFIX})
setup_externals_binary_dir() 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 # FIXME hack to work on the proper Android toolchain
if (ANDROID) if (ANDROID)
@ -355,11 +295,11 @@ if (BUILD_GPU_FRAME_PLAYER_ONLY)
add_subdirectory(tools/gpu-frame-player) add_subdirectory(tools/gpu-frame-player)
else() 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_subdirectory(tools)
# add subdirectories for all targets # add subdirectories for all targets
if (BUILD_SERVER) if (OVERTE_BUILD_SERVER)
add_subdirectory(assignment-client) add_subdirectory(assignment-client)
set_target_properties(assignment-client PROPERTIES FOLDER "Apps") set_target_properties(assignment-client PROPERTIES FOLDER "Apps")
add_subdirectory(domain-server) add_subdirectory(domain-server)
@ -368,7 +308,7 @@ if (BUILD_SERVER)
set_target_properties(ice-server PROPERTIES FOLDER "Apps") set_target_properties(ice-server PROPERTIES FOLDER "Apps")
endif() endif()
if (BUILD_CLIENT) if (OVERTE_BUILD_CLIENT)
add_subdirectory(interface) add_subdirectory(interface)
if (APPLE) if (APPLE)
set_target_properties(Overte PROPERTIES FOLDER "Apps") set_target_properties(Overte PROPERTIES FOLDER "Apps")
@ -380,25 +320,25 @@ if (BUILD_CLIENT)
option(USE_NEURON "Build Interface with Neuron library/plugin" OFF) option(USE_NEURON "Build Interface with Neuron library/plugin" OFF)
endif() endif()
if (BUILD_CLIENT OR BUILD_SERVER) if (OVERTE_BUILD_CLIENT OR OVERTE_BUILD_SERVER)
add_subdirectory(plugins) add_subdirectory(plugins)
add_subdirectory(server-console) add_subdirectory(server-console)
endif() endif()
endif() endif()
if (BUILD_TESTS) if (OVERTE_BUILD_TESTS)
# Turn on testing so that add_test works # Turn on testing so that add_test works
# MUST be in the root cmake file for ctest to work # MUST be in the root cmake file for ctest to work
include(CTest) include(CTest)
enable_testing() enable_testing()
add_subdirectory(tests) add_subdirectory(tests)
if (BUILD_MANUAL_TESTS) if (OVERTE_BUILD_MANUAL_TESTS)
add_subdirectory(tests-manual) add_subdirectory(tests-manual)
endif() endif()
endif() endif()
if (BUILD_INSTALLER) if (OVERTE_BUILD_INSTALLER)
if (UNIX) if (UNIX)
install( install(
DIRECTORY "${CMAKE_SOURCE_DIR}/scripts" DIRECTORY "${CMAKE_SOURCE_DIR}/scripts"

View file

@ -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. 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` This variable is set by the `project(hifi)` command in `CMakeLists.txt` to `C:/Program Files/hifi` and stored in `build/CMakeCache.txt`
## Packaging ## 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: 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`) 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) 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\`. 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 `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-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. 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. [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. Extract Zip
1. Copy `Include\nsProcess.nsh` to `C:\Program Files (x86)\NSIS\Include\` 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\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. 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. [InetC Plug-in for Nullsoft](http://nsis.sourceforge.net/Inetc_plug-in) - 1.0
1. Extract Zip 1. Extract Zip
1. Copy `Plugin\x86-ansi\InetC.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-ansi\` 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. 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. [NSISpcre Plug-in for Nullsoft](http://nsis.sourceforge.net/NSISpcre_plug-in) - 1.0
1. Extract Zip 1. Extract Zip
1. Copy `NSISpre.nsh` to `C:\Program Files (x86)\NSIS\Include\` 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. 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. [nsisSlideshow Plug-in for Nullsoft](<http://wiz0u.free.fr/prog/nsisSlideshow/>) - 1.7
1. Extract Zip 1. Extract Zip
1. Copy `bin\nsisSlideshow.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-ansi\` 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. 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. [Nsisunz plug-in for Nullsoft](http://nsis.sourceforge.net/Nsisunz_plug-in)
1. Download both Zips and unzip 1. Download both Zips and unzip
1. Copy `nsisunz\Release\nsisunz.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-ansi\` 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. Copy `NSISunzU\Plugin unicode\nsisunz.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-unicode\`
1. [ApplicationID plug-in for Nullsoft]() - 1.0 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. Download [`Pre-built DLLs`](<https://github.com/connectiblutz/NSIS-ApplicationID/releases/download/1.1/NSIS-ApplicationID.zip>)
1. Extract Zip 1. Extract Zip
1. Copy `Release\ApplicationID.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-ansi\` 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. Copy `ReleaseUnicode\ApplicationID.dll` to `C:\Program Files (x86)\NSIS\Plugins\x86-unicode\`
1. [Node.JS and NPM](https://nodejs.org/en/download/) 1. [Node.JS and NPM](https://nodejs.org/en/download/)
1. Install version 10.15.0 LTS (or greater) 1. Install version 10.15.0 LTS (or greater)
#### Code Signing (optional) #### 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. 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 #### Creating the Installer
1. Perform a clean cmake from a new terminal. 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. Open the `overte.sln` solution with elevated (administrator) permissions on Visual Studio and select the **Release** configuration.
1. Build the solution. 1. Build the solution.
1. Build `packaged-server-console-npm-install` (found under **hidden/Server Console**) 1. Build `packaged-server-console-npm-install` (found under **hidden/Server Console**)
1. Build `packaged-server-console` (found under **Server Console**) 1. Build `packaged-server-console` (found under **Server Console**)
This will add 2 folders to `build\server-console\` - This will add 2 folders to `build\server-console\` -
`server-console-win32-x64` and `x64` `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` The installer is now available in `build\_CPack_Packages\win64\NSIS`
#### Create an MSIX Package #### 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). 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. 2. Perform a clean CMake in your build folder. e.g.
```bash ```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. 3. Pick a method to build and package your release.
#### Option A: Use Xcode GUI #### Option A: Use Xcode GUI
1. Perform a Release build of ALL_BUILD 1. Perform a Release build of ALL_BUILD
2. Perform a Release build of `packaged-server-console` 2. Perform a Release build of `packaged-server-console`
This will add a folder to `build\server-console\` - This will add a folder to `build\server-console\` -
Sandbox-darwin-x64 Sandbox-darwin-x64
3. Perform a Release build of `package` 3. Perform a Release build of `package`
Installer is now available in `build/_CPack_Packages/Darwin/DragNDrop` 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 1. Prepare build environment
Follow the [Linux build guide](BUILD_LINUX.md). 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 ```bash
cmake --preset conan-release -DOVERTE_CPU_ARCHITECTURE=-msse3 cmake --preset conan-release
``` ```
3. Create AppImage 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/) 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 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 3. Prepare build environment
```bash ```bash
@ -188,10 +188,7 @@ cd overte
mkdir build mkdir build
rm -rf build/* rm -rf build/*
conan install . -s build_type=Release -b missing -pr:b=default -of build conan install . -s build_type=Release -b missing -pr:b=default -of build
``` cmake --preset conan-release -DOVERTE_BUILD_CLIENT=false -DOVERTE_BUILD_TOOLS=true
Add `PRODUCTION_BUILD=1` to below command for release and release candidate builds.
```bash
cmake --preset conan-release -DOVERTE_CPU_ARCHITECTURE=-msse3
``` ```
4. Build 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/) 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 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 3. Prepare build environment
```bash ```bash
@ -220,10 +217,7 @@ cd overte
mkdir build mkdir build
rm -rf build/* rm -rf build/*
conan install . -s build_type=Release -b missing -pr:b=default -of build conan install . -s build_type=Release -b missing -pr:b=default -of build
``` cmake --preset conan-release -DOVERTE_BUILD_CLIENT=false -DOVERTE_BUILD_TOOLS=true
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
``` ```
4. Build 4. Build

View file

@ -1,5 +1,5 @@
# Copyright 2013-2019 High Fidelity, Inc. # Copyright 2013-2019 High Fidelity, Inc.
# Copyright 2021-2022 Overte e.V. # Copyright 2021-2025 Overte e.V.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(TARGET_NAME assignment-client) set(TARGET_NAME assignment-client)
@ -27,7 +27,7 @@ include_hifi_library_headers(entities)
add_crashpad() add_crashpad()
target_breakpad() target_breakpad()
if (BUILD_TOOLS) if (OVERTE_BUILD_TOOLS)
add_dependencies(${TARGET_NAME} oven) add_dependencies(${TARGET_NAME} oven)
if (WIN32) if (WIN32)
@ -43,7 +43,7 @@ if (BUILD_TOOLS)
$<TARGET_FILE:oven> $<TARGET_FILE:oven>
$<TARGET_FILE_DIR:${TARGET_NAME}>/oven) $<TARGET_FILE_DIR:${TARGET_NAME}>/oven)
endif() endif()
endif (BUILD_TOOLS) endif()
if (WIN32) if (WIN32)
package_libraries_for_deployment() package_libraries_for_deployment()

View file

@ -1,10 +1,6 @@
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG")
if (WIN32) # Building with webrtc-audio-processing fails on cppstd 14.
# Building with webrtc-audio-processing on Windows fails on cppstd 14. set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD 17)
else ()
set(CMAKE_CXX_STANDARD 17)
endif ()
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
if (NOT "${CMAKE_SIZEOF_VOID_P}" EQUAL "8") if (NOT "${CMAKE_SIZEOF_VOID_P}" EQUAL "8")

View file

@ -4,6 +4,7 @@
# #
# Created by Clement Brisset on 01/19/18. # Created by Clement Brisset on 01/19/18.
# Copyright 2018 High Fidelity, Inc. # Copyright 2018 High Fidelity, Inc.
# Copyright 2025 Overte e.V.
# #
# Distributed under the Apache License, Version 2.0. # Distributed under the Apache License, Version 2.0.
# See the accompanying file LICENSE or http:#www.apache.org/licenses/LICENSE-2.0.html # 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) set (USE_CRASHPAD TRUE)
message(STATUS "Checking crashpad config") message(STATUS "Checking crashpad config")
if ("$ENV{CMAKE_BACKTRACE_URL}" STREQUAL "") if (OVERTE_BACKTRACE_URL STREQUAL "")
message(STATUS "Checking crashpad config - CMAKE_BACKTRACE_URL is not set, disabled.") message(STATUS "Checking crashpad config - -DOVERTE_BACKTRACE_URL is empty, disabled.")
set(USE_CRASHPAD FALSE) set(USE_CRASHPAD FALSE)
else()
set(CMAKE_BACKTRACE_URL $ENV{CMAKE_BACKTRACE_URL})
endif() endif()
if ("$ENV{CMAKE_BACKTRACE_TOKEN}" STREQUAL "") if (OVERTE_BACKTRACE_TOKEN STREQUAL "")
message(STATUS "Checking crashpad config - CMAKE_BACKTRACE_TOKEN is not set, disabled.") message(STATUS "Checking crashpad config - -DOVERTE_BACKTRACE_TOKEN is empty, disabled.")
set(USE_CRASHPAD FALSE) set(USE_CRASHPAD FALSE)
else()
set(CMAKE_BACKTRACE_TOKEN $ENV{CMAKE_BACKTRACE_TOKEN})
endif() endif()
if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
@ -42,8 +39,8 @@ macro(add_crashpad)
endif() endif()
add_definitions(-DHAS_CRASHPAD) add_definitions(-DHAS_CRASHPAD)
add_definitions(-DCMAKE_BACKTRACE_URL=\"${CMAKE_BACKTRACE_URL}\") add_definitions(-DOVERTE_BACKTRACE_URL=\"${OVERTE_BACKTRACE_URL}\")
add_definitions(-DCMAKE_BACKTRACE_TOKEN=\"${CMAKE_BACKTRACE_TOKEN}\") add_definitions(-DOVERTE_BACKTRACE_TOKEN=\"${OVERTE_BACKTRACE_TOKEN}\")
target_include_directories(${TARGET_NAME} PRIVATE ${CRASHPAD_INCLUDE_DIRS}) target_include_directories(${TARGET_NAME} PRIVATE ${CRASHPAD_INCLUDE_DIRS})
target_link_libraries(${TARGET_NAME} ${CRASHPAD_LIBRARY} ${CRASHPAD_UTIL_LIBRARY} ${CRASHPAD_BASE_LIBRARY}) target_link_libraries(${TARGET_NAME} ${CRASHPAD_LIBRARY} ${CRASHPAD_UTIL_LIBRARY} ${CRASHPAD_BASE_LIBRARY})

View file

@ -130,7 +130,7 @@ macro(AUTOSCRIBE_SHADER)
file(WRITE "${SHADER_SCRIBED}.name" "${SHADER_NAME}.${SHADER_TYPE}") file(WRITE "${SHADER_SCRIBED}.name" "${SHADER_NAME}.${SHADER_TYPE}")
AUTOSCRIBE_APPEND_QRC("${SHADER_COUNT}/name" "${SHADER_NAME_FILE}") AUTOSCRIBE_APPEND_QRC("${SHADER_COUNT}/name" "${SHADER_NAME_FILE}")
if(USE_GLES) if (OVERTE_RENDERING_BACKEND STREQUAL "GLES")
set(SPIRV_CROSS_ARGS --version 310es) set(SPIRV_CROSS_ARGS --version 310es)
AUTOSCRIBE_PLATFORM_SHADER("310es") AUTOSCRIBE_PLATFORM_SHADER("310es")
AUTOSCRIBE_PLATFORM_SHADER("310es/stereo") AUTOSCRIBE_PLATFORM_SHADER("310es/stereo")

View file

@ -3,6 +3,7 @@
# cmake/macros # cmake/macros
# #
# Copyright 2016 High Fidelity, Inc. # Copyright 2016 High Fidelity, Inc.
# Copyright 2025 Overte e.V.
# Created by Stephen Birarda on January 6th, 2016 # Created by Stephen Birarda on January 6th, 2016
# #
# Distributed under the Apache License, Version 2.0. # Distributed under the Apache License, Version 2.0.
@ -24,7 +25,7 @@ macro(fixup_interface)
") ")
endif () endif ()
if (RELEASE_TYPE STREQUAL "DEV") if (OVERTE_RELEASE_TYPE STREQUAL "DEV")
install(CODE " install(CODE "
execute_process(COMMAND ${MACDEPLOYQT_COMMAND}\ execute_process(COMMAND ${MACDEPLOYQT_COMMAND}\
\${CMAKE_INSTALL_PREFIX}/${_INTERFACE_INSTALL_PATH}/\ \${CMAKE_INSTALL_PREFIX}/${_INTERFACE_INSTALL_PATH}/\

View file

@ -3,6 +3,7 @@
# cmake/macros # cmake/macros
# #
# Copyright 2019 High Fidelity, Inc. # Copyright 2019 High Fidelity, Inc.
# Copyright 2025 Overte e.V.
# Created by Nissim Hadar on January 14th, 2016 # Created by Nissim Hadar on January 14th, 2016
# #
# Distributed under the Apache License, Version 2.0. # Distributed under the Apache License, Version 2.0.
@ -24,7 +25,7 @@ macro(fixup_nitpick)
") ")
endif () endif ()
if (RELEASE_TYPE STREQUAL "DEV") if (OVERTE_RELEASE_TYPE STREQUAL "DEV")
install(CODE " install(CODE "
execute_process(COMMAND ${MACDEPLOYQT_COMMAND}\ execute_process(COMMAND ${MACDEPLOYQT_COMMAND}\
\${CMAKE_INSTALL_PREFIX}/${_NITPICK_INSTALL_PATH}/\ \${CMAKE_INSTALL_PREFIX}/${_NITPICK_INSTALL_PATH}/\

View file

@ -136,11 +136,11 @@ macro(GENERATE_INSTALLERS)
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE") 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") cpack_add_component(${CLIENT_COMPONENT} DISPLAY_NAME "Overte Interface")
endif () endif ()
if (BUILD_SERVER) if (OVERTE_BUILD_SERVER)
cpack_add_component(${SERVER_COMPONENT} DISPLAY_NAME "Overte Server") cpack_add_component(${SERVER_COMPONENT} DISPLAY_NAME "Overte Server")
endif () endif ()

View file

@ -2,7 +2,7 @@
# MemoryDebugger.cmake # MemoryDebugger.cmake
# #
# Copyright 2015 High Fidelity, Inc. # Copyright 2015 High Fidelity, Inc.
# Copyright 2023 Overte e.V. # Copyright 2023-2025 Overte e.V.
# #
# Distributed under the Apache License, Version 2.0. # Distributed under the Apache License, Version 2.0.
# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # 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." ) message(FATAL_ERROR "Thread debugging and memory debugging can't be enabled at the same time." )
endif() 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") 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}") message(WARNING "You should consider building with debugging enabled by passing -DCMAKE_BUILD_TYPE=Debug to CMake. Current type is ${CMAKE_BUILD_TYPE}")
endif() endif()

View file

@ -22,7 +22,7 @@ macro(optional_win_executable_signing)
# setup a post build command to sign the executable # setup a post build command to sign the executable
add_custom_command( add_custom_command(
TARGET ${TARGET_NAME} POST_BUILD 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 () else ()
message(FATAL_ERROR "HF_PFX_PASSPHRASE must be set for executables to be signed.") message(FATAL_ERROR "HF_PFX_PASSPHRASE must be set for executables to be signed.")

View file

@ -5,6 +5,7 @@
# Created by Leonardo Murillo on 07/14/2015. # Created by Leonardo Murillo on 07/14/2015.
# Copyright 2015 High Fidelity, Inc. # Copyright 2015 High Fidelity, Inc.
# Copyright 2020 Vircadia contributors. # Copyright 2020 Vircadia contributors.
# Copyright 2025 Overte e.V.
# #
# Distributed under the Apache License, Version 2.0. # Distributed under the Apache License, Version 2.0.
# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # 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. # and decides how targets should be packaged.
macro(SET_PACKAGING_PARAMETERS) macro(SET_PACKAGING_PARAMETERS)
set(PR_BUILD 0)
set(PRODUCTION_BUILD 0)
set(DEV_BUILD 0)
set(BUILD_GLOBAL_SERVICES "DEVELOPMENT") set(BUILD_GLOBAL_SERVICES "DEVELOPMENT")
set(USE_STABLE_GLOBAL_SERVICES 0) 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(APP_USER_MODEL_ID "com.highfidelity.console-dev")
set_from_env(RELEASE_TYPE RELEASE_TYPE "DEV") set(OVERTE_RELEASE_TYPE "DEV" CACHE STRING "Valid options are: 'PRODUCTION', 'PR', 'NIGHTLY', and 'DEV'.")
set_from_env(RELEASE_NUMBER RELEASE_NUMBER "") 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(STABLE_BUILD STABLE_BUILD 0)
set_from_env(PRELOADED_STARTUP_LOCATION PRELOADED_STARTUP_LOCATION "") set_from_env(PRELOADED_STARTUP_LOCATION PRELOADED_STARTUP_LOCATION "")
set_from_env(PRELOADED_SCRIPT_ALLOWLIST PRELOADED_SCRIPT_ALLOWLIST "") set_from_env(PRELOADED_SCRIPT_ALLOWLIST PRELOADED_SCRIPT_ALLOWLIST "")
set_from_env(BYPASS_SIGNING BYPASS_SIGNING 0) 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 # setup component categories for installer
set(DDE_COMPONENT dde) set(DDE_COMPONENT dde)
@ -43,10 +41,19 @@ macro(SET_PACKAGING_PARAMETERS)
set(INTERFACE_BUNDLE_NAME "interface") set(INTERFACE_BUNDLE_NAME "interface")
endif() endif()
if (RELEASE_TYPE STREQUAL "PRODUCTION") string(TIMESTAMP BUILD_DATE "%Y-%m-%d" UTC)
set(DEPLOY_PACKAGE TRUE)
set(PRODUCTION_BUILD 1) # To not break our NSIS later down the line, we use `1` here instead of `ON`.
set(BUILD_VERSION ${RELEASE_NUMBER}) 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(BUILD_ORGANIZATION "Overte")
set(HIGH_FIDELITY_PROTOCOL "hifi") set(HIGH_FIDELITY_PROTOCOL "hifi")
set(HIGH_FIDELITY_APP_PROTOCOL "hifiapp") set(HIGH_FIDELITY_APP_PROTOCOL "hifiapp")
@ -55,72 +62,60 @@ macro(SET_PACKAGING_PARAMETERS)
# add definition for this release type # add definition for this release type
add_definitions(-DPRODUCTION_BUILD) add_definitions(-DPRODUCTION_BUILD)
# if the build is a PRODUCTION_BUILD from the "stable" branch set(BUILD_GLOBAL_SERVICES "STABLE")
# then use the STABLE gobal services set(USE_STABLE_GLOBAL_SERVICES 1)
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 ()
if (NOT BYPASS_SIGNING) if (NOT BYPASS_SIGNING)
set(BYPASS_SIGNING 0) set(BYPASS_SIGNING 0)
endif () endif()
elseif (RELEASE_TYPE STREQUAL "PR") elseif (OVERTE_RELEASE_TYPE STREQUAL "PR")
set(DEPLOY_PACKAGE TRUE) # To not break our NSIS later down the line, we use `1` here instead of `ON`.
set(PR_BUILD 1) set(PR_BUILD 1 CACHE INTERNAL "")
set(BUILD_VERSION "PR${RELEASE_NUMBER}") set(BUILD_VERSION "PR${OVERTE_RELEASE_NUMBER}-${BUILD_DATE}")
set(BUILD_ORGANIZATION "Overte - PR${RELEASE_NUMBER}") set(BUILD_ORGANIZATION "Overte - ${BUILD_VERSION}")
set(INTERFACE_ICON_PREFIX "interface-beta") set(INTERFACE_ICON_PREFIX "interface-beta")
# add definition for this release type # add definition for this release type
add_definitions(-DPR_BUILD) add_definitions(-DPR_BUILD)
else ()
set(DEV_BUILD 1) elseif (OVERTE_RELEASE_TYPE STREQUAL "NIGHTLY")
set(BUILD_VERSION "dev") # 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(BUILD_ORGANIZATION "Overte - ${BUILD_VERSION}")
set(INTERFACE_ICON_PREFIX "interface-beta") set(INTERFACE_ICON_PREFIX "interface-beta")
# add definition for this release type # add definition for this release type
add_definitions(-DDEV_BUILD) 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") set(NITPICK_BUNDLE_NAME "nitpick")
if (RELEASE_TYPE STREQUAL "PRODUCTION") if (PRODUCTION_BUILD)
set(NITPICK_ICON_PREFIX "nitpick") set(NITPICK_ICON_PREFIX "nitpick")
else () else ()
set(NITPICK_ICON_PREFIX "nitpick-beta") set(NITPICK_ICON_PREFIX "nitpick-beta")
endif () endif ()
string(TIMESTAMP BUILD_TIME "%d/%m/%Y") set(BUILD_VERSION_NO_SHA ${BUILD_VERSION})
if (NOT PRODUCTION_BUILD)
# 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})
# append the abbreviated commit SHA to the build version # append the abbreviated commit SHA to the build version
# since this is a PR build or master/nightly builds # since this is a PR build or master/nightly build
set(BUILD_VERSION_NO_SHA ${BUILD_VERSION}) set(BUILD_VERSION "${BUILD_VERSION}-${OVERTE_GIT_COMMIT_SHORT}")
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)
endif () endif ()
if (APPLE) if (APPLE)
@ -135,10 +130,10 @@ macro(SET_PACKAGING_PARAMETERS)
set(INTERFACE_INSTALL_DIR ".") set(INTERFACE_INSTALL_DIR ".")
set(NITPICK_INSTALL_DIR ".") set(NITPICK_INSTALL_DIR ".")
if (CLIENT_ONLY) if (NOT OVERTE_BUILD_SERVER)
set(CONSOLE_EXEC_NAME "Console.app") set(CONSOLE_EXEC_NAME "Console.app")
else () else ()
set(CONSOLE_EXEC_NAME "Sandbox.app") set(CONSOLE_EXEC_NAME "Sandbox.app")
endif() endif()
set(CONSOLE_INSTALL_APP_PATH "${CONSOLE_INSTALL_DIR}/${CONSOLE_EXEC_NAME}") 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_APP_PATH "${CONSOLE_APP_CONTENTS}/MacOS/Components.app")
set(COMPONENT_INSTALL_DIR "${COMPONENT_APP_PATH}/Contents/MacOS") set(COMPONENT_INSTALL_DIR "${COMPONENT_APP_PATH}/Contents/MacOS")
set(CONSOLE_PLUGIN_INSTALL_DIR "${COMPONENT_APP_PATH}/Contents/PlugIns") set(CONSOLE_PLUGIN_INSTALL_DIR "${COMPONENT_APP_PATH}/Contents/PlugIns")
set(INTERFACE_INSTALL_APP_PATH "${INTERFACE_INSTALL_DIR}/${INTERFACE_BUNDLE_NAME}.app") set(INTERFACE_INSTALL_APP_PATH "${INTERFACE_INSTALL_DIR}/${INTERFACE_BUNDLE_NAME}.app")
set(INTERFACE_ICON_FILENAME "${INTERFACE_ICON_PREFIX}.icns") set(INTERFACE_ICON_FILENAME "${INTERFACE_ICON_PREFIX}.icns")
set(NITPICK_ICON_FILENAME "${NITPICK_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(INTERFACE_HF_SHORTCUT_NAME "${INTERFACE_SHORTCUT_NAME}")
set(CONSOLE_HF_SHORTCUT_NAME "Overte ${CONSOLE_SHORTCUT_NAME}") set(CONSOLE_HF_SHORTCUT_NAME "Overte ${CONSOLE_SHORTCUT_NAME}")
set(SANDBOX_HF_SHORTCUT_NAME "Overte ${SANDBOX_SHORTCUT_NAME}") set(SANDBOX_HF_SHORTCUT_NAME "Overte ${SANDBOX_SHORTCUT_NAME}")
set(PRE_SANDBOX_INTERFACE_SHORTCUT_NAME "Overte") set(PRE_SANDBOX_INTERFACE_SHORTCUT_NAME "Overte")
set(PRE_SANDBOX_CONSOLE_SHORTCUT_NAME "Server Console") set(PRE_SANDBOX_CONSOLE_SHORTCUT_NAME "Server Console")

View file

@ -1,6 +1,7 @@
# #
# Created by Brad Hefta-Gaub on 2016/07/07 # Created by Brad Hefta-Gaub on 2016/07/07
# Copyright 2016 High Fidelity, Inc. # Copyright 2016 High Fidelity, Inc.
# Copyright 2025 Overte e.V.
# #
# Distributed under the Apache License, Version 2.0. # Distributed under the Apache License, Version 2.0.
# See the accompanying file LICENSE or http:#www.apache.org/licenses/LICENSE-2.0.html # 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}) set(PLUGIN_SUBFOLDER ${ARGN})
setup_hifi_library() setup_hifi_library()
if (BUILD_CLIENT) if (OVERTE_BUILD_CLIENT)
if (APPLE) if (APPLE)
add_dependencies(Overte ${TARGET_NAME}) add_dependencies(Overte ${TARGET_NAME})
else() else()
@ -18,7 +19,7 @@ macro(SETUP_HIFI_CLIENT_SERVER_PLUGIN)
endif() endif()
endif() endif()
if (BUILD_SERVER) if (OVERTE_BUILD_SERVER)
add_dependencies(assignment-client ${TARGET_NAME}) add_dependencies(assignment-client ${TARGET_NAME})
endif() endif()

View file

@ -8,7 +8,7 @@
macro(SETUP_HIFI_PLUGIN) macro(SETUP_HIFI_PLUGIN)
set(${TARGET_NAME}_SHARED 1) set(${TARGET_NAME}_SHARED 1)
setup_hifi_library(${ARGV}) setup_hifi_library(${ARGV})
if (BUILD_CLIENT) if (OVERTE_BUILD_CLIENT)
if (APPLE) if (APPLE)
add_dependencies(Overte ${TARGET_NAME}) add_dependencies(Overte ${TARGET_NAME})
else() else()

View file

@ -1,13 +1,14 @@
# #
# Copyright 2015 High Fidelity, Inc. # Copyright 2015 High Fidelity, Inc.
# Copyright 2025 Overte e.V.
# Created by Bradley Austin Davis on 2015/10/10 # Created by Bradley Austin Davis on 2015/10/10
# #
# Distributed under the Apache License, Version 2.0. # Distributed under the Apache License, Version 2.0.
# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
# #
macro(TARGET_NSIGHT) macro(TARGET_NSIGHT)
if (WIN32 AND USE_NSIGHT) if (WIN32 AND OVERTE_USE_NSIGHT)
# grab the global CHECKED_FOR_NSIGHT_ONCE property # grab the global CHECKED_FOR_NSIGHT_ONCE property
get_property(NSIGHT_UNAVAILABLE GLOBAL PROPERTY CHECKED_FOR_NSIGHT_ONCE) get_property(NSIGHT_UNAVAILABLE GLOBAL PROPERTY CHECKED_FOR_NSIGHT_ONCE)

View file

@ -5,6 +5,7 @@
// Created by Stephen Birarda on 1/14/16. // Created by Stephen Birarda on 1/14/16.
// Copyright 2015 High Fidelity, Inc. // Copyright 2015 High Fidelity, Inc.
// Copyright 2021 Vircadia contributors. // Copyright 2021 Vircadia contributors.
// Copyright 2025 Overte e.V.
// //
// Distributed under the Apache License, Version 2.0. // Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // 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 MODIFIED_ORGANIZATION = "@BUILD_ORGANIZATION@";
const QString ORGANIZATION_DOMAIN = "overte.org"; const QString ORGANIZATION_DOMAIN = "overte.org";
const QString VERSION = "@BUILD_VERSION@"; 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_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_STARTUP_LOCATION = "@PRELOADED_STARTUP_LOCATION@";
const QString PRELOADED_SCRIPT_ALLOWLIST = "@PRELOADED_SCRIPT_ALLOWLIST@"; const QString PRELOADED_SCRIPT_ALLOWLIST = "@PRELOADED_SCRIPT_ALLOWLIST@";
enum BuildType { enum BuildType {
Dev, Dev,
PR, PR,
Master, Nightly,
Stable Stable
}; };
@ -42,8 +43,11 @@ namespace BuildInfo {
const BuildType BUILD_TYPE = PR; const BuildType BUILD_TYPE = PR;
const QString BUILD_TYPE_STRING = "pr"; const QString BUILD_TYPE_STRING = "pr";
#elif defined(PRODUCTION_BUILD) #elif defined(PRODUCTION_BUILD)
const BuildType BUILD_TYPE = @STABLE_BUILD@ ? Stable : Master; const BuildType BUILD_TYPE = Stable;
const QString BUILD_TYPE_STRING = @STABLE_BUILD@ ? "stable" : "master"; const QString BUILD_TYPE_STRING = "stable";
#elif defined(NIGHTLY_BUILD)
const BuildType BUILD_TYPE = Nightly;
const QString BUILD_TYPE_STRING = "nightly";
#else #else
const BuildType BUILD_TYPE = Dev; const BuildType BUILD_TYPE = Dev;
const QString BUILD_TYPE_STRING = "dev"; const QString BUILD_TYPE_STRING = "dev";

View file

@ -1,6 +1,6 @@
{ {
"releaseType": "@RELEASE_TYPE@", "releaseType": "@OVERTE_RELEASE_TYPE@",
"buildNumber": "@BUILD_NUMBER@", "buildNumber": "@OVERTE_GIT_COMMIT_SHORT@",
"stableBuild": "@STABLE_BUILD@", "stableBuild": "@STABLE_BUILD@",
"buildIdentifier": "@BUILD_VERSION@", "buildIdentifier": "@BUILD_VERSION@",
"organization": "@BUILD_ORGANIZATION@", "organization": "@BUILD_ORGANIZATION@",

View file

@ -32,10 +32,10 @@ find_package(
) )
if (BUILD_TOOLS AND JSDOC_ENABLED) if (OVERTE_BUILD_TOOLS AND JSDOC_ENABLED)
message(STATUS "JSDoc enabled, depending on jsdoc") 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") add_custom_qrc_path(CUSTOM_INTERFACE_QRC_PATHS "${CMAKE_BINARY_DIR}/tools/jsdoc/out/hifiJSDoc.json" "auto-complete/hifiJSDoc.json")
endif () endif()
set(RESOURCES_QRC ${CMAKE_CURRENT_BINARY_DIR}/resources.qrc) set(RESOURCES_QRC ${CMAKE_CURRENT_BINARY_DIR}/resources.qrc)
set(RESOURCES_RCC ${CMAKE_CURRENT_BINARY_DIR}/resources.rcc) set(RESOURCES_RCC ${CMAKE_CURRENT_BINARY_DIR}/resources.rcc)
@ -48,8 +48,8 @@ else ()
qt5_add_binary_resources(resources "${RESOURCES_QRC}" DESTINATION "${RESOURCES_RCC}") qt5_add_binary_resources(resources "${RESOURCES_QRC}" DESTINATION "${RESOURCES_RCC}")
endif() endif()
if (BUILD_TOOLS AND JSDOC_ENABLED) if (OVERTE_BUILD_TOOLS AND JSDOC_ENABLED)
add_dependencies(resources jsdoc) add_dependencies(resources jsdoc)
endif() endif()
list(APPEND GENERATE_QRC_DEPENDS ${RESOURCES_RCC}) list(APPEND GENERATE_QRC_DEPENDS ${RESOURCES_RCC})
@ -435,7 +435,7 @@ if (SCRIPTS_INSTALL_DIR)
) )
endif() endif()
if (DOWNLOAD_SERVERLESS_CONTENT) if (OVERTE_DOWNLOAD_SERVERLESS_CONTENT)
add_dependency_external_projects(serverless-content) add_dependency_external_projects(serverless-content)
ExternalProject_Get_Property(serverless-content SOURCE_DIR) ExternalProject_Get_Property(serverless-content SOURCE_DIR)

View file

@ -6,7 +6,7 @@
// Created by Andrzej Kapolka on 5/10/13. // Created by Andrzej Kapolka on 5/10/13.
// Copyright 2013 High Fidelity, Inc. // Copyright 2013 High Fidelity, Inc.
// Copyright 2020 Vircadia contributors. // Copyright 2020 Vircadia contributors.
// Copyright 2022-2023 Overte e.V. // Copyright 2022-2025 Overte e.V.
// //
// Distributed under the Apache License, Version 2.0. // Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // 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 // If launched from Steam, let it handle updates
bool buildCanUpdate = BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable 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) { if (!parser.isSet("no-updater") && buildCanUpdate) {
constexpr auto INSTALLER_TYPE_CLIENT_ONLY = "client_only"; constexpr auto INSTALLER_TYPE_CLIENT_ONLY = "client_only";

View file

@ -4,6 +4,7 @@
// //
// Created by David Rowe on 24 Aug 2015. // Created by David Rowe on 24 Aug 2015.
// Copyright 2015 High Fidelity, Inc. // Copyright 2015 High Fidelity, Inc.
// Copyright 2025 Overte e.V.
// //
// Distributed under the Apache License, Version 2.0. // Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // 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" "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."; "crash reporting to help us test this potential addition.";
break; 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" 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" "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."; "crash reporting to help us test the upcoming release.";

View file

@ -45,7 +45,7 @@ if (WIN32)
ExternalProject_Add( ExternalProject_Add(
qtlite 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 URL_HASH MD5=0176277bca37d219e83738caf3a698eb
CONFIGURE_COMMAND "" CONFIGURE_COMMAND ""
BUILD_COMMAND "" BUILD_COMMAND ""
@ -78,7 +78,7 @@ endif ()
if (APPLE) if (APPLE)
ExternalProject_Add( ExternalProject_Add(
qtlite 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 URL_HASH MD5=0cd78d40e5f539a7e314cf99b6cae0d0
CONFIGURE_COMMAND "" CONFIGURE_COMMAND ""
BUILD_COMMAND "" BUILD_COMMAND ""

View file

@ -4,7 +4,7 @@
// //
// Created by Leonardo Murillo on 6/1/2015. // Created by Leonardo Murillo on 6/1/2015.
// Copyright 2015 High Fidelity, Inc. // Copyright 2015 High Fidelity, Inc.
// Copyright 2023 Overte e.V. // Copyright 2023-2025 Overte e.V.
// //
// Distributed under the Apache License, Version 2.0. // Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // 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) { if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable) {
buildsURL = NetworkingConstants::BUILDS_XML_URL; 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; buildsURL = NetworkingConstants::MASTER_BUILDS_XML_URL;
} }
QNetworkRequest latestVersionRequest(buildsURL); QNetworkRequest latestVersionRequest(buildsURL);
latestVersionRequest.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); latestVersionRequest.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
@ -82,10 +82,10 @@ void AutoUpdater::parseLatestVersionData() {
// master builds look at the version node (build number) // master builds look at the version node (build number)
if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable) { if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable) {
versionKey = "stable_version"; versionKey = "stable_version";
} else if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Master) { } else if (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Nightly) {
versionKey = "version"; versionKey = "version";
} }
while (xml.readNextStartElement()) { while (xml.readNextStartElement()) {
if (xml.name() == "projects") { if (xml.name() == "projects") {
while (xml.readNextStartElement()) { while (xml.readNextStartElement()) {

View file

@ -3,7 +3,7 @@
// //
// //
// Created by Dale Glass on 25/06/2023. // 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. // Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // 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: * Reasons for it failing to start include:
* *
* * Not having a crash reporter for the platform * * 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 * * Crash reporter is present and configured, but failed to initialize for some reason
* *
* @return true Crash reporter is present, configured and working. * @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 * 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. * 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 * @return false Crashes will not be reported
*/ */
bool isEnabled() const { return _crashReportingEnabled; } bool isEnabled() const { return _crashReportingEnabled; }
@ -126,7 +126,7 @@ public slots:
/** /**
* @brief Set whether we want to submit crash reports to the report server * @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. * Emits crashReportingEnabledChanged signal.
* *
* @note This automatically calls start(), so it should be called after setPath(), setUrl() and setToken() * @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 * @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. * will be used.
* *
* @param url URL * @param url URL
@ -150,7 +150,7 @@ public slots:
* This is an identifier in the crash collection service, such as Sentry, and may contain * This is an identifier in the crash collection service, such as Sentry, and may contain
* a branch name or a version number. * 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. * will be used.
* *
* @param token Token * @param token Token

View file

@ -4,6 +4,7 @@
// //
// Created by Clement Brisset on 01/19/18. // Created by Clement Brisset on 01/19/18.
// Copyright 2018 High Fidelity, Inc. // Copyright 2018 High Fidelity, Inc.
// Copyright 2025 Overte e.V.
// //
// Distributed under the Apache License, Version 2.0. // Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // 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_URL{ OVERTE_BACKTRACE_URL };
static const std::string BACKTRACE_TOKEN{ CMAKE_BACKTRACE_TOKEN }; static const std::string BACKTRACE_TOKEN{ OVERTE_BACKTRACE_TOKEN };
std::string custom_backtrace_url; std::string custom_backtrace_url;
std::string custom_backtrace_token; std::string custom_backtrace_token;

View file

@ -1,7 +1,7 @@
# #
# Created by Bradley Austin Davis on 2015/10/25 # Created by Bradley Austin Davis on 2015/10/25
# Copyright 2015 High Fidelity, Inc. # 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. # Distributed under the Apache License, Version 2.0.
# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # 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") list(REMOVE_ITEM PLUGIN_SUBDIRS "CMakeFiles")
# client-side plugins # client-side plugins
if (NOT SERVER_ONLY AND NOT ANDROID) if (OVERTE_BUILD_CLIENT AND NOT ANDROID)
if (WIN32 AND (NOT USE_GLES)) if (WIN32 AND (NOT OVERTE_RENDERING_BACKEND STREQUAL "GLES"))
set(DIR "oculus") set(DIR "oculus")
add_subdirectory(${DIR}) add_subdirectory(${DIR})
set(DIR "oculusLegacy") set(DIR "oculusLegacy")

View file

@ -1,14 +1,14 @@
# #
# Created by Bradley Austin Davis on 2015/10/25 # Created by Bradley Austin Davis on 2015/10/25
# Copyright 2015 High Fidelity, Inc. # Copyright 2015 High Fidelity, Inc.
# Copyright 2023 Overte e.V. # Copyright 2023-2025 Overte e.V.
# #
# Distributed under the Apache License, Version 2.0. # Distributed under the Apache License, Version 2.0.
# See the accompanying file LICENSE or http:#www.apache.org/licenses/LICENSE-2.0.html # See the accompanying file LICENSE or http:#www.apache.org/licenses/LICENSE-2.0.html
# SPDX-License-Identifier: Apache-2.0 # 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 we were passed an Oculus App ID for entitlement checks, send that along
if (DEFINED ENV{OCULUS_APP_ID}) if (DEFINED ENV{OCULUS_APP_ID})

View file

@ -2,14 +2,14 @@
# Created by Bradley Austin Davis on 2015/11/18 # Created by Bradley Austin Davis on 2015/11/18
# Copyright 2015 High Fidelity, Inc. # Copyright 2015 High Fidelity, Inc.
# Copyright 2020 Vircadia contributors. # Copyright 2020 Vircadia contributors.
# Copyright 2023 Overte e.V. # Copyright 2023-2025 Overte e.V.
# #
# Distributed under the Apache License, Version 2.0. # Distributed under the Apache License, Version 2.0.
# See the accompanying file LICENSE or http:#www.apache.org/licenses/LICENSE-2.0.html # See the accompanying file LICENSE or http:#www.apache.org/licenses/LICENSE-2.0.html
# SPDX-License-Identifier: Apache-2.0 # 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) set(TARGET_NAME openvr)
setup_hifi_plugin(Gui Qml Multimedia) setup_hifi_plugin(Gui Qml Multimedia)
link_hifi_libraries(shared task gl qml networking controllers ui link_hifi_libraries(shared task gl qml networking controllers ui

View file

@ -1,6 +1,7 @@
# #
# Created by Michael Bailey on 12/20/2019 # Created by Michael Bailey on 12/20/2019
# Copyright 2019 Michael Bailey # Copyright 2019 Michael Bailey
# Copyright 2025 Overte e.V.
# #
# Distributed under the Apache License, Version 2.0. # Distributed under the Apache License, Version 2.0.
# See the accompanying file LICENSE or http:#www.apache.org/licenses/LICENSE-2.0.html # 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) link_hifi_libraries(shared audio plugins)
target_opus() target_opus()
if (BUILD_SERVER) if (OVERTE_BUILD_SERVER)
install_beside_console() install_beside_console()
endif () endif ()

View file

@ -1,6 +1,7 @@
# #
# Created by Brad Hefta-Gaub on 6/9/2016 # Created by Brad Hefta-Gaub on 6/9/2016
# Copyright 2016 High Fidelity, Inc. # Copyright 2016 High Fidelity, Inc.
# Copyright 2025 Overte e.V.
# #
# Distributed under the Apache License, Version 2.0. # Distributed under the Apache License, Version 2.0.
# See the accompanying file LICENSE or http:#www.apache.org/licenses/LICENSE-2.0.html # 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() setup_hifi_client_server_plugin()
link_hifi_libraries(shared audio plugins) link_hifi_libraries(shared audio plugins)
if (BUILD_SERVER) if (OVERTE_BUILD_SERVER)
install_beside_console() install_beside_console()
endif () endif ()

View file

@ -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") set_target_properties(${TARGET_NAME}-npm-install PROPERTIES FOLDER "hidden/Server Console")
# add a dependency from the package target to the server components # add a dependency from the package target to the server components
if (BUILD_CLIENT) if (OVERTE_BUILD_CLIENT)
if (APPLE) if (APPLE)
add_dependencies(${TARGET_NAME} Overte) add_dependencies(${TARGET_NAME} Overte)
else() else()
@ -36,7 +36,7 @@ if (BUILD_CLIENT)
endif() endif()
endif() endif()
if (BUILD_SERVER) if (OVERTE_BUILD_SERVER)
add_dependencies(${TARGET_NAME} assignment-client domain-server) add_dependencies(${TARGET_NAME} assignment-client domain-server)
endif() endif()

View file

@ -22,8 +22,8 @@ function(check_test name)
set(BUILD_TOOL_RESULT ${RESULT} PARENT_SCOPE) set(BUILD_TOOL_RESULT ${RESULT} PARENT_SCOPE)
endfunction() endfunction()
if (BUILD_TOOLS) if (OVERTE_BUILD_TOOLS)
set(ALL_TOOLS set(ALL_TOOLS
udt-test udt-test
gpu-frame-player gpu-frame-player
ice-client ice-client

View file

@ -1,6 +1,6 @@
# Copyright 2013-2019 High Fidelity, Inc. # Copyright 2013-2019 High Fidelity, Inc.
# Copyright 2020 Vircadia contributors. # Copyright 2020 Vircadia contributors.
# Copyright 2022 Overte e.V. # Copyright 2022-2025 Overte e.V.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# Post build script # Post build script
@ -18,7 +18,7 @@ def main():
release_number = os.environ['RELEASE_NUMBER'] release_number = os.environ['RELEASE_NUMBER']
full_prefix = upload_prefix + release_number full_prefix = upload_prefix + release_number
S3 = boto3.client('s3', region_name=os.environ['UPLOAD_REGION'], endpoint_url=os.environ['UPLOAD_ENDPOINT']) 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)) print("Checking for files to upload in {}..".format(path))
files = glob.glob(path, recursive=False) files = glob.glob(path, recursive=False)
for archiveFile in files: for archiveFile in files:

View file

@ -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") 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} COMMAND ${NPM_EXECUTABLE} --no-progress install && ${JSDOC_PATH} ${NATIVE_JSDOC_WORKING_DIR} -c ${JSDOC_CONFIG_PATH} -d ${OUTPUT_DIR}
WORKING_DIRECTORY ${JSDOC_WORKING_DIR} WORKING_DIRECTORY ${JSDOC_WORKING_DIR}
COMMENT "generate the JSDoc JSON" COMMENT "generate the JSDoc JSON"

View file

@ -147,7 +147,7 @@ if (WIN32)
COMMAND "${CMAKE_COMMAND}" -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/AppDataHighFidelity" "$<TARGET_FILE_DIR:${TARGET_NAME}>/AppDataHighFidelity" 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 # This to enable running from the IDE
add_custom_command( add_custom_command(
TARGET ${TARGET_NAME} TARGET ${TARGET_NAME}