Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion cmake/macros/GenerateInstallers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# Created by Leonardo Murillo on 12/16/2015.
# Copyright 2015 High Fidelity, Inc.
# Copyright 2021 Vircadia contributors.
# Copyright 2022-2025 Overte e.V.
# Copyright 2022-2026 Overte e.V.
#
# Distributed under the Apache License, Version 2.0.
# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
Expand Down Expand Up @@ -127,6 +127,17 @@ macro(GENERATE_INSTALLERS)
"The resulting AppImage will not be able to run on most machines. "
"Set APPIMAGE_IGNORE_OPTIMIZATION to continue anyway.")
endif()

# Find and pass QMake to GenerateAppImage.cmake, since QMake tells linuxdeploy-plugin-qt where to find Qt.
find_package(Qt5 COMPONENTS Core REQUIRED)
get_target_property(Qt_Core_Location Qt5::Core LOCATION)
get_filename_component(QT_BIN_DIR ${Qt_Core_Location} DIRECTORY)
find_program(QMAKE_EXECUTABLE qmake PATHS ${QT_BIN_DIR} PATH_SUFFIXES qt5/bin NO_DEFAULT_PATH)
# Every variable starting with CPACK_* is automatically available inside CPack scripts.
set(CPACK_QMAKE_EXECUTABLE ${QMAKE_EXECUTABLE})
if (NOT CPACK_QMAKE_EXECUTABLE)
message(FATAL_ERROR "Could not find QMake at ${QT_BIN_DIR}. QMake is required by linuxdeploy-plugin-qt for finding Qt.")
endif ()
endif ()

# configure a cpack properties file for custom variables in template
Expand Down
4 changes: 3 additions & 1 deletion cmake/modules/GenerateAppImage.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# This gets called by cmake/macros/GenerateInstaller.cmake and is intended to package Interface AppImages only.
#
# Created by Julian Groß on 2025-04-12.
# Copyright 2025 Overte e.V.
# Copyright 2025-2026 Overte e.V.
#
# Distributed under the Apache License, Version 2.0.
# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
Expand Down Expand Up @@ -62,6 +62,8 @@ execute_process(
# https://github.com/probonopd/linuxdeployqt/issues/35
# https://github.com/probonopd/linuxdeployqt/issues/35#issuecomment-382994446
LINUXDEPLOY_EXCLUDED_LIBRARIES=libnss3.so\;libnssutil3.so
# QMake tells linuxdeploy-plugin-qt where to find Qt.
QMAKE=${CPACK_QMAKE_EXECUTABLE}
${LINUXDEPLOY_EXECUTABLE}
--appdir=${CPACK_TEMPORARY_DIRECTORY}
--executable=${CPACK_PACKAGE_DIRECTORY}/interface/interface
Expand Down
10 changes: 4 additions & 6 deletions conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ class Overte(ConanFile):
"qt*:qtwebengine": "True",
"qt*:qtwebsockets": "True",
"qt*:qtwebview": "True",
"qt*:qtx11extras": "True", # Required by gpu-frame-player on Linux
"qt*:qtxmlpatterns": "True",
"qt*:qttools": "True", # windeployqt for Windows
"glad*:spec": "gl",
Expand Down Expand Up @@ -71,11 +72,11 @@ def requirements(self):
self.requires("openexr/3.1.9")
self.requires("openvr/2.2.3@overte/stable")
self.requires("openxr/1.1.46@overte/stable")
self.requires("opus/1.4")
self.requires("opus/1.5.2")
self.requires("polyvox/2025.09.19@overte/experimental#76ce908c1078988dceae5ad32ead2909")
self.requires("quazip/1.4")
self.requires("scribe/2019.02@overte/stable")
self.requires("sdl/2.32.8")
self.requires("sdl/2.32.10")
self.requires("spirv-cross/1.3.268.0")
self.requires("spirv-tools/1.3.268.0")
self.requires("steamworks/158a@overte/prebuild")
Expand All @@ -85,9 +86,6 @@ def requirements(self):
self.requires("zlib/1.3.1")
self.requires("glm/0.9.9.5", force=True) # FIXME: update to version 1.0.1
self.requires("jsoncpp/1.9.6", force=True)
# Fixes build errors on GCC 15. Check if this is still required when upgrading from sdl/2.30.3.
# https://github.com/conan-io/conan-center-index/issues/27265
self.requires("libiconv/1.18", force=True)
openssl = "openssl/1.1.1q"

if self.options.qt_source == "system":
Expand All @@ -97,7 +95,7 @@ def requirements(self):
elif self.options.qt_source == "aqt":
self.requires("qt/5.15.2@overte/aqt", force=True)
else:
self.requires("qt/5.15.18-2026.01.04@overte/stable#30ca36fa18268c7c2de55c3d11102ab7", force=True)
self.requires("qt/5.15.18-2026.01.04@overte/stable#4fc772a2dbcd84731eb6ff9904e6e358", force=True)

if self.settings.os == "Windows":
self.requires("neuron/12.2@overte/prebuild")
Expand Down
22 changes: 22 additions & 0 deletions tools/conan-profiles/linux
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,25 @@ tools.build:cxxflags=['-include', 'cstdint']
[options]
# Required for building oneTBB.
hwloc/*:shared=True

# Options required for building Qt
# Some Qt options are here rather than Overte's conanfile.py to allow for easier usage during Qt package development.
# Version conflict and not needed.
qt*:with_mysql=False
# PulseAudio is used for audio output on Linux.
qt*:with_pulseaudio=True
# Required by qt:with_pulseaudio
pulseaudio*:with_glib=True
# Required for PulseAudio support in Qt.
qt*:with_glib=True
# libpq build error and not needed (PostgreSQL).
qt*:with_pq=False
# Open Database Connectivity
# Avoid additional dependency on iconv.
qt*:with_odbc=False
# Build as shared, to avoid: `Invalid: NSS recipe cannot yet build static library. Contributions are welcome.`
# Required by Qt WebEngine
nss*:shared=True
nspr*:shared=True
# Work around `undefined reference` errors when building NSS.
sqlite3*:shared=True
Loading