From af24bf0fdb66f42f551ce7a03db5aab72b0378eb Mon Sep 17 00:00:00 2001 From: RTUnreal Date: Fri, 29 Aug 2025 20:22:34 +0200 Subject: [PATCH 01/10] add compilation with system libraries (focused on nixos) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Julian Groß --- CMakeLists.txt | 7 ++++++ cmake/macros/AutoScribeShader.cmake | 9 ++++++- cmake/macros/TargetAFF.cmake | 12 +++++---- cmake/macros/TargetBullet.cmake | 11 +++++++-- cmake/macros/TargetCgltf.cmake | 10 ++++++-- cmake/macros/TargetDiscordRPC.cmake | 11 +++++++-- cmake/macros/TargetDraco.cmake | 7 +++++- cmake/macros/TargetEtc2Comp.cmake | 25 ++++++++++++------- cmake/macros/TargetGlm.cmake | 19 ++++++++++----- cmake/macros/TargetNvtt.cmake | 38 +++++++++++++++++++---------- cmake/macros/TargetOpenEXR.cmake | 10 +++++++- cmake/macros/TargetOpenVR.cmake | 11 +++++++-- cmake/macros/TargetOpus.cmake | 11 +++++++-- cmake/macros/TargetPolyvox.cmake | 22 +++++++++++------ cmake/macros/TargetQuazip.cmake | 11 +++++++-- cmake/macros/TargetSDL2.cmake | 2 +- cmake/macros/TargetV8.cmake | 14 ++++++++--- cmake/macros/TargetWebRTC.cmake | 11 +++++++-- interface/CMakeLists.txt | 9 +++++-- plugins/CMakeLists.txt | 2 +- 20 files changed, 187 insertions(+), 65 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 92760f76504..f09f0b6c6ed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -100,6 +100,7 @@ set(OVERTE_TIMESERVER_URL "http://timestamp.comodoca.com?td=sha256" CACHE STRING 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_USE_SYSTEM_LIBS OFF CACHE BOOL "Build with system dependencies.") 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.") @@ -284,6 +285,12 @@ if (OVERTE_BUILD_CLIENT) option(USE_SIXENSE "Build Interface with sixense library/plugin" OFF) option(USE_NEURON "Build Interface with Neuron library/plugin" OFF) + if (OVERTE_USE_SYSTEM_LIBS) + set(USE_STEAMCLIENT OFF) + message(STATUS "Not using STEAMCLIENT for system library build.") + else() + option(USE_STEAMCLIENT "Build Interface with steamworks-client library/plugin" ON) + endif() endif() if (OVERTE_BUILD_CLIENT OR OVERTE_BUILD_SERVER) diff --git a/cmake/macros/AutoScribeShader.cmake b/cmake/macros/AutoScribeShader.cmake index 2fc75644512..fb87346fae3 100644 --- a/cmake/macros/AutoScribeShader.cmake +++ b/cmake/macros/AutoScribeShader.cmake @@ -395,7 +395,14 @@ macro(AUTOSCRIBE_SHADER_LIB) endmacro() macro(AUTOSCRIBE_SHADER_LIBS) - include(${CMAKE_BINARY_DIR}/cmake/ConanToolsDirs.cmake) + if(OVERTE_USE_SYSTEM_LIBS) + set(GLSLANG_DIR "$ENV{GLSLANG_DIR}") + set(SCRIBE_DIR "$ENV{SCRIBE_DIR}") + set(SPIRV_CROSS_DIR "$ENV{SPIRV_CROSS_DIR}") + set(SPIRV_TOOLS_DIR "$ENV{SPIRV_TOOLS_DIR}") + else() + include(${CMAKE_BINARY_DIR}/cmake/ConanToolsDirs.cmake) + endif() message(STATUS "Shader processing start") set(AUTOSCRIBE_HEADER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/headers) diff --git a/cmake/macros/TargetAFF.cmake b/cmake/macros/TargetAFF.cmake index 1e57eeec2cf..4ecf3f93952 100644 --- a/cmake/macros/TargetAFF.cmake +++ b/cmake/macros/TargetAFF.cmake @@ -1,7 +1,9 @@ - macro(TARGET_AFF) - find_package(artery-font-format) - target_link_libraries(${TARGET_NAME} artery-font-format::artery-font-format) + if(OVERTE_USE_SYSTEM_LIBS) + find_path(AFF_INCLUDE_DIRS "artery-font/artery-font.h") + target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${AFF_INCLUDE_DIRS}) + else() + find_package(artery-font-format REQUIRED) + target_link_libraries(${TARGET_NAME} artery-font-format::artery-font-format) + endif() endmacro() - - diff --git a/cmake/macros/TargetBullet.cmake b/cmake/macros/TargetBullet.cmake index 5fc7250295e..c44d904e6ae 100644 --- a/cmake/macros/TargetBullet.cmake +++ b/cmake/macros/TargetBullet.cmake @@ -7,8 +7,15 @@ # See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # macro(TARGET_BULLET) - find_package(Bullet REQUIRED) - target_link_libraries(${TARGET_NAME} Bullet::Bullet) + if(OVERTE_USE_SYSTEM_LIBS) + find_package(PkgConfig REQUIRED) + pkg_check_modules(BULLET REQUIRED bullet) + target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${BULLET_INCLUDE_DIRS}) + target_link_libraries(${TARGET_NAME} ${BULLET_LINK_LIBRARIES}) + else() + find_package(Bullet REQUIRED) + target_link_libraries(${TARGET_NAME} Bullet::Bullet) + endif() endmacro() diff --git a/cmake/macros/TargetCgltf.cmake b/cmake/macros/TargetCgltf.cmake index 1a211b6933c..ac52c1589a2 100644 --- a/cmake/macros/TargetCgltf.cmake +++ b/cmake/macros/TargetCgltf.cmake @@ -1,4 +1,10 @@ macro(TARGET_CGLTF) - find_package(cgltf REQUIRED) - target_link_libraries(${TARGET_NAME} cgltf::cgltf) + if (OVERTE_USE_SYSTEM_LIBS) + find_path(CGLTF_INCLUDE_DIRS "cgltf.h") + + target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${CGLTF_INCLUDE_DIRS}) + else() + find_package(cgltf REQUIRED) + target_link_libraries(${TARGET_NAME} cgltf::cgltf) + endif() endmacro() diff --git a/cmake/macros/TargetDiscordRPC.cmake b/cmake/macros/TargetDiscordRPC.cmake index 8f8072de203..fadffdcf2e7 100644 --- a/cmake/macros/TargetDiscordRPC.cmake +++ b/cmake/macros/TargetDiscordRPC.cmake @@ -1,4 +1,11 @@ macro(TARGET_DISCORD_RPC) - find_package(discord-rpc REQUIRED) - target_link_libraries(${TARGET_NAME} discord-rpc::discord-rpc) + if (OVERTE_USE_SYSTEM_LIBS) + find_path(DiscordRPC_INCLUDE_DIRS "discord_rpc.h") + + target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${DiscordRPC_INCLUDE_DIRS}) + target_link_libraries(${TARGET_NAME} libdiscord-rpc.so) + else() + find_package(discord-rpc REQUIRED) + target_link_libraries(${TARGET_NAME} discord-rpc::discord-rpc) + endif() endmacro() diff --git a/cmake/macros/TargetDraco.cmake b/cmake/macros/TargetDraco.cmake index 93169a1c954..98d8f628e63 100644 --- a/cmake/macros/TargetDraco.cmake +++ b/cmake/macros/TargetDraco.cmake @@ -1,5 +1,10 @@ macro(TARGET_DRACO) - if (ANDROID) + if (OVERTE_USE_SYSTEM_LIBS) + find_package(PkgConfig REQUIRED) + pkg_check_modules(Draco REQUIRED draco) + target_include_directories(${TARGET_NAME} SYSTEM PUBLIC ${Draco_INCLUDE_DIRS}) + target_link_libraries(${TARGET_NAME} ${Draco_LINK_LIBRARIES}) + elseif (ANDROID) set(INSTALL_DIR ${HIFI_ANDROID_PRECOMPILED}/draco) set(DRACO_INCLUDE_DIRS "${INSTALL_DIR}/include" CACHE STRING INTERNAL) set(LIB_DIR ${INSTALL_DIR}/lib) diff --git a/cmake/macros/TargetEtc2Comp.cmake b/cmake/macros/TargetEtc2Comp.cmake index faa672e69b3..10caed140f8 100644 --- a/cmake/macros/TargetEtc2Comp.cmake +++ b/cmake/macros/TargetEtc2Comp.cmake @@ -6,16 +6,23 @@ # See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # macro(TARGET_ETC2COMP) - if (ANDROID) - set(INSTALL_DIR ${HIFI_ANDROID_PRECOMPILED}/etc2comp) - set(ETC2COMP_INCLUDE_DIRS "${INSTALL_DIR}/include" "${INSTALL_DIR}/include/Etc" "${INSTALL_DIR}/include/EtcCodec") - set(ETC2COMP_LIBRARY_DEBUG ${INSTALL_DIR}/lib/libEtcLib.a) - set(ETC2COMP_LIBRARY_RELEASE ${INSTALL_DIR}/lib/libEtcLib.a) - target_include_directories(${TARGET_NAME} PRIVATE ${ETC2COMP_INCLUDE_DIRS}) + if (OVERTE_USE_SYSTEM_LIBS) + find_path(ETC2COMP_INCLUDE_DIRS "EtcLib/Etc/Etc.h") + + target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${ETC2COMP_INCLUDE_DIRS} "${ETC2COMP_INCLUDE_DIRS}/EtcLib/Etc" "${ETC2COMP_INCLUDE_DIRS}/EtcLib/EtcCodec") + target_link_libraries(${TARGET_NAME} libEtcLib.a) else() - find_package(etc2comp REQUIRED) - endif() + if (ANDROID) + set(INSTALL_DIR ${HIFI_ANDROID_PRECOMPILED}/etc2comp) + set(ETC2COMP_INCLUDE_DIRS "${INSTALL_DIR}/include" "${INSTALL_DIR}/include/Etc" "${INSTALL_DIR}/include/EtcCodec") + set(ETC2COMP_LIBRARY_DEBUG ${INSTALL_DIR}/lib/libEtcLib.a) + set(ETC2COMP_LIBRARY_RELEASE ${INSTALL_DIR}/lib/libEtcLib.a) + target_include_directories(${TARGET_NAME} PRIVATE ${ETC2COMP_INCLUDE_DIRS}) + else() + find_package(etc2comp REQUIRED) + endif() - target_link_libraries(${TARGET_NAME} etc2comp::etc2comp) + target_link_libraries(${TARGET_NAME} etc2comp::etc2comp) + endif() endmacro() diff --git a/cmake/macros/TargetGlm.cmake b/cmake/macros/TargetGlm.cmake index 300bff76134..7d74e6f05b1 100644 --- a/cmake/macros/TargetGlm.cmake +++ b/cmake/macros/TargetGlm.cmake @@ -7,9 +7,16 @@ # See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # macro(TARGET_GLM) - find_package(glm CONFIG REQUIRED) - target_link_libraries(${TARGET_NAME} glm::glm) - target_compile_definitions(${TARGET_NAME} PUBLIC GLM_FORCE_RADIANS) - target_compile_definitions(${TARGET_NAME} PUBLIC GLM_ENABLE_EXPERIMENTAL) - target_compile_definitions(${TARGET_NAME} PUBLIC GLM_FORCE_CTOR_INIT) -endmacro() \ No newline at end of file + if (OVERTE_USE_SYSTEM_LIBS) + find_package(PkgConfig REQUIRED) + pkg_check_modules(Glm REQUIRED glm) + target_include_directories(${TARGET_NAME} SYSTEM PUBLIC ${Glm_INCLUDE_DIRS}) + target_link_libraries(${TARGET_NAME} ${Glm_LINK_LIBRARIES}) + else() + find_package(glm CONFIG REQUIRED) + target_link_libraries(${TARGET_NAME} glm::glm) + target_compile_definitions(${TARGET_NAME} PUBLIC GLM_FORCE_RADIANS) + target_compile_definitions(${TARGET_NAME} PUBLIC GLM_ENABLE_EXPERIMENTAL) + target_compile_definitions(${TARGET_NAME} PUBLIC GLM_FORCE_CTOR_INIT) + endif() +endmacro() diff --git a/cmake/macros/TargetNvtt.cmake b/cmake/macros/TargetNvtt.cmake index e81d3be2f2e..2fc8b7a66b9 100644 --- a/cmake/macros/TargetNvtt.cmake +++ b/cmake/macros/TargetNvtt.cmake @@ -6,21 +6,33 @@ # See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # macro(TARGET_NVTT) - if (ANDROID) - set(NVTT_INSTALL_DIR ${HIFI_ANDROID_PRECOMPILED}/nvtt) - set(NVTT_LIB_DIR "${NVTT_INSTALL_DIR}/lib") - set(NVTT_INCLUDE_DIRS "${NVTT_INSTALL_DIR}/include" CACHE STRING INTERNAL) - list(APPEND NVTT_LIBS "${NVTT_LIB_DIR}/libnvcore.so") - list(APPEND NVTT_LIBS "${NVTT_LIB_DIR}/libnvmath.so") - list(APPEND NVTT_LIBS "${NVTT_LIB_DIR}/libnvimage.so") - list(APPEND NVTT_LIBS "${NVTT_LIB_DIR}/libnvtt.so") - set(NVTT_LIBRARIES ${NVTT_LIBS} CACHE STRING INTERNAL) - target_include_directories(${TARGET_NAME} PRIVATE ${NVTT_INCLUDE_DIRS}) + if (OVERTE_USE_SYSTEM_LIBS) + find_path(NVTT_INCLUDE_DIRS "nvtt/nvtt.h") + FIND_LIBRARY(NVTT_LIBRARY NAMES nvtt PATHS $ENV{NVTT_DIR} PATH_SUFFIXES lib lib/static) + FIND_LIBRARY(NVIMAGE_LIBRARY NAMES nvimage PATHS $ENV{NVTT_DIR} PATH_SUFFIXES lib lib/static) + FIND_LIBRARY(NVMATH_LIBRARY NAMES nvmath PATHS $ENV{NVTT_DIR} PATH_SUFFIXES lib lib/static) + FIND_LIBRARY(NVCORE_LIBRARY NAMES nvcore PATHS $ENV{NVTT_DIR} PATH_SUFFIXES lib lib/static) + FIND_LIBRARY(NVTHREAD_LIBRARY NAMES nvthread PATHS $ENV{NVTT_DIR} PATH_SUFFIXES lib lib/static) + + target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${NVTT_INCLUDE_DIRS}) + target_link_libraries(${TARGET_NAME} ${NVTT_LIBRARY} ${NVIMAGE_LIBRARY} ${NVMATH_LIBRARY} ${NVCORE_LIBRARY} ${NVTHREAD_LIBRARY}) else() - find_package(nvidia-texture-tools REQUIRED) - endif() + if (ANDROID) + set(NVTT_INSTALL_DIR ${HIFI_ANDROID_PRECOMPILED}/nvtt) + set(NVTT_LIB_DIR "${NVTT_INSTALL_DIR}/lib") + set(NVTT_INCLUDE_DIRS "${NVTT_INSTALL_DIR}/include" CACHE STRING INTERNAL) + list(APPEND NVTT_LIBS "${NVTT_LIB_DIR}/libnvcore.so") + list(APPEND NVTT_LIBS "${NVTT_LIB_DIR}/libnvmath.so") + list(APPEND NVTT_LIBS "${NVTT_LIB_DIR}/libnvimage.so") + list(APPEND NVTT_LIBS "${NVTT_LIB_DIR}/libnvtt.so") + set(NVTT_LIBRARIES ${NVTT_LIBS} CACHE STRING INTERNAL) + target_include_directories(${TARGET_NAME} PRIVATE ${NVTT_INCLUDE_DIRS}) + else() + find_package(nvidia-texture-tools REQUIRED) + endif() - target_link_libraries(${TARGET_NAME} nvidia-texture-tools::nvidia-texture-tools) + target_link_libraries(${TARGET_NAME} nvidia-texture-tools::nvidia-texture-tools) + endif() if ((NOT WIN32) AND (NOT ANDROID) AND (NOT APPLE)) find_package(OpenMP) diff --git a/cmake/macros/TargetOpenEXR.cmake b/cmake/macros/TargetOpenEXR.cmake index 9353cf40e4f..c4363d6ba2c 100644 --- a/cmake/macros/TargetOpenEXR.cmake +++ b/cmake/macros/TargetOpenEXR.cmake @@ -8,6 +8,14 @@ macro(TARGET_OPENEXR) if (NOT ANDROID) find_package(OpenEXR REQUIRED) - target_link_libraries(${TARGET_NAME} openexr::openexr) + if(OVERTE_USE_SYSTEM_LIBS) + find_package(PkgConfig REQUIRED) + pkg_check_modules(Imath REQUIRED Imath) + message("${Imath_INCLUDE_DIRS}") + target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${Imath_INCLUDE_DIRS}) + target_link_libraries(${TARGET_NAME} OpenEXR::OpenEXR) + else() + target_link_libraries(${TARGET_NAME} openexr::openexr) + endif() endif() endmacro() diff --git a/cmake/macros/TargetOpenVR.cmake b/cmake/macros/TargetOpenVR.cmake index 4eda2514342..3d55e023569 100644 --- a/cmake/macros/TargetOpenVR.cmake +++ b/cmake/macros/TargetOpenVR.cmake @@ -6,6 +6,13 @@ # See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # macro(TARGET_OPENVR) - find_package(OpenVR REQUIRED) - target_link_libraries(${TARGET_NAME} openvr::openvr) + if(OVERTE_USE_SYSTEM_LIBS) + find_package(PkgConfig REQUIRED) + pkg_check_modules(OpenVR REQUIRED openvr) + target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${OpenVR_INCLUDE_DIRS}) + target_link_libraries(${TARGET_NAME} ${OpenVR_LINK_LIBRARIES}) + else() + find_package(OpenVR REQUIRED) + target_link_libraries(${TARGET_NAME} openvr::openvr) + endif() endmacro() diff --git a/cmake/macros/TargetOpus.cmake b/cmake/macros/TargetOpus.cmake index 0744e0af408..c9cf9045692 100644 --- a/cmake/macros/TargetOpus.cmake +++ b/cmake/macros/TargetOpus.cmake @@ -6,6 +6,13 @@ # See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # macro(TARGET_opus) - find_package(Opus REQUIRED) - target_link_libraries(${TARGET_NAME} Opus::opus) + if(OVERTE_USE_SYSTEM_LIBS) + find_package(PkgConfig REQUIRED) + pkg_check_modules(Opus REQUIRED opus) + target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${Opus_INCLUDE_DIRS}) + target_link_libraries(${TARGET_NAME} ${Opus_LINK_LIBRARIES}) + else() + find_package(Opus REQUIRED) + target_link_libraries(${TARGET_NAME} Opus::opus) + endif() endmacro() diff --git a/cmake/macros/TargetPolyvox.cmake b/cmake/macros/TargetPolyvox.cmake index 236184143d4..ba78fcb22c4 100644 --- a/cmake/macros/TargetPolyvox.cmake +++ b/cmake/macros/TargetPolyvox.cmake @@ -6,15 +6,21 @@ # See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # macro(TARGET_POLYVOX) - if (ANDROID) - set(INSTALL_DIR ${HIFI_ANDROID_PRECOMPILED}/polyvox) - set(POLYVOX_INCLUDE_DIRS "${INSTALL_DIR}/include" CACHE STRING INTERNAL) - set(LIB_DIR ${INSTALL_DIR}/lib) - list(APPEND POLYVOX_LIBRARIES ${LIB_DIR}/libPolyVoxUtil.so) - list(APPEND POLYVOX_LIBRARIES ${LIB_DIR}/Release/libPolyVoxCore.so) + if(OVERTE_USE_SYSTEM_LIBS) + find_package(PolyVox REQUIRED) + target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${PolyVox_INCLUDE_DIRS}) + target_link_libraries(${TARGET_NAME} ${PolyVox_LIBRARIES}) else() - find_package(polyvox REQUIRED) + if (ANDROID) + set(INSTALL_DIR ${HIFI_ANDROID_PRECOMPILED}/polyvox) + set(POLYVOX_INCLUDE_DIRS "${INSTALL_DIR}/include" CACHE STRING INTERNAL) + set(LIB_DIR ${INSTALL_DIR}/lib) + list(APPEND POLYVOX_LIBRARIES ${LIB_DIR}/libPolyVoxUtil.so) + list(APPEND POLYVOX_LIBRARIES ${LIB_DIR}/Release/libPolyVoxCore.so) + else() + find_package(polyvox REQUIRED) + endif() + target_link_libraries(${TARGET_NAME} polyvox::polyvox) endif() - target_link_libraries(${TARGET_NAME} polyvox::polyvox) endmacro() diff --git a/cmake/macros/TargetQuazip.cmake b/cmake/macros/TargetQuazip.cmake index bc69e476d5e..bf495536475 100644 --- a/cmake/macros/TargetQuazip.cmake +++ b/cmake/macros/TargetQuazip.cmake @@ -6,6 +6,13 @@ # See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # macro(TARGET_QUAZIP) - find_package(QuaZip-Qt5 REQUIRED) - target_link_libraries(${TARGET_NAME} QuaZip::QuaZip) + if(OVERTE_USE_SYSTEM_LIBS) + find_package(PkgConfig REQUIRED) + pkg_check_modules(QuaZip REQUIRED quazip1-qt5) + target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${QuaZip_INCLUDE_DIRS}) + target_link_libraries(${TARGET_NAME} ${QuaZip_LINK_LIBRARIES}) + else() + find_package(QuaZip-Qt5 REQUIRED) + target_link_libraries(${TARGET_NAME} QuaZip::QuaZip) + endif() endmacro() diff --git a/cmake/macros/TargetSDL2.cmake b/cmake/macros/TargetSDL2.cmake index e5ad2a92776..2d87c23ee9b 100644 --- a/cmake/macros/TargetSDL2.cmake +++ b/cmake/macros/TargetSDL2.cmake @@ -7,7 +7,7 @@ # macro(TARGET_SDL2) find_package(SDL2 CONFIG REQUIRED) - if (WIN32) + if (WIN32 OR OVERTE_USE_SYSTEM_LIBS) target_link_libraries(${TARGET_NAME} SDL2::SDL2) else() target_link_libraries(${TARGET_NAME} SDL2::SDL2-static) diff --git a/cmake/macros/TargetV8.cmake b/cmake/macros/TargetV8.cmake index ffa106e72d9..658963e6c59 100644 --- a/cmake/macros/TargetV8.cmake +++ b/cmake/macros/TargetV8.cmake @@ -7,6 +7,14 @@ # SPDX-License-Identifier: Apache-2.0 # macro(TARGET_V8) - find_package(libnode REQUIRED) - target_link_libraries(${TARGET_NAME} libnode::libnode) -endmacro() \ No newline at end of file + if(OVERTE_USE_SYSTEM_LIBS) + # NOTE: this is configured for NixOS specifically + find_package(PkgConfig REQUIRED) + pkg_check_modules(libv8 REQUIRED v8) + target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${libv8_INCLUDE_DIRS}) + target_link_libraries(${TARGET_NAME} ${libv8_LINK_LIBRARIES}) + else() + find_package(libnode REQUIRED) + target_link_libraries(${TARGET_NAME} libnode::libnode) + endif() +endmacro() diff --git a/cmake/macros/TargetWebRTC.cmake b/cmake/macros/TargetWebRTC.cmake index a4db07b3e6d..4ad8f71f9b9 100644 --- a/cmake/macros/TargetWebRTC.cmake +++ b/cmake/macros/TargetWebRTC.cmake @@ -6,6 +6,13 @@ # See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html # macro(TARGET_WEBRTC) - find_package(webrtc-audio-processing REQUIRED) - target_link_libraries(${TARGET_NAME} webrtc-audio-processing::webrtc-audio-processing) + if (OVERTE_USE_SYSTEM_LIBS) + find_package(PkgConfig REQUIRED) + pkg_check_modules(WebRTC REQUIRED webrtc-audio-processing-2) + target_include_directories(${TARGET_NAME} SYSTEM PUBLIC ${WebRTC_INCLUDE_DIRS}) + target_link_libraries(${TARGET_NAME} ${WebRTC_LINK_LIBRARIES}) + else() + find_package(webrtc-audio-processing REQUIRED) + target_link_libraries(${TARGET_NAME} webrtc-audio-processing::webrtc-audio-processing) + endif() endmacro() diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt index c1c39db5291..92ac16c68bd 100644 --- a/interface/CMakeLists.txt +++ b/interface/CMakeLists.txt @@ -456,8 +456,13 @@ set(TARGET_INSTALL_COMPONENT ${CLIENT_COMPONENT}) manually_install_openssl_for_qt() package_libraries_for_deployment() -find_package(GifCreator REQUIRED) -target_link_libraries(${TARGET_NAME} GifCreator::GifCreator) +if(OVERTE_USE_SYSTEM_LIBS) + find_path(GIFCREATOR_INCLUDE_DIRS "GifCreator/GifCreator.h") + target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${GIFCREATOR_INCLUDE_DIRS} "${GIFCREATOR_INCLUDE_DIRS}/GifCreator") +else() + find_package(GifCreator REQUIRED) + target_link_libraries(${TARGET_NAME} GifCreator::GifCreator) +endif() # tell CMake to exclude ui_console.h for policy CMP0071 set_property(SOURCE ui_console.h PROPERTY SKIP_AUTOMOC ON) diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index fca001a37e3..efb84157c57 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -48,7 +48,7 @@ if (OVERTE_BUILD_CLIENT AND NOT ANDROID) set(DIR "hifiKinect") add_subdirectory(${DIR}) - if (NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + if (USE_STEAMWORKS AND NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") set(DIR "steamClient") add_subdirectory(${DIR}) endif() From 328792a9639c2f6e9add697ebf25bec57024936f Mon Sep 17 00:00:00 2001 From: RTUnreal Date: Fri, 29 Aug 2025 20:46:02 +0200 Subject: [PATCH 02/10] add nix package definition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Julian Groß --- flake.lock | 61 +++++++++++++ flake.nix | 84 ++++++++++++++++++ nix/artery-font-format.nix | 16 ++++ nix/cgltf.nix | 22 +++++ nix/draco.diff | 24 +++++ nix/draco.nix | 25 ++++++ nix/etc2comp.nix | 28 ++++++ nix/gif_creator.nix | 14 +++ nix/glad.nix | 28 ++++++ nix/glm.nix | 59 +++++++++++++ nix/glm.pc.in | 7 ++ nix/overte.nix | 176 +++++++++++++++++++++++++++++++++++++ nix/polyvox.nix | 20 +++++ nix/scribe.nix | 16 ++++ 14 files changed, 580 insertions(+) create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 nix/artery-font-format.nix create mode 100644 nix/cgltf.nix create mode 100644 nix/draco.diff create mode 100644 nix/draco.nix create mode 100644 nix/etc2comp.nix create mode 100644 nix/gif_creator.nix create mode 100644 nix/glad.nix create mode 100644 nix/glm.nix create mode 100644 nix/glm.pc.in create mode 100644 nix/overte.nix create mode 100644 nix/polyvox.nix create mode 100644 nix/scribe.nix diff --git a/flake.lock b/flake.lock new file mode 100644 index 00000000000..cc94b9578f5 --- /dev/null +++ b/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1754487366, + "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1756542300, + "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1753579242, + "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 00000000000..4e95ccfcffd --- /dev/null +++ b/flake.nix @@ -0,0 +1,84 @@ +{ + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs?ref=nixos-unstable"; + flake-parts.url = "github:hercules-ci/flake-parts"; + }; + outputs = + inputs: + inputs.flake-parts.lib.mkFlake { inherit inputs; } ( + { inputs, ... }: + { + systems = [ + "x86_64-linux" + "aarch64-linux" + "aarch64-darwin" + ]; + + perSystem = + { + pkgs, + lib, + self', + inputs', + ... + }: + { + packages = { + glad = pkgs.callPackage ./nix/glad.nix { }; + etc2comp = pkgs.callPackage ./nix/etc2comp.nix { }; + + cgltf = pkgs.callPackage ./nix/cgltf.nix { }; + + artery-font-format = pkgs.callPackage ./nix/artery-font-format.nix { }; + + polyvox = pkgs.callPackage ./nix/polyvox.nix { }; + + gif_creator = pkgs.callPackage ./nix/gif_creator.nix { }; + + scribe = pkgs.callPackage ./nix/scribe.nix { }; + + overte-full = pkgs.callPackage ./nix/overte.nix { + inherit (self'.packages) + glad + scribe + gif_creator + polyvox + artery-font-format + cgltf + etc2comp + draco + glm + ; + libv8 = pkgs.nodejs_22.libv8; + }; + + # TODO: update/remove when overte updates to more modern version + draco = pkgs.callPackage ./nix/draco.nix { }; + + glm = pkgs.callPackage ./nix/glm.nix { }; + + default = self'.packages.overte-full; + }; + devShells.default = pkgs.mkShell { + packages = [ + pkgs.conan + pkgs.ninja + pkgs.gdb + ]; + inputsFrom = [ self'.packages.overte-full ]; + + buildInputs = [ pkgs.libsForQt5.full ]; + + inherit (self'.packages.overte-full) + NVTT_DIR + CXXFLAGS + GLSLANG_DIR + SCRIBE_DIR + SPIRV_CROSS_DIR + SPIRV_TOOLS_DIR + ; + }; + }; + } + ); +} diff --git a/nix/artery-font-format.nix b/nix/artery-font-format.nix new file mode 100644 index 00000000000..fbc8ae2e604 --- /dev/null +++ b/nix/artery-font-format.nix @@ -0,0 +1,16 @@ +{ stdenv, fetchFromGitHub }: +stdenv.mkDerivation rec { + pname = "artery-font-format"; + version = "1.1"; + src = fetchFromGitHub { + owner = "Chlumsky"; + repo = "artery-font-format"; + tag = "v${version}"; + hash = "sha256-JozvSQJt/62083sGX0jwMC2xmmpYrGvwd9MIfHtnqCs="; + }; + + installPhase = '' + mkdir -p $out/include/ + cp -r artery-font $out/include/ + ''; +} diff --git a/nix/cgltf.nix b/nix/cgltf.nix new file mode 100644 index 00000000000..a83aacb960e --- /dev/null +++ b/nix/cgltf.nix @@ -0,0 +1,22 @@ +{ + stdenv, + fetchFromGitHub, +}: +stdenv.mkDerivation rec { + pname = "cgltf"; + version = "1.15"; + src = fetchFromGitHub { + owner = "jkuhlmann"; + repo = "cgltf"; + tag = "v${version}"; + hash = "sha256-e+sVqcdOuLhsDHVntGzAwxtPxookrn706yEWDzNVvgI="; + }; + outputs = [ + "out" + "dev" + ]; + installPhase = '' + mkdir -p $dev/include $out + cp cgltf* $dev/include/ + ''; +} diff --git a/nix/draco.diff b/nix/draco.diff new file mode 100644 index 00000000000..c5b6484a6f3 --- /dev/null +++ b/nix/draco.diff @@ -0,0 +1,24 @@ +diff --git a/src/draco/core/hash_utils.h b/src/draco/core/hash_utils.h +index 0e8da60..c4a0b3f 100644 +--- a/src/draco/core/hash_utils.h ++++ b/src/draco/core/hash_utils.h +@@ -17,6 +17,7 @@ + + #include + #include ++#include + + // TODO(fgalligan): Move this to core. + +diff --git a/src/draco/io/parser_utils.cc b/src/draco/io/parser_utils.cc +index 0a22ba1..f6d040a 100644 +--- a/src/draco/io/parser_utils.cc ++++ b/src/draco/io/parser_utils.cc +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + + namespace draco { + namespace parser { diff --git a/nix/draco.nix b/nix/draco.nix new file mode 100644 index 00000000000..4b4596b0ff5 --- /dev/null +++ b/nix/draco.nix @@ -0,0 +1,25 @@ +# copied from: https://github.com/NixOS/nixpkgs/blob/6a78816d7420ba5cb3093d4f0412d2bf0a57bfdd/pkgs/development/libraries/draco/default.nix +{ + stdenv, + fetchFromGitHub, + cmake, +}: +stdenv.mkDerivation rec { + version = "1.3.5"; + pname = "draco"; + src = fetchFromGitHub { + owner = "google"; + repo = "draco"; + rev = version; + hash = "sha256-/p/hQbCGX6lunuO7ECjvrKHBi3jV6cSPdrU9MIxAVhk="; + }; + patches = [ ./draco.diff ]; + enableParallelBuilding = true; + nativeBuildInputs = [ cmake ]; + cmakeFlags = [ + # Fake these since we are building from a tarball + "-Ddraco_git_hash=${version}" + "-Ddraco_git_desc=${version}" + "-DBUILD_UNITY_PLUGIN=1" + ]; +} diff --git a/nix/etc2comp.nix b/nix/etc2comp.nix new file mode 100644 index 00000000000..1cb11af5cd1 --- /dev/null +++ b/nix/etc2comp.nix @@ -0,0 +1,28 @@ +{ + stdenv, + fetchFromGitHub, + cmake, +}: +stdenv.mkDerivation { + pname = "etc2comp"; + version = "unstable-2022-06-01"; + src = fetchFromGitHub { + owner = "google"; + repo = "etc2comp"; + rev = "39422c1aa2f4889d636db5790af1d0be6ff3a226"; + hash = "sha256-mLr2Fsn9s9eWi71ljCll8c1hCk+dW6jCr7GG67ZTZ00="; + }; + nativeBuildInputs = [ cmake ]; + outputs = [ + "out" + "dev" + "lib" + ]; + installPhase = '' + mkdir -p $lib/lib $dev/include $out/bin + cp EtcLib/libEtcLib.a $lib/lib/ + cp EtcTool/EtcTool $out/bin/ + cp -r ../EtcLib $dev/include/ + ''; + meta.mainProgram = "EtcTool"; +} diff --git a/nix/gif_creator.nix b/nix/gif_creator.nix new file mode 100644 index 00000000000..48a6e716eab --- /dev/null +++ b/nix/gif_creator.nix @@ -0,0 +1,14 @@ +{ stdenv, fetchzip }: +stdenv.mkDerivation { + pname = "GifCreator"; + version = "2016.11"; + src = fetchzip { + url = "https://build-deps.overte.org/dependencies/GifCreator.zip"; + hash = "sha256-WxYVy8T10ASsrvnHUdaoeh7befsFDlpR6ZsFtXTgFWA="; + }; + + installPhase = '' + mkdir -p $out/include/GifCreator + cp GifCreator.h $out/include/GifCreator/ + ''; +} diff --git a/nix/glad.nix b/nix/glad.nix new file mode 100644 index 00000000000..8694596a379 --- /dev/null +++ b/nix/glad.nix @@ -0,0 +1,28 @@ +{ + cmake, + fetchFromGitHub, + stdenv, + python3, +}: +stdenv.mkDerivation rec { + pname = "glad"; + version = "0.1.36"; + src = fetchFromGitHub { + owner = "Dav1dde"; + repo = "glad"; + tag = "v${version}"; + hash = "sha256-FtkPz0xchwmqE+QgS+nSJVYaAfJSTUmZsObV/IPypVQ="; + }; + + nativeBuildInputs = [ + cmake + python3 + ]; + cmakeFlags = [ + "-DGLAD_REPRODUCIBLE=ON" + "-DGLAD_INSTALL=ON" + "-DGLAD_PROFILE=core" + "-DGLAD_API=gl=4.6" + "-DGLAD_EXTENSIONS=GL_3DFX_multisample,GL_3DFX_tbuffer,GL_3DFX_texture_compression_FXT1,GL_AMD_blend_minmax_factor,GL_AMD_conservative_depth,GL_AMD_debug_output,GL_AMD_depth_clamp_separate,GL_AMD_draw_buffers_blend,GL_AMD_framebuffer_sample_positions,GL_AMD_gcn_shader,GL_AMD_gpu_shader_half_float,GL_AMD_gpu_shader_int16,GL_AMD_gpu_shader_int64,GL_AMD_interleaved_elements,GL_AMD_multi_draw_indirect,GL_AMD_name_gen_delete,GL_AMD_occlusion_query_event,GL_AMD_performance_monitor,GL_AMD_pinned_memory,GL_AMD_query_buffer_object,GL_AMD_sample_positions,GL_AMD_seamless_cubemap_per_texture,GL_AMD_shader_atomic_counter_ops,GL_AMD_shader_ballot,GL_AMD_shader_explicit_vertex_parameter,GL_AMD_shader_image_load_store_lod,GL_AMD_shader_stencil_export,GL_AMD_shader_trinary_minmax,GL_AMD_sparse_texture,GL_AMD_stencil_operation_extended,GL_AMD_texture_gather_bias_lod,GL_AMD_texture_texture4,GL_AMD_transform_feedback3_lines_triangles,GL_AMD_transform_feedback4,GL_AMD_vertex_shader_layer,GL_AMD_vertex_shader_tessellator,GL_AMD_vertex_shader_viewport_index,GL_APPLE_aux_depth_stencil,GL_APPLE_client_storage,GL_APPLE_element_array,GL_APPLE_fence,GL_APPLE_float_pixels,GL_APPLE_flush_buffer_range,GL_APPLE_object_purgeable,GL_APPLE_rgb_422,GL_APPLE_row_bytes,GL_APPLE_specular_vector,GL_APPLE_texture_range,GL_APPLE_transform_hint,GL_APPLE_vertex_array_object,GL_APPLE_vertex_array_range,GL_APPLE_vertex_program_evaluators,GL_APPLE_ycbcr_422,GL_ARB_ES2_compatibility,GL_ARB_ES3_1_compatibility,GL_ARB_ES3_2_compatibility,GL_ARB_ES3_compatibility,GL_ARB_arrays_of_arrays,GL_ARB_base_instance,GL_ARB_bindless_texture,GL_ARB_blend_func_extended,GL_ARB_buffer_storage,GL_ARB_cl_event,GL_ARB_clear_buffer_object,GL_ARB_clear_texture,GL_ARB_clip_control,GL_ARB_color_buffer_float,GL_ARB_compatibility,GL_ARB_compressed_texture_pixel_storage,GL_ARB_compute_shader,GL_ARB_compute_variable_group_size,GL_ARB_conditional_render_inverted,GL_ARB_conservative_depth,GL_ARB_copy_buffer,GL_ARB_copy_image,GL_ARB_cull_distance,GL_ARB_debug_output,GL_ARB_depth_buffer_float,GL_ARB_depth_clamp,GL_ARB_depth_texture,GL_ARB_derivative_control,GL_ARB_direct_state_access,GL_ARB_draw_buffers,GL_ARB_draw_buffers_blend,GL_ARB_draw_elements_base_vertex,GL_ARB_draw_indirect,GL_ARB_draw_instanced,GL_ARB_enhanced_layouts,GL_ARB_explicit_attrib_location,GL_ARB_explicit_uniform_location,GL_ARB_fragment_coord_conventions,GL_ARB_fragment_layer_viewport,GL_ARB_fragment_program,GL_ARB_fragment_program_shadow,GL_ARB_fragment_shader,GL_ARB_fragment_shader_interlock,GL_ARB_framebuffer_no_attachments,GL_ARB_framebuffer_object,GL_ARB_framebuffer_sRGB,GL_ARB_geometry_shader4,GL_ARB_get_program_binary,GL_ARB_get_texture_sub_image,GL_ARB_gl_spirv,GL_ARB_gpu_shader5,GL_ARB_gpu_shader_fp64,GL_ARB_gpu_shader_int64,GL_ARB_half_float_pixel,GL_ARB_half_float_vertex,GL_ARB_imaging,GL_ARB_indirect_parameters,GL_ARB_instanced_arrays,GL_ARB_internalformat_query,GL_ARB_internalformat_query2,GL_ARB_invalidate_subdata,GL_ARB_map_buffer_alignment,GL_ARB_map_buffer_range,GL_ARB_matrix_palette,GL_ARB_multi_bind,GL_ARB_multi_draw_indirect,GL_ARB_multisample,GL_ARB_multitexture,GL_ARB_occlusion_query,GL_ARB_occlusion_query2,GL_ARB_parallel_shader_compile,GL_ARB_pipeline_statistics_query,GL_ARB_pixel_buffer_object,GL_ARB_point_parameters,GL_ARB_point_sprite,GL_ARB_polygon_offset_clamp,GL_ARB_post_depth_coverage,GL_ARB_program_interface_query,GL_ARB_provoking_vertex,GL_ARB_query_buffer_object,GL_ARB_robust_buffer_access_behavior,GL_ARB_robustness,GL_ARB_robustness_isolation,GL_ARB_sample_locations,GL_ARB_sample_shading,GL_ARB_sampler_objects,GL_ARB_seamless_cube_map,GL_ARB_seamless_cubemap_per_texture,GL_ARB_separate_shader_objects,GL_ARB_shader_atomic_counter_ops,GL_ARB_shader_atomic_counters,GL_ARB_shader_ballot,GL_ARB_shader_bit_encoding,GL_ARB_shader_clock,GL_ARB_shader_draw_parameters,GL_ARB_shader_group_vote,GL_ARB_shader_image_load_store,GL_ARB_shader_image_size,GL_ARB_shader_objects,GL_ARB_shader_precision,GL_ARB_shader_stencil_export,GL_ARB_shader_storage_buffer_object,GL_ARB_shader_subroutine,GL_ARB_shader_texture_image_samples,GL_ARB_shader_texture_lod,GL_ARB_shader_viewport_layer_array,GL_ARB_shading_language_100,GL_ARB_shading_language_420pack,GL_ARB_shading_language_include,GL_ARB_shading_language_packing,GL_ARB_shadow,GL_ARB_shadow_ambient,GL_ARB_sparse_buffer,GL_ARB_sparse_texture,GL_ARB_sparse_texture2,GL_ARB_sparse_texture_clamp,GL_ARB_spirv_extensions,GL_ARB_stencil_texturing,GL_ARB_sync,GL_ARB_tessellation_shader,GL_ARB_texture_barrier,GL_ARB_texture_border_clamp,GL_ARB_texture_buffer_object,GL_ARB_texture_buffer_object_rgb32,GL_ARB_texture_buffer_range,GL_ARB_texture_compression,GL_ARB_texture_compression_bptc,GL_ARB_texture_compression_rgtc,GL_ARB_texture_cube_map,GL_ARB_texture_cube_map_array,GL_ARB_texture_env_add,GL_ARB_texture_env_combine,GL_ARB_texture_env_crossbar,GL_ARB_texture_env_dot3,GL_ARB_texture_filter_anisotropic,GL_ARB_texture_filter_minmax,GL_ARB_texture_float,GL_ARB_texture_gather,GL_ARB_texture_mirror_clamp_to_edge,GL_ARB_texture_mirrored_repeat,GL_ARB_texture_multisample,GL_ARB_texture_non_power_of_two,GL_ARB_texture_query_levels,GL_ARB_texture_query_lod,GL_ARB_texture_rectangle,GL_ARB_texture_rg,GL_ARB_texture_rgb10_a2ui,GL_ARB_texture_stencil8,GL_ARB_texture_storage,GL_ARB_texture_storage_multisample,GL_ARB_texture_swizzle,GL_ARB_texture_view,GL_ARB_timer_query,GL_ARB_transform_feedback2,GL_ARB_transform_feedback3,GL_ARB_transform_feedback_instanced,GL_ARB_transform_feedback_overflow_query,GL_ARB_transpose_matrix,GL_ARB_uniform_buffer_object,GL_ARB_vertex_array_bgra,GL_ARB_vertex_array_object,GL_ARB_vertex_attrib_64bit,GL_ARB_vertex_attrib_binding,GL_ARB_vertex_blend,GL_ARB_vertex_buffer_object,GL_ARB_vertex_program,GL_ARB_vertex_shader,GL_ARB_vertex_type_10f_11f_11f_rev,GL_ARB_vertex_type_2_10_10_10_rev,GL_ARB_viewport_array,GL_ARB_window_pos,GL_ATI_draw_buffers,GL_ATI_element_array,GL_ATI_envmap_bumpmap,GL_ATI_fragment_shader,GL_ATI_map_object_buffer,GL_ATI_meminfo,GL_ATI_pixel_format_float,GL_ATI_pn_triangles,GL_ATI_separate_stencil,GL_ATI_text_fragment_shader,GL_ATI_texture_env_combine3,GL_ATI_texture_float,GL_ATI_texture_mirror_once,GL_ATI_vertex_array_object,GL_ATI_vertex_attrib_array_object,GL_ATI_vertex_streams,GL_EXT_422_pixels,GL_EXT_abgr,GL_EXT_bgra,GL_EXT_bindable_uniform,GL_EXT_blend_color,GL_EXT_blend_equation_separate,GL_EXT_blend_func_separate,GL_EXT_blend_logic_op,GL_EXT_blend_minmax,GL_EXT_blend_subtract,GL_EXT_clip_volume_hint,GL_EXT_cmyka,GL_EXT_color_subtable,GL_EXT_compiled_vertex_array,GL_EXT_convolution,GL_EXT_coordinate_frame,GL_EXT_copy_texture,GL_EXT_cull_vertex,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_depth_bounds_test,GL_EXT_direct_state_access,GL_EXT_draw_buffers2,GL_EXT_draw_instanced,GL_EXT_draw_range_elements,GL_EXT_external_buffer,GL_EXT_fog_coord,GL_EXT_framebuffer_blit,GL_EXT_framebuffer_multisample,GL_EXT_framebuffer_multisample_blit_scaled,GL_EXT_framebuffer_object,GL_EXT_framebuffer_sRGB,GL_EXT_geometry_shader4,GL_EXT_gpu_program_parameters,GL_EXT_gpu_shader4,GL_EXT_histogram,GL_EXT_index_array_formats,GL_EXT_index_func,GL_EXT_index_material,GL_EXT_index_texture,GL_EXT_light_texture,GL_EXT_memory_object,GL_EXT_memory_object_fd,GL_EXT_memory_object_win32,GL_EXT_misc_attribute,GL_EXT_multi_draw_arrays,GL_EXT_multisample,GL_EXT_packed_depth_stencil,GL_EXT_packed_float,GL_EXT_packed_pixels,GL_EXT_paletted_texture,GL_EXT_pixel_buffer_object,GL_EXT_pixel_transform,GL_EXT_pixel_transform_color_table,GL_EXT_point_parameters,GL_EXT_polygon_offset,GL_EXT_polygon_offset_clamp,GL_EXT_post_depth_coverage,GL_EXT_provoking_vertex,GL_EXT_raster_multisample,GL_EXT_rescale_normal,GL_EXT_secondary_color,GL_EXT_semaphore,GL_EXT_semaphore_fd,GL_EXT_semaphore_win32,GL_EXT_separate_shader_objects,GL_EXT_separate_specular_color,GL_EXT_shader_image_load_formatted,GL_EXT_shader_image_load_store,GL_EXT_shader_integer_mix,GL_EXT_shadow_funcs,GL_EXT_shared_texture_palette,GL_EXT_sparse_texture2,GL_EXT_stencil_clear_tag,GL_EXT_stencil_two_side,GL_EXT_stencil_wrap,GL_EXT_subtexture,GL_EXT_texture,GL_EXT_texture3D,GL_EXT_texture_array,GL_EXT_texture_buffer_object,GL_EXT_texture_compression_latc,GL_EXT_texture_compression_rgtc,GL_EXT_texture_compression_s3tc,GL_EXT_texture_cube_map,GL_EXT_texture_env_add,GL_EXT_texture_env_combine,GL_EXT_texture_env_dot3,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_filter_minmax,GL_EXT_texture_integer,GL_EXT_texture_lod_bias,GL_EXT_texture_mirror_clamp,GL_EXT_texture_object,GL_EXT_texture_perturb_normal,GL_EXT_texture_sRGB,GL_EXT_texture_sRGB_decode,GL_EXT_texture_shared_exponent,GL_EXT_texture_snorm,GL_EXT_texture_swizzle,GL_EXT_timer_query,GL_EXT_transform_feedback,GL_EXT_vertex_array,GL_EXT_vertex_array_bgra,GL_EXT_vertex_attrib_64bit,GL_EXT_vertex_shader,GL_EXT_vertex_weighting,GL_EXT_win32_keyed_mutex,GL_EXT_window_rectangles,GL_EXT_x11_sync_object,GL_GREMEDY_frame_terminator,GL_GREMEDY_string_marker,GL_HP_convolution_border_modes,GL_HP_image_transform,GL_HP_occlusion_test,GL_HP_texture_lighting,GL_IBM_cull_vertex,GL_IBM_multimode_draw_arrays,GL_IBM_rasterpos_clip,GL_IBM_static_data,GL_IBM_texture_mirrored_repeat,GL_IBM_vertex_array_lists,GL_INGR_blend_func_separate,GL_INGR_color_clamp,GL_INGR_interlace_read,GL_INTEL_conservative_rasterization,GL_INTEL_fragment_shader_ordering,GL_INTEL_framebuffer_CMAA,GL_INTEL_map_texture,GL_INTEL_parallel_arrays,GL_INTEL_performance_query,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_context_flush_control,GL_KHR_debug,GL_KHR_no_error,GL_KHR_parallel_shader_compile,GL_KHR_robust_buffer_access_behavior,GL_KHR_robustness,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_KHR_texture_compression_astc_sliced_3d,GL_MESAX_texture_stack,GL_MESA_pack_invert,GL_MESA_program_binary_formats,GL_MESA_resize_buffers,GL_MESA_shader_integer_functions,GL_MESA_tile_raster_order,GL_MESA_window_pos,GL_MESA_ycbcr_texture,GL_NVX_blend_equation_advanced_multi_draw_buffers,GL_NVX_conditional_render,GL_NVX_gpu_memory_info,GL_NVX_linked_gpu_multicast,GL_NV_alpha_to_coverage_dither_control,GL_NV_bindless_multi_draw_indirect,GL_NV_bindless_multi_draw_indirect_count,GL_NV_bindless_texture,GL_NV_blend_equation_advanced,GL_NV_blend_equation_advanced_coherent,GL_NV_blend_minmax_factor,GL_NV_blend_square,GL_NV_clip_space_w_scaling,GL_NV_command_list,GL_NV_compute_program5,GL_NV_conditional_render,GL_NV_conservative_raster,GL_NV_conservative_raster_dilate,GL_NV_conservative_raster_pre_snap,GL_NV_conservative_raster_pre_snap_triangles,GL_NV_conservative_raster_underestimation,GL_NV_copy_depth_to_color,GL_NV_copy_image,GL_NV_deep_texture3D,GL_NV_depth_buffer_float,GL_NV_depth_clamp,GL_NV_draw_texture,GL_NV_draw_vulkan_image,GL_NV_evaluators,GL_NV_explicit_multisample,GL_NV_fence,GL_NV_fill_rectangle,GL_NV_float_buffer,GL_NV_fog_distance,GL_NV_fragment_coverage_to_color,GL_NV_fragment_program,GL_NV_fragment_program2,GL_NV_fragment_program4,GL_NV_fragment_program_option,GL_NV_fragment_shader_interlock,GL_NV_framebuffer_mixed_samples,GL_NV_framebuffer_multisample_coverage,GL_NV_geometry_program4,GL_NV_geometry_shader4,GL_NV_geometry_shader_passthrough,GL_NV_gpu_multicast,GL_NV_gpu_program4,GL_NV_gpu_program5,GL_NV_gpu_program5_mem_extended,GL_NV_gpu_shader5,GL_NV_half_float,GL_NV_internalformat_sample_query,GL_NV_light_max_exponent,GL_NV_multisample_coverage,GL_NV_multisample_filter_hint,GL_NV_occlusion_query,GL_NV_packed_depth_stencil,GL_NV_parameter_buffer_object,GL_NV_parameter_buffer_object2,GL_NV_path_rendering,GL_NV_path_rendering_shared_edge,GL_NV_pixel_data_range,GL_NV_point_sprite,GL_NV_present_video,GL_NV_primitive_restart,GL_NV_query_resource,GL_NV_query_resource_tag,GL_NV_register_combiners,GL_NV_register_combiners2,GL_NV_robustness_video_memory_purge,GL_NV_sample_locations,GL_NV_sample_mask_override_coverage,GL_NV_shader_atomic_counters,GL_NV_shader_atomic_float,GL_NV_shader_atomic_float64,GL_NV_shader_atomic_fp16_vector,GL_NV_shader_atomic_int64,GL_NV_shader_buffer_load,GL_NV_shader_buffer_store,GL_NV_shader_storage_buffer_object,GL_NV_shader_thread_group,GL_NV_shader_thread_shuffle,GL_NV_stereo_view_rendering,GL_NV_tessellation_program5,GL_NV_texgen_emboss,GL_NV_texgen_reflection,GL_NV_texture_barrier,GL_NV_texture_compression_vtc,GL_NV_texture_env_combine4,GL_NV_texture_expand_normal,GL_NV_texture_multisample,GL_NV_texture_rectangle,GL_NV_texture_rectangle_compressed,GL_NV_texture_shader,GL_NV_texture_shader2,GL_NV_texture_shader3,GL_NV_transform_feedback,GL_NV_transform_feedback2,GL_NV_uniform_buffer_unified_memory,GL_NV_vdpau_interop,GL_NV_vertex_array_range,GL_NV_vertex_array_range2,GL_NV_vertex_attrib_integer_64bit,GL_NV_vertex_buffer_unified_memory,GL_NV_vertex_program,GL_NV_vertex_program1_1,GL_NV_vertex_program2,GL_NV_vertex_program2_option,GL_NV_vertex_program3,GL_NV_vertex_program4,GL_NV_video_capture,GL_NV_viewport_array2,GL_NV_viewport_swizzle,GL_OES_byte_coordinates,GL_OES_compressed_paletted_texture,GL_OES_fixed_point,GL_OES_query_matrix,GL_OES_read_format,GL_OES_single_precision,GL_OML_interlace,GL_OML_resample,GL_OML_subsample,GL_OVR_multiview,GL_OVR_multiview2,GL_PGI_misc_hints,GL_PGI_vertex_hints,GL_REND_screen_coordinates,GL_S3_s3tc,GL_SGIS_detail_texture,GL_SGIS_fog_function,GL_SGIS_generate_mipmap,GL_SGIS_multisample,GL_SGIS_pixel_texture,GL_SGIS_point_line_texgen,GL_SGIS_point_parameters,GL_SGIS_sharpen_texture,GL_SGIS_texture4D,GL_SGIS_texture_border_clamp,GL_SGIS_texture_color_mask,GL_SGIS_texture_edge_clamp,GL_SGIS_texture_filter4,GL_SGIS_texture_lod,GL_SGIS_texture_select,GL_SGIX_async,GL_SGIX_async_histogram,GL_SGIX_async_pixel,GL_SGIX_blend_alpha_minmax,GL_SGIX_calligraphic_fragment,GL_SGIX_clipmap,GL_SGIX_convolution_accuracy,GL_SGIX_depth_pass_instrument,GL_SGIX_depth_texture,GL_SGIX_flush_raster,GL_SGIX_fog_offset,GL_SGIX_fragment_lighting,GL_SGIX_framezoom,GL_SGIX_igloo_interface,GL_SGIX_instruments,GL_SGIX_interlace,GL_SGIX_ir_instrument1,GL_SGIX_list_priority,GL_SGIX_pixel_texture,GL_SGIX_pixel_tiles,GL_SGIX_polynomial_ffd,GL_SGIX_reference_plane,GL_SGIX_resample,GL_SGIX_scalebias_hint,GL_SGIX_shadow,GL_SGIX_shadow_ambient,GL_SGIX_sprite,GL_SGIX_subsample,GL_SGIX_tag_sample_buffer,GL_SGIX_texture_add_env,GL_SGIX_texture_coordinate_clamp,GL_SGIX_texture_lod_bias,GL_SGIX_texture_multi_buffer,GL_SGIX_texture_scale_bias,GL_SGIX_vertex_preclip,GL_SGIX_ycrcb,GL_SGIX_ycrcb_subsample,GL_SGIX_ycrcba,GL_SGI_color_matrix,GL_SGI_color_table,GL_SGI_texture_color_table,GL_SUNX_constant_data,GL_SUN_convolution_border_modes,GL_SUN_global_alpha,GL_SUN_mesh_array,GL_SUN_slice_accum,GL_SUN_triangle_list,GL_SUN_vertex,GL_WIN_phong_shading,GL_WIN_specular_fog" + ]; +} diff --git a/nix/glm.nix b/nix/glm.nix new file mode 100644 index 00000000000..11c7883f2a1 --- /dev/null +++ b/nix/glm.nix @@ -0,0 +1,59 @@ +{ + stdenv, + fetchFromGitHub, + cmake, +}: + +stdenv.mkDerivation rec { + version = "0.9.9.5"; + pname = "glm"; + + src = fetchFromGitHub { + owner = "g-truc"; + repo = pname; + rev = version; + sha256 = "sha256-1XKm1me72+pGJXfwbShu4TJsJZduLTqpdLLQZUPP314="; + }; + + outputs = [ + "out" + "doc" + ]; + + nativeBuildInputs = [ cmake ]; + + cmakeFlags = [ + "-DBUILD_SHARED_LIBS=OFF" + "-DBUILD_STATIC_LIBS=OFF" + "-DGLM_TEST_ENABLE=${if doCheck then "ON" else "OFF"}" + ]; + + doCheck = false; + + installPhase = '' + runHook preInstall + + # Install header-only library + mkdir -p $out/include + cp -rv ../glm $out/include + rm $out/include/glm/CMakeLists.txt + rm $out/include/glm/detail/*.cpp + + # Install CMake files + mkdir -p $out/lib + cp -rv ../cmake $out/lib + substituteInPlace $out/lib/cmake/glm/glmConfig.cmake \ + --replace 'GLM_INCLUDE_DIRS ''${_IMPORT_PREFIX}' "GLM_INCLUDE_DIRS $out/include" + + # Install pkg-config file + mkdir -p $out/lib/pkgconfig + substituteAll ${./glm.pc.in} $out/lib/pkgconfig/glm.pc + + # Install docs + mkdir -p $doc/share/doc/glm + cp -rv ../doc/api $doc/share/doc/glm/html + cp -v ../doc/manual.pdf $doc/share/doc/glm + + runHook postInstall + ''; +} diff --git a/nix/glm.pc.in b/nix/glm.pc.in new file mode 100644 index 00000000000..e196c793d1d --- /dev/null +++ b/nix/glm.pc.in @@ -0,0 +1,7 @@ +prefix=@out@ +includedir=@out@/include + +Name: GLM +Description: OpenGL Mathematics +Version: @version@ +Cflags: -I${includedir} diff --git a/nix/overte.nix b/nix/overte.nix new file mode 100644 index 00000000000..d750e218d38 --- /dev/null +++ b/nix/overte.nix @@ -0,0 +1,176 @@ +{ + lib, + stdenv, + cmake, + pkg-config, + autoPatchelfHook, + + glad, + gif_creator, + polyvox, + artery-font-format, + cgltf, + etc2comp, + openssl, + libGL, + glm, + nlohmann_json, + tbb_2022, + nodejs, + webrtc-audio-processing, + nvidia-texture-tools, + openexr, + draco, + bullet, + discord-rpc, + openvr, + openxr-loader, + SDL2, + libopus, + libsForQt5, + libv8, + + scribe, + glslang, + spirv-tools, + spirv-cross, + python3, + + buildClient ? true, + buildServer ? true, + buildTools ? false, +}: +stdenv.mkDerivation { + pname = "overte"; + version = "unstable"; + src = ./..; + nativeBuildInputs = [ + cmake + pkg-config + python3 + libsForQt5.wrapQtAppsHook + nodejs + autoPatchelfHook + ]; + + # TODO: make dependencies minimal for !buildClient + buildInputs = + builtins.attrValues { + inherit (libsForQt5) + qtbase + qtmultimedia + qtdeclarative + qtwebsockets + qtsvg + quazip + ; + inherit (libsForQt5.qt5) + qtwebchannel + qtwebengine + qtxmlpatterns + qtquickcontrols2 + qtgraphicaleffects + ; + } + ++ [ + glad + etc2comp + cgltf + polyvox + gif_creator + artery-font-format + openssl + libGL + glm + nlohmann_json + tbb_2022 + webrtc-audio-processing + nvidia-texture-tools + openexr + draco + bullet + discord-rpc + openvr + openxr-loader + SDL2 + libopus + libv8 + ]; + + cmakeFlags = [ + "-DOVERTE_USE_SYSTEM_LIBS=ON" + "-DOVERTE_BUILD_TYPE=NIGHLTY" + ] + ++ lib.optional (!buildClient) "-DOVERTE_BUILD_CLIENT=OFF" + ++ lib.optional (!buildServer) "-DOVERTE_BUILD_SERVER=OFF" + ++ lib.optional (!buildTools) "-DOVERTE_BUILD_TOOLS=OFF"; + env = { + NVTT_DIR = "${nvidia-texture-tools}"; + CXXFLAGS = "-falign-functions"; + GLSLANG_DIR = "${glslang}/bin"; + SCRIBE_DIR = "${scribe}/tools"; + SPIRV_CROSS_DIR = "${spirv-cross}/bin"; + SPIRV_TOOLS_DIR = "${spirv-tools}/bin"; + }; + + dontWrapQtApps = true; + + # TODO: remove set QT_PLUGIN_PATH after qt6 update + installPhase = '' + runHook preInstall + + mkdir -p $out/{bin/,lib/} + cp -r libraries/**/*.so $out/lib/ + '' + + (lib.optionalString buildClient # sh + '' + I="$out/interface" + mkdir -p $I + cp interface/resources.rcc "$I"/ + cp -r interface/scripts "$I"/scripts + cp -r interface/resources "$I"/resources + cp -r interface/plugins "$I"/plugins + + + cp interface/interface "$I"/ + ln -s "$I"/interface $out/bin/overte-client + makeWrapper "$I"/interface $out/bin/overte-client \ + --set QT_PLUGIN_PATH ''' \ + "''${qtWrapperArgs[@]}" + '' + ) + + (lib.optionalString buildServer # sh + '' + D="$out/domain-server" + mkdir -p $D + cp -r domain-server/resources "$D"/resources + + cp domain-server/domain-server "$D"/domain-server + makeWrapper "$D"/domain-server $out/bin/domain-server \ + "''${qtWrapperArgs[@]}" + + cp assignment-client/assignment-client "$D"/assignment-client + makeWrapper "$D"/assignment-client $out/bin/assignment-client \ + "''${qtWrapperArgs[@]}" + '' + ) + # sh + + '' + for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true + patchelf --remove-rpath $file || true + done + runHook postInstall + ''; + + /* + preFixup = '' + patchelf --read-rpath $out/interface/plugins/libopenvr.so + ldd $out/interface/plugins/*.so + ''; + */ + + meta = { + mainProgram = if buildClient then "overte-client" else "domain-server"; + }; +} diff --git a/nix/polyvox.nix b/nix/polyvox.nix new file mode 100644 index 00000000000..505416df234 --- /dev/null +++ b/nix/polyvox.nix @@ -0,0 +1,20 @@ +{ + stdenv, + fetchFromGitHub, + cmake, +}: +stdenv.mkDerivation rec { + pname = "polyvox"; + version = "2025.09.1"; + src = fetchFromGitHub { + owner = "overte-org"; + repo = "polyvox"; + tag = "v${version}"; + hash = "sha256-nUEc6p9WHbGsPAZUM0lFlogmiRoWzKSkdVChQKzffqI="; + }; + cmakeFlags = [ "-DENABLE_EXAMPLES=OFF" ]; + nativeBuildInputs = [ cmake ]; + outputs = [ + "out" + ]; +} diff --git a/nix/scribe.nix b/nix/scribe.nix new file mode 100644 index 00000000000..4d42f92d116 --- /dev/null +++ b/nix/scribe.nix @@ -0,0 +1,16 @@ +{ + stdenv, + fetchFromGitHub, + cmake, +}: +stdenv.mkDerivation { + pname = "scribe"; + version = "unstable"; + src = fetchFromGitHub { + owner = "overte-org"; + repo = "scribe"; + rev = "6e10bcb440b1fee2da322c7405858532d0bf403e"; + hash = "sha256-fXhsoQBD0V8mS7roJtr2wt/ighW74U5LbasIHC3Q6JE="; + }; + nativeBuildInputs = [ cmake ]; +} From 073b1ae66ef6bcbe30965caa15d1ab59db2d4df6 Mon Sep 17 00:00:00 2001 From: RTUnreal <22859658+RTUnreal@users.noreply.github.com> Date: Tue, 30 Dec 2025 15:55:04 +0100 Subject: [PATCH 03/10] remove leftover debug code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Julian Groß --- nix/overte.nix | 7 ------- 1 file changed, 7 deletions(-) diff --git a/nix/overte.nix b/nix/overte.nix index d750e218d38..adecb7b8422 100644 --- a/nix/overte.nix +++ b/nix/overte.nix @@ -163,13 +163,6 @@ stdenv.mkDerivation { runHook postInstall ''; - /* - preFixup = '' - patchelf --read-rpath $out/interface/plugins/libopenvr.so - ldd $out/interface/plugins/*.so - ''; - */ - meta = { mainProgram = if buildClient then "overte-client" else "domain-server"; }; From 7b6216a64605701a21a21d777d48afd8e28e377d Mon Sep 17 00:00:00 2001 From: RTUnreal <22859658+RTUnreal@users.noreply.github.com> Date: Tue, 30 Dec 2025 15:55:44 +0100 Subject: [PATCH 04/10] fix wrong build var naming MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Julian Groß --- CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f09f0b6c6ed..0f5eb99fabd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -286,10 +286,10 @@ if (OVERTE_BUILD_CLIENT) option(USE_SIXENSE "Build Interface with sixense library/plugin" OFF) option(USE_NEURON "Build Interface with Neuron library/plugin" OFF) if (OVERTE_USE_SYSTEM_LIBS) - set(USE_STEAMCLIENT OFF) - message(STATUS "Not using STEAMCLIENT for system library build.") + set(USE_STEAMWORKS OFF) + message(STATUS "Not using STEAMWORKS for system library build.") else() - option(USE_STEAMCLIENT "Build Interface with steamworks-client library/plugin" ON) + option(USE_STEAMWORKS "Build Interface with steamworks-client library/plugin" ON) endif() endif() From bf1a7dccb20bdb524c00a147f14bc18516134119 Mon Sep 17 00:00:00 2001 From: RTUnreal <22859658+RTUnreal@users.noreply.github.com> Date: Tue, 30 Dec 2025 15:58:54 +0100 Subject: [PATCH 05/10] fix wrong supported glad version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Julian Groß --- nix/glad.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/glad.nix b/nix/glad.nix index 8694596a379..4697c2a11f4 100644 --- a/nix/glad.nix +++ b/nix/glad.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { "-DGLAD_REPRODUCIBLE=ON" "-DGLAD_INSTALL=ON" "-DGLAD_PROFILE=core" - "-DGLAD_API=gl=4.6" + "-DGLAD_API=gl=4.5" "-DGLAD_EXTENSIONS=GL_3DFX_multisample,GL_3DFX_tbuffer,GL_3DFX_texture_compression_FXT1,GL_AMD_blend_minmax_factor,GL_AMD_conservative_depth,GL_AMD_debug_output,GL_AMD_depth_clamp_separate,GL_AMD_draw_buffers_blend,GL_AMD_framebuffer_sample_positions,GL_AMD_gcn_shader,GL_AMD_gpu_shader_half_float,GL_AMD_gpu_shader_int16,GL_AMD_gpu_shader_int64,GL_AMD_interleaved_elements,GL_AMD_multi_draw_indirect,GL_AMD_name_gen_delete,GL_AMD_occlusion_query_event,GL_AMD_performance_monitor,GL_AMD_pinned_memory,GL_AMD_query_buffer_object,GL_AMD_sample_positions,GL_AMD_seamless_cubemap_per_texture,GL_AMD_shader_atomic_counter_ops,GL_AMD_shader_ballot,GL_AMD_shader_explicit_vertex_parameter,GL_AMD_shader_image_load_store_lod,GL_AMD_shader_stencil_export,GL_AMD_shader_trinary_minmax,GL_AMD_sparse_texture,GL_AMD_stencil_operation_extended,GL_AMD_texture_gather_bias_lod,GL_AMD_texture_texture4,GL_AMD_transform_feedback3_lines_triangles,GL_AMD_transform_feedback4,GL_AMD_vertex_shader_layer,GL_AMD_vertex_shader_tessellator,GL_AMD_vertex_shader_viewport_index,GL_APPLE_aux_depth_stencil,GL_APPLE_client_storage,GL_APPLE_element_array,GL_APPLE_fence,GL_APPLE_float_pixels,GL_APPLE_flush_buffer_range,GL_APPLE_object_purgeable,GL_APPLE_rgb_422,GL_APPLE_row_bytes,GL_APPLE_specular_vector,GL_APPLE_texture_range,GL_APPLE_transform_hint,GL_APPLE_vertex_array_object,GL_APPLE_vertex_array_range,GL_APPLE_vertex_program_evaluators,GL_APPLE_ycbcr_422,GL_ARB_ES2_compatibility,GL_ARB_ES3_1_compatibility,GL_ARB_ES3_2_compatibility,GL_ARB_ES3_compatibility,GL_ARB_arrays_of_arrays,GL_ARB_base_instance,GL_ARB_bindless_texture,GL_ARB_blend_func_extended,GL_ARB_buffer_storage,GL_ARB_cl_event,GL_ARB_clear_buffer_object,GL_ARB_clear_texture,GL_ARB_clip_control,GL_ARB_color_buffer_float,GL_ARB_compatibility,GL_ARB_compressed_texture_pixel_storage,GL_ARB_compute_shader,GL_ARB_compute_variable_group_size,GL_ARB_conditional_render_inverted,GL_ARB_conservative_depth,GL_ARB_copy_buffer,GL_ARB_copy_image,GL_ARB_cull_distance,GL_ARB_debug_output,GL_ARB_depth_buffer_float,GL_ARB_depth_clamp,GL_ARB_depth_texture,GL_ARB_derivative_control,GL_ARB_direct_state_access,GL_ARB_draw_buffers,GL_ARB_draw_buffers_blend,GL_ARB_draw_elements_base_vertex,GL_ARB_draw_indirect,GL_ARB_draw_instanced,GL_ARB_enhanced_layouts,GL_ARB_explicit_attrib_location,GL_ARB_explicit_uniform_location,GL_ARB_fragment_coord_conventions,GL_ARB_fragment_layer_viewport,GL_ARB_fragment_program,GL_ARB_fragment_program_shadow,GL_ARB_fragment_shader,GL_ARB_fragment_shader_interlock,GL_ARB_framebuffer_no_attachments,GL_ARB_framebuffer_object,GL_ARB_framebuffer_sRGB,GL_ARB_geometry_shader4,GL_ARB_get_program_binary,GL_ARB_get_texture_sub_image,GL_ARB_gl_spirv,GL_ARB_gpu_shader5,GL_ARB_gpu_shader_fp64,GL_ARB_gpu_shader_int64,GL_ARB_half_float_pixel,GL_ARB_half_float_vertex,GL_ARB_imaging,GL_ARB_indirect_parameters,GL_ARB_instanced_arrays,GL_ARB_internalformat_query,GL_ARB_internalformat_query2,GL_ARB_invalidate_subdata,GL_ARB_map_buffer_alignment,GL_ARB_map_buffer_range,GL_ARB_matrix_palette,GL_ARB_multi_bind,GL_ARB_multi_draw_indirect,GL_ARB_multisample,GL_ARB_multitexture,GL_ARB_occlusion_query,GL_ARB_occlusion_query2,GL_ARB_parallel_shader_compile,GL_ARB_pipeline_statistics_query,GL_ARB_pixel_buffer_object,GL_ARB_point_parameters,GL_ARB_point_sprite,GL_ARB_polygon_offset_clamp,GL_ARB_post_depth_coverage,GL_ARB_program_interface_query,GL_ARB_provoking_vertex,GL_ARB_query_buffer_object,GL_ARB_robust_buffer_access_behavior,GL_ARB_robustness,GL_ARB_robustness_isolation,GL_ARB_sample_locations,GL_ARB_sample_shading,GL_ARB_sampler_objects,GL_ARB_seamless_cube_map,GL_ARB_seamless_cubemap_per_texture,GL_ARB_separate_shader_objects,GL_ARB_shader_atomic_counter_ops,GL_ARB_shader_atomic_counters,GL_ARB_shader_ballot,GL_ARB_shader_bit_encoding,GL_ARB_shader_clock,GL_ARB_shader_draw_parameters,GL_ARB_shader_group_vote,GL_ARB_shader_image_load_store,GL_ARB_shader_image_size,GL_ARB_shader_objects,GL_ARB_shader_precision,GL_ARB_shader_stencil_export,GL_ARB_shader_storage_buffer_object,GL_ARB_shader_subroutine,GL_ARB_shader_texture_image_samples,GL_ARB_shader_texture_lod,GL_ARB_shader_viewport_layer_array,GL_ARB_shading_language_100,GL_ARB_shading_language_420pack,GL_ARB_shading_language_include,GL_ARB_shading_language_packing,GL_ARB_shadow,GL_ARB_shadow_ambient,GL_ARB_sparse_buffer,GL_ARB_sparse_texture,GL_ARB_sparse_texture2,GL_ARB_sparse_texture_clamp,GL_ARB_spirv_extensions,GL_ARB_stencil_texturing,GL_ARB_sync,GL_ARB_tessellation_shader,GL_ARB_texture_barrier,GL_ARB_texture_border_clamp,GL_ARB_texture_buffer_object,GL_ARB_texture_buffer_object_rgb32,GL_ARB_texture_buffer_range,GL_ARB_texture_compression,GL_ARB_texture_compression_bptc,GL_ARB_texture_compression_rgtc,GL_ARB_texture_cube_map,GL_ARB_texture_cube_map_array,GL_ARB_texture_env_add,GL_ARB_texture_env_combine,GL_ARB_texture_env_crossbar,GL_ARB_texture_env_dot3,GL_ARB_texture_filter_anisotropic,GL_ARB_texture_filter_minmax,GL_ARB_texture_float,GL_ARB_texture_gather,GL_ARB_texture_mirror_clamp_to_edge,GL_ARB_texture_mirrored_repeat,GL_ARB_texture_multisample,GL_ARB_texture_non_power_of_two,GL_ARB_texture_query_levels,GL_ARB_texture_query_lod,GL_ARB_texture_rectangle,GL_ARB_texture_rg,GL_ARB_texture_rgb10_a2ui,GL_ARB_texture_stencil8,GL_ARB_texture_storage,GL_ARB_texture_storage_multisample,GL_ARB_texture_swizzle,GL_ARB_texture_view,GL_ARB_timer_query,GL_ARB_transform_feedback2,GL_ARB_transform_feedback3,GL_ARB_transform_feedback_instanced,GL_ARB_transform_feedback_overflow_query,GL_ARB_transpose_matrix,GL_ARB_uniform_buffer_object,GL_ARB_vertex_array_bgra,GL_ARB_vertex_array_object,GL_ARB_vertex_attrib_64bit,GL_ARB_vertex_attrib_binding,GL_ARB_vertex_blend,GL_ARB_vertex_buffer_object,GL_ARB_vertex_program,GL_ARB_vertex_shader,GL_ARB_vertex_type_10f_11f_11f_rev,GL_ARB_vertex_type_2_10_10_10_rev,GL_ARB_viewport_array,GL_ARB_window_pos,GL_ATI_draw_buffers,GL_ATI_element_array,GL_ATI_envmap_bumpmap,GL_ATI_fragment_shader,GL_ATI_map_object_buffer,GL_ATI_meminfo,GL_ATI_pixel_format_float,GL_ATI_pn_triangles,GL_ATI_separate_stencil,GL_ATI_text_fragment_shader,GL_ATI_texture_env_combine3,GL_ATI_texture_float,GL_ATI_texture_mirror_once,GL_ATI_vertex_array_object,GL_ATI_vertex_attrib_array_object,GL_ATI_vertex_streams,GL_EXT_422_pixels,GL_EXT_abgr,GL_EXT_bgra,GL_EXT_bindable_uniform,GL_EXT_blend_color,GL_EXT_blend_equation_separate,GL_EXT_blend_func_separate,GL_EXT_blend_logic_op,GL_EXT_blend_minmax,GL_EXT_blend_subtract,GL_EXT_clip_volume_hint,GL_EXT_cmyka,GL_EXT_color_subtable,GL_EXT_compiled_vertex_array,GL_EXT_convolution,GL_EXT_coordinate_frame,GL_EXT_copy_texture,GL_EXT_cull_vertex,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_depth_bounds_test,GL_EXT_direct_state_access,GL_EXT_draw_buffers2,GL_EXT_draw_instanced,GL_EXT_draw_range_elements,GL_EXT_external_buffer,GL_EXT_fog_coord,GL_EXT_framebuffer_blit,GL_EXT_framebuffer_multisample,GL_EXT_framebuffer_multisample_blit_scaled,GL_EXT_framebuffer_object,GL_EXT_framebuffer_sRGB,GL_EXT_geometry_shader4,GL_EXT_gpu_program_parameters,GL_EXT_gpu_shader4,GL_EXT_histogram,GL_EXT_index_array_formats,GL_EXT_index_func,GL_EXT_index_material,GL_EXT_index_texture,GL_EXT_light_texture,GL_EXT_memory_object,GL_EXT_memory_object_fd,GL_EXT_memory_object_win32,GL_EXT_misc_attribute,GL_EXT_multi_draw_arrays,GL_EXT_multisample,GL_EXT_packed_depth_stencil,GL_EXT_packed_float,GL_EXT_packed_pixels,GL_EXT_paletted_texture,GL_EXT_pixel_buffer_object,GL_EXT_pixel_transform,GL_EXT_pixel_transform_color_table,GL_EXT_point_parameters,GL_EXT_polygon_offset,GL_EXT_polygon_offset_clamp,GL_EXT_post_depth_coverage,GL_EXT_provoking_vertex,GL_EXT_raster_multisample,GL_EXT_rescale_normal,GL_EXT_secondary_color,GL_EXT_semaphore,GL_EXT_semaphore_fd,GL_EXT_semaphore_win32,GL_EXT_separate_shader_objects,GL_EXT_separate_specular_color,GL_EXT_shader_image_load_formatted,GL_EXT_shader_image_load_store,GL_EXT_shader_integer_mix,GL_EXT_shadow_funcs,GL_EXT_shared_texture_palette,GL_EXT_sparse_texture2,GL_EXT_stencil_clear_tag,GL_EXT_stencil_two_side,GL_EXT_stencil_wrap,GL_EXT_subtexture,GL_EXT_texture,GL_EXT_texture3D,GL_EXT_texture_array,GL_EXT_texture_buffer_object,GL_EXT_texture_compression_latc,GL_EXT_texture_compression_rgtc,GL_EXT_texture_compression_s3tc,GL_EXT_texture_cube_map,GL_EXT_texture_env_add,GL_EXT_texture_env_combine,GL_EXT_texture_env_dot3,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_filter_minmax,GL_EXT_texture_integer,GL_EXT_texture_lod_bias,GL_EXT_texture_mirror_clamp,GL_EXT_texture_object,GL_EXT_texture_perturb_normal,GL_EXT_texture_sRGB,GL_EXT_texture_sRGB_decode,GL_EXT_texture_shared_exponent,GL_EXT_texture_snorm,GL_EXT_texture_swizzle,GL_EXT_timer_query,GL_EXT_transform_feedback,GL_EXT_vertex_array,GL_EXT_vertex_array_bgra,GL_EXT_vertex_attrib_64bit,GL_EXT_vertex_shader,GL_EXT_vertex_weighting,GL_EXT_win32_keyed_mutex,GL_EXT_window_rectangles,GL_EXT_x11_sync_object,GL_GREMEDY_frame_terminator,GL_GREMEDY_string_marker,GL_HP_convolution_border_modes,GL_HP_image_transform,GL_HP_occlusion_test,GL_HP_texture_lighting,GL_IBM_cull_vertex,GL_IBM_multimode_draw_arrays,GL_IBM_rasterpos_clip,GL_IBM_static_data,GL_IBM_texture_mirrored_repeat,GL_IBM_vertex_array_lists,GL_INGR_blend_func_separate,GL_INGR_color_clamp,GL_INGR_interlace_read,GL_INTEL_conservative_rasterization,GL_INTEL_fragment_shader_ordering,GL_INTEL_framebuffer_CMAA,GL_INTEL_map_texture,GL_INTEL_parallel_arrays,GL_INTEL_performance_query,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_context_flush_control,GL_KHR_debug,GL_KHR_no_error,GL_KHR_parallel_shader_compile,GL_KHR_robust_buffer_access_behavior,GL_KHR_robustness,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_KHR_texture_compression_astc_sliced_3d,GL_MESAX_texture_stack,GL_MESA_pack_invert,GL_MESA_program_binary_formats,GL_MESA_resize_buffers,GL_MESA_shader_integer_functions,GL_MESA_tile_raster_order,GL_MESA_window_pos,GL_MESA_ycbcr_texture,GL_NVX_blend_equation_advanced_multi_draw_buffers,GL_NVX_conditional_render,GL_NVX_gpu_memory_info,GL_NVX_linked_gpu_multicast,GL_NV_alpha_to_coverage_dither_control,GL_NV_bindless_multi_draw_indirect,GL_NV_bindless_multi_draw_indirect_count,GL_NV_bindless_texture,GL_NV_blend_equation_advanced,GL_NV_blend_equation_advanced_coherent,GL_NV_blend_minmax_factor,GL_NV_blend_square,GL_NV_clip_space_w_scaling,GL_NV_command_list,GL_NV_compute_program5,GL_NV_conditional_render,GL_NV_conservative_raster,GL_NV_conservative_raster_dilate,GL_NV_conservative_raster_pre_snap,GL_NV_conservative_raster_pre_snap_triangles,GL_NV_conservative_raster_underestimation,GL_NV_copy_depth_to_color,GL_NV_copy_image,GL_NV_deep_texture3D,GL_NV_depth_buffer_float,GL_NV_depth_clamp,GL_NV_draw_texture,GL_NV_draw_vulkan_image,GL_NV_evaluators,GL_NV_explicit_multisample,GL_NV_fence,GL_NV_fill_rectangle,GL_NV_float_buffer,GL_NV_fog_distance,GL_NV_fragment_coverage_to_color,GL_NV_fragment_program,GL_NV_fragment_program2,GL_NV_fragment_program4,GL_NV_fragment_program_option,GL_NV_fragment_shader_interlock,GL_NV_framebuffer_mixed_samples,GL_NV_framebuffer_multisample_coverage,GL_NV_geometry_program4,GL_NV_geometry_shader4,GL_NV_geometry_shader_passthrough,GL_NV_gpu_multicast,GL_NV_gpu_program4,GL_NV_gpu_program5,GL_NV_gpu_program5_mem_extended,GL_NV_gpu_shader5,GL_NV_half_float,GL_NV_internalformat_sample_query,GL_NV_light_max_exponent,GL_NV_multisample_coverage,GL_NV_multisample_filter_hint,GL_NV_occlusion_query,GL_NV_packed_depth_stencil,GL_NV_parameter_buffer_object,GL_NV_parameter_buffer_object2,GL_NV_path_rendering,GL_NV_path_rendering_shared_edge,GL_NV_pixel_data_range,GL_NV_point_sprite,GL_NV_present_video,GL_NV_primitive_restart,GL_NV_query_resource,GL_NV_query_resource_tag,GL_NV_register_combiners,GL_NV_register_combiners2,GL_NV_robustness_video_memory_purge,GL_NV_sample_locations,GL_NV_sample_mask_override_coverage,GL_NV_shader_atomic_counters,GL_NV_shader_atomic_float,GL_NV_shader_atomic_float64,GL_NV_shader_atomic_fp16_vector,GL_NV_shader_atomic_int64,GL_NV_shader_buffer_load,GL_NV_shader_buffer_store,GL_NV_shader_storage_buffer_object,GL_NV_shader_thread_group,GL_NV_shader_thread_shuffle,GL_NV_stereo_view_rendering,GL_NV_tessellation_program5,GL_NV_texgen_emboss,GL_NV_texgen_reflection,GL_NV_texture_barrier,GL_NV_texture_compression_vtc,GL_NV_texture_env_combine4,GL_NV_texture_expand_normal,GL_NV_texture_multisample,GL_NV_texture_rectangle,GL_NV_texture_rectangle_compressed,GL_NV_texture_shader,GL_NV_texture_shader2,GL_NV_texture_shader3,GL_NV_transform_feedback,GL_NV_transform_feedback2,GL_NV_uniform_buffer_unified_memory,GL_NV_vdpau_interop,GL_NV_vertex_array_range,GL_NV_vertex_array_range2,GL_NV_vertex_attrib_integer_64bit,GL_NV_vertex_buffer_unified_memory,GL_NV_vertex_program,GL_NV_vertex_program1_1,GL_NV_vertex_program2,GL_NV_vertex_program2_option,GL_NV_vertex_program3,GL_NV_vertex_program4,GL_NV_video_capture,GL_NV_viewport_array2,GL_NV_viewport_swizzle,GL_OES_byte_coordinates,GL_OES_compressed_paletted_texture,GL_OES_fixed_point,GL_OES_query_matrix,GL_OES_read_format,GL_OES_single_precision,GL_OML_interlace,GL_OML_resample,GL_OML_subsample,GL_OVR_multiview,GL_OVR_multiview2,GL_PGI_misc_hints,GL_PGI_vertex_hints,GL_REND_screen_coordinates,GL_S3_s3tc,GL_SGIS_detail_texture,GL_SGIS_fog_function,GL_SGIS_generate_mipmap,GL_SGIS_multisample,GL_SGIS_pixel_texture,GL_SGIS_point_line_texgen,GL_SGIS_point_parameters,GL_SGIS_sharpen_texture,GL_SGIS_texture4D,GL_SGIS_texture_border_clamp,GL_SGIS_texture_color_mask,GL_SGIS_texture_edge_clamp,GL_SGIS_texture_filter4,GL_SGIS_texture_lod,GL_SGIS_texture_select,GL_SGIX_async,GL_SGIX_async_histogram,GL_SGIX_async_pixel,GL_SGIX_blend_alpha_minmax,GL_SGIX_calligraphic_fragment,GL_SGIX_clipmap,GL_SGIX_convolution_accuracy,GL_SGIX_depth_pass_instrument,GL_SGIX_depth_texture,GL_SGIX_flush_raster,GL_SGIX_fog_offset,GL_SGIX_fragment_lighting,GL_SGIX_framezoom,GL_SGIX_igloo_interface,GL_SGIX_instruments,GL_SGIX_interlace,GL_SGIX_ir_instrument1,GL_SGIX_list_priority,GL_SGIX_pixel_texture,GL_SGIX_pixel_tiles,GL_SGIX_polynomial_ffd,GL_SGIX_reference_plane,GL_SGIX_resample,GL_SGIX_scalebias_hint,GL_SGIX_shadow,GL_SGIX_shadow_ambient,GL_SGIX_sprite,GL_SGIX_subsample,GL_SGIX_tag_sample_buffer,GL_SGIX_texture_add_env,GL_SGIX_texture_coordinate_clamp,GL_SGIX_texture_lod_bias,GL_SGIX_texture_multi_buffer,GL_SGIX_texture_scale_bias,GL_SGIX_vertex_preclip,GL_SGIX_ycrcb,GL_SGIX_ycrcb_subsample,GL_SGIX_ycrcba,GL_SGI_color_matrix,GL_SGI_color_table,GL_SGI_texture_color_table,GL_SUNX_constant_data,GL_SUN_convolution_border_modes,GL_SUN_global_alpha,GL_SUN_mesh_array,GL_SUN_slice_accum,GL_SUN_triangle_list,GL_SUN_vertex,GL_WIN_phong_shading,GL_WIN_specular_fog" ]; } From a5e552829079e9f4db70a7cd8ca2f0273f80b58b Mon Sep 17 00:00:00 2001 From: RTUnreal <22859658+RTUnreal@users.noreply.github.com> Date: Tue, 30 Dec 2025 16:01:46 +0100 Subject: [PATCH 06/10] add comments to overte dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Julian Groß --- nix/overte.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nix/overte.nix b/nix/overte.nix index adecb7b8422..b208e1aab33 100644 --- a/nix/overte.nix +++ b/nix/overte.nix @@ -1,10 +1,12 @@ { + # build tools lib, stdenv, cmake, pkg-config, autoPatchelfHook, + # dependencies glad, gif_creator, polyvox, @@ -30,12 +32,14 @@ libsForQt5, libv8, + # tools for shader compilation scribe, glslang, spirv-tools, spirv-cross, python3, + # build options buildClient ? true, buildServer ? true, buildTools ? false, From d40d9c8160580a0c7d7c93d3b8d3e0357ac29322 Mon Sep 17 00:00:00 2001 From: RTUnreal Date: Wed, 31 Dec 2025 14:11:12 +0100 Subject: [PATCH 07/10] rename draco patch for clarity --- nix/draco.nix | 2 +- nix/{draco.diff => draco_fix_building_on_GCC15.diff} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename nix/{draco.diff => draco_fix_building_on_GCC15.diff} (100%) diff --git a/nix/draco.nix b/nix/draco.nix index 4b4596b0ff5..4e352fc1832 100644 --- a/nix/draco.nix +++ b/nix/draco.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { rev = version; hash = "sha256-/p/hQbCGX6lunuO7ECjvrKHBi3jV6cSPdrU9MIxAVhk="; }; - patches = [ ./draco.diff ]; + patches = [ ./draco_fix_building_on_GCC15.diff ]; enableParallelBuilding = true; nativeBuildInputs = [ cmake ]; cmakeFlags = [ diff --git a/nix/draco.diff b/nix/draco_fix_building_on_GCC15.diff similarity index 100% rename from nix/draco.diff rename to nix/draco_fix_building_on_GCC15.diff From 5fc010006b416799479b46fc0bb6bf36895b7127 Mon Sep 17 00:00:00 2001 From: RTUnreal Date: Wed, 31 Dec 2025 14:17:38 +0100 Subject: [PATCH 08/10] add oven to server build --- nix/overte.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nix/overte.nix b/nix/overte.nix index b208e1aab33..5aec5810f5a 100644 --- a/nix/overte.nix +++ b/nix/overte.nix @@ -107,7 +107,7 @@ stdenv.mkDerivation { ] ++ lib.optional (!buildClient) "-DOVERTE_BUILD_CLIENT=OFF" ++ lib.optional (!buildServer) "-DOVERTE_BUILD_SERVER=OFF" - ++ lib.optional (!buildTools) "-DOVERTE_BUILD_TOOLS=OFF"; + ++ lib.optional (!buildTools && !buildServer) "-DOVERTE_BUILD_TOOLS=OFF"; env = { NVTT_DIR = "${nvidia-texture-tools}"; CXXFLAGS = "-falign-functions"; @@ -156,6 +156,10 @@ stdenv.mkDerivation { cp assignment-client/assignment-client "$D"/assignment-client makeWrapper "$D"/assignment-client $out/bin/assignment-client \ "''${qtWrapperArgs[@]}" + + cp tools/oven/oven "$D"/oven + makeWrapper "$D"/oven $out/bin/oven \ + "''${qtWrapperArgs[@]}" '' ) # sh From 3d3e08d184cfd5af7454596a46a7987b473a8871 Mon Sep 17 00:00:00 2001 From: RTUnreal Date: Wed, 31 Dec 2025 14:19:14 +0100 Subject: [PATCH 09/10] add glm compile definitions to system deps build --- cmake/macros/TargetGlm.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/macros/TargetGlm.cmake b/cmake/macros/TargetGlm.cmake index 7d74e6f05b1..d257078872b 100644 --- a/cmake/macros/TargetGlm.cmake +++ b/cmake/macros/TargetGlm.cmake @@ -15,8 +15,8 @@ macro(TARGET_GLM) else() find_package(glm CONFIG REQUIRED) target_link_libraries(${TARGET_NAME} glm::glm) - target_compile_definitions(${TARGET_NAME} PUBLIC GLM_FORCE_RADIANS) - target_compile_definitions(${TARGET_NAME} PUBLIC GLM_ENABLE_EXPERIMENTAL) - target_compile_definitions(${TARGET_NAME} PUBLIC GLM_FORCE_CTOR_INIT) endif() + target_compile_definitions(${TARGET_NAME} PUBLIC GLM_FORCE_RADIANS) + target_compile_definitions(${TARGET_NAME} PUBLIC GLM_ENABLE_EXPERIMENTAL) + target_compile_definitions(${TARGET_NAME} PUBLIC GLM_FORCE_CTOR_INIT) endmacro() From 30f1506086a44ea9604466a00bb927f7cf8d17e5 Mon Sep 17 00:00:00 2001 From: RTUnreal Date: Wed, 31 Dec 2025 15:01:11 +0100 Subject: [PATCH 10/10] fix -falign-functiond --- nix/overte.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/overte.nix b/nix/overte.nix index 5aec5810f5a..efaa42ce787 100644 --- a/nix/overte.nix +++ b/nix/overte.nix @@ -110,7 +110,7 @@ stdenv.mkDerivation { ++ lib.optional (!buildTools && !buildServer) "-DOVERTE_BUILD_TOOLS=OFF"; env = { NVTT_DIR = "${nvidia-texture-tools}"; - CXXFLAGS = "-falign-functions"; + CXXFLAGS = "-falign-functions=32"; GLSLANG_DIR = "${glslang}/bin"; SCRIBE_DIR = "${scribe}/tools"; SPIRV_CROSS_DIR = "${spirv-cross}/bin";