summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/APR.cmake5
-rw-r--r--indra/cmake/Boost.cmake6
-rw-r--r--indra/cmake/CMakeLists.txt1
-rw-r--r--indra/cmake/Discord.cmake2
-rw-r--r--indra/cmake/FMODSTUDIO.cmake33
-rw-r--r--indra/cmake/LLPrimitive.cmake9
-rw-r--r--indra/cmake/Meshoptimizer.cmake14
-rw-r--r--indra/cmake/Python.cmake2
-rw-r--r--indra/cmake/Velopack.cmake68
-rw-r--r--indra/cmake/WebRTC.cmake2
-rw-r--r--indra/cmake/bugsplat.cmake6
11 files changed, 111 insertions, 37 deletions
diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake
index 22e94f2c8f..4ce0d47f7f 100644
--- a/indra/cmake/APR.cmake
+++ b/indra/cmake/APR.cmake
@@ -45,8 +45,3 @@ if(DARWIN)
endif()
target_include_directories(ll::apr SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/apr-1)
-
-# Fix erroneous check for __attribute__ definition introduced with APR 1.7.5, causing lots of "this declaration may not have extern 'C' linkage" errors in VS
-file(READ ${LIBS_PREBUILT_DIR}/include/apr-1/apr.h APR_HEADER_CONTENTS)
-string(REPLACE "#if !(defined(__attribute__) || defined(__has_attribute))" "#if !defined(__attribute__)" APR_HEADER_CONTENTS "${APR_HEADER_CONTENTS}")
-file(WRITE ${LIBS_PREBUILT_DIR}/include/apr-1/apr.h "${APR_HEADER_CONTENTS}")
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index 14ea27e686..8e6764c93b 100644
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -13,9 +13,9 @@ elseif (WINDOWS)
target_include_directories( ll::boost SYSTEM INTERFACE ${prefix_result}/../include)
target_link_directories( ll::boost INTERFACE ${prefix_result})
if ($ENV{MSYSTEM_CARCH} MATCHES aarch64)
- set(sfx -vc143-mt-a64-1_90)
+ set(sfx -vc143-mt-a64-1_91)
else ()
- set(sfx -vc143-mt-x64-1_90)
+ set(sfx -vc143-mt-x64-1_91)
endif ()
else ()
find_package( Boost )
@@ -33,7 +33,7 @@ if (WINDOWS)
else ()
target_link_libraries( ll::boost INTERFACE boost_regex${sfx})
endif ()
-if (NOT (${LINUX_DISTRO} MATCHES arch OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR WINDOWS OR CMAKE_SYSTEM_NAME MATCHES FreeBSD))
+if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES fedora) OR DARWIN)
target_link_libraries( ll::boost INTERFACE boost_system${sfx})
endif ()
target_compile_definitions( ll::boost INTERFACE BOOST_BIND_GLOBAL_PLACEHOLDERS )
diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt
index be1e9008e5..5a53f43d1c 100644
--- a/indra/cmake/CMakeLists.txt
+++ b/indra/cmake/CMakeLists.txt
@@ -61,6 +61,7 @@ set(cmake_SOURCE_FILES
UI.cmake
UnixInstall.cmake
Variables.cmake
+ Velopack.cmake
VHACD.cmake
ViewerMiscLibs.cmake
VisualLeakDetector.cmake
diff --git a/indra/cmake/Discord.cmake b/indra/cmake/Discord.cmake
index 33ad5e7c09..f474457b03 100644
--- a/indra/cmake/Discord.cmake
+++ b/indra/cmake/Discord.cmake
@@ -9,7 +9,7 @@ target_compile_definitions(ll::discord_sdk INTERFACE LL_DISCORD=1)
if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/discord_sdk_installed OR NOT ${discord_sdk_installed} EQUAL 0)
file(ARCHIVE_EXTRACT
- INPUT $ENV{HOME}/Downloads/DiscordSocialSdk-1.4.9649.zip
+ INPUT $ENV{HOME}/Downloads/DiscordSocialSdk-1.8.13395.zip
DESTINATION ${CMAKE_BINARY_DIR}
)
file(MAKE_DIRECTORY ${LIBS_PREBUILT_DIR}/include/discord_sdk)
diff --git a/indra/cmake/FMODSTUDIO.cmake b/indra/cmake/FMODSTUDIO.cmake
index 4921757920..ad8dc38c70 100644
--- a/indra/cmake/FMODSTUDIO.cmake
+++ b/indra/cmake/FMODSTUDIO.cmake
@@ -34,7 +34,7 @@ if (USE_FMODSTUDIO)
file(MAKE_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE})
if (DARWIN)
execute_process(
- COMMAND hdiutil attach -noverify fmodstudioapi20232mac-installer.dmg
+ COMMAND hdiutil attach -noverify fmodstudioapi20234mac-installer.dmg
WORKING_DIRECTORY $ENV{HOME}/Downloads
)
file(
@@ -64,36 +64,36 @@ if (USE_FMODSTUDIO)
file(WRITE ${PREBUILD_TRACKING_DIR}/fmodstudio_installed "${fmodstudio_installed}")
else ()
file(ARCHIVE_EXTRACT
- INPUT $ENV{HOME}/Downloads/fmodstudioapi20232linux.tar.gz
+ INPUT $ENV{HOME}/Downloads/fmodstudioapi20234linux.tar.gz
DESTINATION ${CMAKE_BINARY_DIR}
)
file(
COPY
- ${CMAKE_BINARY_DIR}/fmodstudioapi20232linux/api/core/inc/fmod.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20232linux/api/core/inc/fmod.hpp
- ${CMAKE_BINARY_DIR}/fmodstudioapi20232linux/api/core/inc/fmod_codec.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20232linux/api/core/inc/fmod_common.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20232linux/api/core/inc/fmod_dsp.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20232linux/api/core/inc/fmod_dsp_effects.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20232linux/api/core/inc/fmod_errors.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20232linux/api/core/inc/fmod_output.h
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20234linux/api/core/inc/fmod.h
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20234linux/api/core/inc/fmod.hpp
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20234linux/api/core/inc/fmod_codec.h
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20234linux/api/core/inc/fmod_common.h
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20234linux/api/core/inc/fmod_dsp.h
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20234linux/api/core/inc/fmod_dsp_effects.h
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20234linux/api/core/inc/fmod_errors.h
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20234linux/api/core/inc/fmod_output.h
DESTINATION ${LIBS_PREBUILT_DIR}/include/fmodstudio
)
if (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
file(
COPY
- ${CMAKE_BINARY_DIR}/fmodstudioapi20232linux/api/core/lib/arm64/libfmod.so
- ${CMAKE_BINARY_DIR}/fmodstudioapi20232linux/api/core/lib/arm64/libfmod.so.13
- ${CMAKE_BINARY_DIR}/fmodstudioapi20232linux/api/core/lib/arm64/libfmod.so.13.32
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20234linux/api/core/lib/arm64/libfmod.so
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20234linux/api/core/lib/arm64/libfmod.so.13
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20234linux/api/core/lib/arm64/libfmod.so.13.34
DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE}
FOLLOW_SYMLINK_CHAIN
)
else ()
file(
COPY
- ${CMAKE_BINARY_DIR}/fmodstudioapi20232linux/api/core/lib/${CMAKE_SYSTEM_PROCESSOR}/libfmod.so
- ${CMAKE_BINARY_DIR}/fmodstudioapi20232linux/api/core/lib/${CMAKE_SYSTEM_PROCESSOR}/libfmod.so.13
- ${CMAKE_BINARY_DIR}/fmodstudioapi20232linux/api/core/lib/${CMAKE_SYSTEM_PROCESSOR}/libfmod.so.13.32
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20234linux/api/core/lib/${CMAKE_SYSTEM_PROCESSOR}/libfmod.so
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20234linux/api/core/lib/${CMAKE_SYSTEM_PROCESSOR}/libfmod.so.13
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20234linux/api/core/lib/${CMAKE_SYSTEM_PROCESSOR}/libfmod.so.13.34
DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE}
FOLLOW_SYMLINK_CHAIN
)
@@ -107,6 +107,7 @@ if (USE_FMODSTUDIO)
target_link_libraries( ll::fmodstudio INTERFACE fmod_vc)
elseif (DARWIN)
#despite files being called libfmod.dylib, we are searching for fmod
+ target_link_directories( ll::fmodstudio INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE})
target_link_libraries( ll::fmodstudio INTERFACE fmod)
elseif (LINUX)
target_link_libraries( ll::fmodstudio INTERFACE fmod)
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index 09413c912d..81b40cb0b5 100644
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -21,6 +21,9 @@ endif()
if (TRUE)
include(FindPkgConfig)
pkg_check_modules(Minizip REQUIRED minizip)
+ if (${LINUX_DISTRO} MATCHES arch OR (${LINUX_DISTRO} MATCHES gentoo) OR DARWIN)
+ set(Minizip_INCLUDE_DIRS ${Minizip_INCLUDE_DIRS}/minizip)
+ endif ()
pkg_check_modules(Libxml2 REQUIRED libxml-2.0)
target_link_libraries( ll::minizip-ng INTERFACE ${Minizip_LIBRARIES} )
target_link_libraries( ll::libxml INTERFACE ${Libxml2_LIBRARIES} )
@@ -67,9 +70,9 @@ if (TRUE)
set(BOOST_CFLAGS -I${prefix_result}/../include)
set(BOOST_LIBS -L${prefix_result})
if ($ENV{MSYSTEM_CARCH} MATCHES aarch64)
- set(BOOST_LIBRARY_SUFFIX -vc143-mt-a64-1_90)
+ set(BOOST_LIBRARY_SUFFIX -vc143-mt-a64-1_91)
else ()
- set(BOOST_LIBRARY_SUFFIX -vc143-mt-x64-1_90)
+ set(BOOST_LIBRARY_SUFFIX -vc143-mt-x64-1_91)
endif ()
elseif (CMAKE_SYSTEM_NAME MATCHES FreeBSD)
set(BOOST_CFLAGS -I/usr/local/include)
@@ -103,7 +106,7 @@ if (TRUE)
)
if (WINDOWS)
execute_process(
- COMMAND MSBuild.exe ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10/Project.sln -p:Configuration=${CMAKE_BUILD_TYPE}
+ COMMAND MSBuild.exe ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10/Project.slnx -p:Configuration=${CMAKE_BUILD_TYPE}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10
OUTPUT_VARIABLE colladadom_installed
)
diff --git a/indra/cmake/Meshoptimizer.cmake b/indra/cmake/Meshoptimizer.cmake
index b1d2796915..225f44b1fb 100644
--- a/indra/cmake/Meshoptimizer.cmake
+++ b/indra/cmake/Meshoptimizer.cmake
@@ -16,20 +16,20 @@ if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu) OR CMAKE_
elseif (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 AND NOT (${LINUX_DISTRO} MATCHES gentoo))
use_prebuilt_binary(meshoptimizer)
elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/meshoptimizer_installed OR NOT ${meshoptimizer_installed} EQUAL 0)
- if (NOT EXISTS ${CMAKE_BINARY_DIR}/meshoptimizer-0.21.tar.gz)
+ if (NOT EXISTS ${CMAKE_BINARY_DIR}/meshoptimizer-1.0.1.tar.gz)
file(DOWNLOAD
- https://github.com/zeux/meshoptimizer/archive/refs/tags/v0.21.tar.gz
- ${CMAKE_BINARY_DIR}/meshoptimizer-0.21.tar.gz
+ https://github.com/zeux/meshoptimizer/archive/refs/tags/v1.0.1.tar.gz
+ ${CMAKE_BINARY_DIR}/meshoptimizer-1.0.1.tar.gz
)
endif ()
file(ARCHIVE_EXTRACT
- INPUT ${CMAKE_BINARY_DIR}/meshoptimizer-0.21.tar.gz
+ INPUT ${CMAKE_BINARY_DIR}/meshoptimizer-1.0.1.tar.gz
DESTINATION ${CMAKE_BINARY_DIR}
)
try_compile(MESHOPTIMIZER_RESULT
PROJECT meshoptimizer
- SOURCE_DIR ${CMAKE_BINARY_DIR}/meshoptimizer-0.21
- BINARY_DIR ${CMAKE_BINARY_DIR}/meshoptimizer-0.21
+ SOURCE_DIR ${CMAKE_BINARY_DIR}/meshoptimizer-1.0.1
+ BINARY_DIR ${CMAKE_BINARY_DIR}/meshoptimizer-1.0.1
TARGET meshoptimizer
CMAKE_FLAGS
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
@@ -42,7 +42,7 @@ elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRA
if (${MESHOPTIMIZER_RESULT})
execute_process(
COMMAND ${CMAKE_MAKE_PROGRAM} install
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/meshoptimizer-0.21
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/meshoptimizer-1.0.1
OUTPUT_VARIABLE meshoptimizer_installed
)
file(WRITE ${PREBUILD_TRACKING_DIR}/meshoptimizer_installed "${meshoptimizer_installed}")
diff --git a/indra/cmake/Python.cmake b/indra/cmake/Python.cmake
index 7cce190f6a..39fd21c33f 100644
--- a/indra/cmake/Python.cmake
+++ b/indra/cmake/Python.cmake
@@ -13,7 +13,7 @@ elseif (WINDOWS)
foreach(hive HKEY_CURRENT_USER HKEY_LOCAL_MACHINE)
# prefer more recent Python versions to older ones, if multiple versions
# are installed
- foreach(pyver 3.13 3.12 3.11 3.10 3.9 3.8 3.7)
+ foreach(pyver 3.14 3.13 3.12 3.11 3.10 3.9 3.8 3.7)
list(APPEND regpaths "[${hive}\\SOFTWARE\\Python\\PythonCore\\${pyver}\\InstallPath]")
endforeach()
endforeach()
diff --git a/indra/cmake/Velopack.cmake b/indra/cmake/Velopack.cmake
new file mode 100644
index 0000000000..a1dbe2cbe9
--- /dev/null
+++ b/indra/cmake/Velopack.cmake
@@ -0,0 +1,68 @@
+# -*- cmake -*-
+# Velopack installer and update framework integration
+# https://velopack.io/
+
+include_guard()
+
+# USE_VELOPACK controls whether to use Velopack for installer packaging (instead of NSIS/DMG)
+option(USE_VELOPACK "Use Velopack for installer packaging" OFF)
+
+if (WINDOWS)
+ include(Prebuilt)
+ use_prebuilt_binary(velopack)
+
+ add_library(ll::velopack INTERFACE IMPORTED)
+
+ target_include_directories(ll::velopack SYSTEM INTERFACE
+ ${LIBS_PREBUILT_DIR}/include/velopack
+ )
+
+ target_link_libraries(ll::velopack INTERFACE
+ ${ARCH_PREBUILT_DIRS_RELEASE}/velopack_libc.lib
+ )
+
+ # Windows system libraries required by Velopack
+ target_link_libraries(ll::velopack INTERFACE
+ winhttp
+ ole32
+ shell32
+ shlwapi
+ version
+ userenv
+ ws2_32
+ bcrypt
+ ntdll
+ )
+
+ target_compile_definitions(ll::velopack INTERFACE LL_VELOPACK=1)
+
+elseif (DARWIN)
+ include(Prebuilt)
+ use_prebuilt_binary(velopack)
+
+ add_library(ll::velopack INTERFACE IMPORTED)
+
+ target_include_directories(ll::velopack SYSTEM INTERFACE
+ ${LIBS_PREBUILT_DIR}/include/velopack
+ )
+
+ target_link_libraries(ll::velopack INTERFACE
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libvelopack_libc.a
+ )
+
+ # macOS system frameworks required by Velopack (Rust static library dependencies)
+ target_link_libraries(ll::velopack INTERFACE
+ "-framework Foundation"
+ "-framework Security"
+ "-framework SystemConfiguration"
+ "-framework AppKit"
+ "-framework CoreFoundation"
+ "-framework CoreServices"
+ "-framework IOKit"
+ "-liconv"
+ "-lresolv"
+ )
+
+ target_compile_definitions(ll::velopack INTERFACE LL_VELOPACK=1)
+
+endif()
diff --git a/indra/cmake/WebRTC.cmake b/indra/cmake/WebRTC.cmake
index 5fda2f71b9..286d3aa172 100644
--- a/indra/cmake/WebRTC.cmake
+++ b/indra/cmake/WebRTC.cmake
@@ -8,7 +8,7 @@ add_library( ll::webrtc INTERFACE IMPORTED )
target_include_directories( ll::webrtc SYSTEM INTERFACE "${LIBS_PREBUILT_DIR}/include/webrtc" "${LIBS_PREBUILT_DIR}/include/webrtc/third_party/abseil-cpp")
if (DARWIN OR WINDOWS)
use_prebuilt_binary(webrtc)
-elseif (NOT (CMAKE_SYSTEM_NAME MATCHES FreeBSD OR ($ENV{MSYSTEM_CARCH} MATCHES aarch64) OR (${LINUX_DISTRO} MATCHES debian AND CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)))
+elseif (NOT (CMAKE_SYSTEM_NAME MATCHES FreeBSD OR ($ENV{MSYSTEM_CARCH} MATCHES aarch64)))
target_compile_definitions(ll::webrtc INTERFACE CM_WEBRTC=1)
if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/webrtc_installed OR NOT ${webrtc_installed} EQUAL 0)
if (DARWIN)
diff --git a/indra/cmake/bugsplat.cmake b/indra/cmake/bugsplat.cmake
index 509981d72c..d2a8fcca46 100644
--- a/indra/cmake/bugsplat.cmake
+++ b/indra/cmake/bugsplat.cmake
@@ -23,8 +23,14 @@ if (USE_BUGSPLAT)
elseif (DARWIN)
find_library(BUGSPLAT_LIBRARIES BugsplatMac REQUIRED
NO_DEFAULT_PATH PATHS "${ARCH_PREBUILT_DIRS_RELEASE}")
+ find_library(CRASHREPORTED_LIBRARIES CrashReporter REQUIRED
+ NO_DEFAULT_PATH PATHS "${ARCH_PREBUILT_DIRS_RELEASE}")
+ find_library(HOCKEYSDK_LIBRARIES HockeySDK REQUIRED
+ NO_DEFAULT_PATH PATHS "${ARCH_PREBUILT_DIRS_RELEASE}")
target_link_libraries( ll::bugsplat INTERFACE
${BUGSPLAT_LIBRARIES}
+ ${CRASHREPORTED_LIBRARIES}
+ ${HOCKEYSDK_LIBRARIES}
)
else (WINDOWS)
message(FATAL_ERROR "BugSplat is not supported; add -DUSE_BUGSPLAT=OFF")