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
7 changes: 7 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.")
Expand Down Expand Up @@ -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_STEAMWORKS OFF)
message(STATUS "Not using STEAMWORKS for system library build.")
else()
option(USE_STEAMWORKS "Build Interface with steamworks-client library/plugin" ON)
endif()
endif()

if (OVERTE_BUILD_CLIENT OR OVERTE_BUILD_SERVER)
Expand Down
9 changes: 8 additions & 1 deletion cmake/macros/AutoScribeShader.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
12 changes: 7 additions & 5 deletions cmake/macros/TargetAFF.cmake
Original file line number Diff line number Diff line change
@@ -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()


11 changes: 9 additions & 2 deletions cmake/macros/TargetBullet.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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()


10 changes: 8 additions & 2 deletions cmake/macros/TargetCgltf.cmake
Original file line number Diff line number Diff line change
@@ -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()
11 changes: 9 additions & 2 deletions cmake/macros/TargetDiscordRPC.cmake
Original file line number Diff line number Diff line change
@@ -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()
7 changes: 6 additions & 1 deletion cmake/macros/TargetDraco.cmake
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
25 changes: 16 additions & 9 deletions cmake/macros/TargetEtc2Comp.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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()

13 changes: 10 additions & 3 deletions cmake/macros/TargetGlm.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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)
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)
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()
endmacro()
38 changes: 25 additions & 13 deletions cmake/macros/TargetNvtt.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
10 changes: 9 additions & 1 deletion cmake/macros/TargetOpenEXR.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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()
11 changes: 9 additions & 2 deletions cmake/macros/TargetOpenVR.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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()
11 changes: 9 additions & 2 deletions cmake/macros/TargetOpus.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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()
22 changes: 14 additions & 8 deletions cmake/macros/TargetPolyvox.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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()

11 changes: 9 additions & 2 deletions cmake/macros/TargetQuazip.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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()
2 changes: 1 addition & 1 deletion cmake/macros/TargetSDL2.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
14 changes: 11 additions & 3 deletions cmake/macros/TargetV8.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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()
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()
11 changes: 9 additions & 2 deletions cmake/macros/TargetWebRTC.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Loading
Loading