summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/00-COMPILE-LINK-RUN.txt4
-rw-r--r--indra/cmake/00-Common.cmake156
-rw-r--r--indra/cmake/Boost.cmake149
-rw-r--r--indra/cmake/BuildVersion.cmake9
-rw-r--r--indra/cmake/CEFPlugin.cmake34
-rw-r--r--indra/cmake/CMakeLists.txt11
-rw-r--r--indra/cmake/Copy3rdPartyLibs.cmake19
-rw-r--r--indra/cmake/DBusGlib.cmake14
-rw-r--r--indra/cmake/Discord.cmake29
-rw-r--r--indra/cmake/FreeType.cmake4
-rw-r--r--indra/cmake/GLEXT.cmake3
-rw-r--r--indra/cmake/GLH.cmake8
-rw-r--r--indra/cmake/GLIB.cmake2
-rw-r--r--indra/cmake/GStreamer010Plugin.cmake12
-rw-r--r--indra/cmake/GStreamer10Plugin.cmake4
-rw-r--r--indra/cmake/Havok.cmake37
-rw-r--r--indra/cmake/JPEG.cmake3
-rw-r--r--indra/cmake/LLAddBuildTest.cmake48
-rw-r--r--indra/cmake/LLAppearanceUtility.cmake12
-rw-r--r--indra/cmake/LLKDU.cmake24
-rw-r--r--indra/cmake/LLWindow.cmake31
-rw-r--r--indra/cmake/LSLDefinitions.cmake9
-rw-r--r--indra/cmake/LibVLCPlugin.cmake100
-rw-r--r--indra/cmake/Linking.cmake2
-rw-r--r--indra/cmake/NDOF.cmake31
-rw-r--r--indra/cmake/OPENAL.cmake2
-rw-r--r--indra/cmake/OpenGL.cmake5
-rw-r--r--indra/cmake/OpenXR.cmake29
-rw-r--r--indra/cmake/PNG.cmake4
-rw-r--r--indra/cmake/Prebuilt.cmake41
-rw-r--r--indra/cmake/SDL3.cmake33
-rw-r--r--indra/cmake/SSE2NEON.cmake2
-rw-r--r--indra/cmake/UI.cmake61
-rw-r--r--indra/cmake/Variables.cmake108
-rw-r--r--indra/cmake/ViewerMiscLibs.cmake8
-rw-r--r--indra/cmake/ZLIBNG.cmake2
-rw-r--r--indra/cmake/bugsplat.cmake14
-rwxr-xr-xindra/cmake/run_build_test.py2
-rw-r--r--indra/cmake/websocketpp.cmake7
39 files changed, 588 insertions, 485 deletions
diff --git a/indra/cmake/00-COMPILE-LINK-RUN.txt b/indra/cmake/00-COMPILE-LINK-RUN.txt
index 1933072a6d..7b91b5a0d4 100644
--- a/indra/cmake/00-COMPILE-LINK-RUN.txt
+++ b/indra/cmake/00-COMPILE-LINK-RUN.txt
@@ -117,7 +117,7 @@ Compilation
currently being generated with a link path of
'@executable_path/../Resources/<library>'. If we were to follow
the recommendations in dyld's man page, we’d instead reference
- '@loader_path/<library>', use -rpath on the executable link
+ '@loader_path/<library>', use -rpath on the executable link
(pointing to the 'Resources' subdir of the main executable), and
be able to avoid some symlinking in the .app tree.
@@ -162,7 +162,7 @@ Linking
* Update the autobuild.xml of ALL consumers of the library. In
the case of zlib, that meant updating freetype, libpng, openssl,
- libxml2, fontconfig, curl, Boost, SDL, llqtwebkit, google-mock and
+ libxml2, fontconfig, curl, Boost, SDL3, llqtwebkit, google-mock and
colladadom.
* Confirm by test and observation that the consumers actually use
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 3e1dab7c00..254097b491 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -11,15 +11,32 @@
#
# Also realize that CMAKE_CXX_FLAGS may already be partially populated on
# entry to this file.
+#
+# Additionally CMAKE_C_FLAGS is prepended to CMAKE_CXX_FLAGS_RELEASE and
+# CMAKE_CXX_FLAGS_RELWITHDEBINFO which risks having flags overriden by cmake
+# inserting additional options that are part of the build config type.
#*****************************************************************************
include_guard()
include(Variables)
-include(Linker)
+include(Linking)
include(UnixInstall)
# We go to some trouble to set LL_BUILD to the set of relevant compiler flags.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} $ENV{LL_BUILD}")
+
+if (DARWIN)
+ # LL_BUILD carries a literal -mmacosx-version-min=<ver> from
+ # viewer-build-variables. We derive the macOS deployment target in
+ # Variables.cmake (clamping up to the SDK's supported minimum when needed)
+ # and let CMAKE_OSX_DEPLOYMENT_TARGET emit the flag to both compiler and
+ # linker. Strip the verbatim flag here so it can't conflict with the
+ # clamped deployment target.
+ string(REGEX REPLACE "-mmacosx-version-min=[0-9.]+" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+endif (DARWIN)
+set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} $ENV{LL_BUILD_RELEASE}")
+set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} $ENV{LL_BUILD_RELWITHDEBINFO}")
+
# Given that, all the flags you see added below are flags NOT present in
# https://bitbucket.org/lindenlab/viewer-build-variables/src/tip/variables.
# Before adding new ones here, it's important to ask: can this flag really be
@@ -27,7 +44,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} $ENV{LL_BUILD}")
# as well?
# Portable compilation flags.
-add_compile_definitions( ADDRESS_SIZE=${ADDRESS_SIZE})
+add_compile_definitions(ADDRESS_SIZE=${ADDRESS_SIZE})
# Because older versions of Boost.Bind dumped placeholders _1, _2 et al. into
# the global namespace, Boost now requires either BOOST_BIND_NO_PLACEHOLDERS
# to avoid that or BOOST_BIND_GLOBAL_PLACEHOLDERS to state that we require it
@@ -116,7 +133,7 @@ if (NOT CMAKE_CXX_COMPILER_ID MATCHES GNU AND WINDOWS)
#ND: When using something like buildcache (https://github.com/mbitsnbites/buildcache)
# to make those wrappers work /Zi must be changed to /Z7, as /Zi due to it's nature is not compatible with caching
- if(${CMAKE_CXX_COMPILER_LAUNCHER} MATCHES ".*cache.*")
+ if (${CMAKE_CXX_COMPILER_LAUNCHER} MATCHES ".*cache.*")
add_compile_options( /Z7 )
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
@@ -124,9 +141,9 @@ if (NOT CMAKE_CXX_COMPILER_ID MATCHES GNU AND WINDOWS)
string(REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
endif()
-endif (NOT CMAKE_CXX_COMPILER_ID MATCHES GNU AND WINDOWS)
+endif ()
-if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+if (LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
set( CMAKE_BUILD_WITH_INSTALL_RPATH TRUE )
set( CMAKE_INSTALL_RPATH ${INSTALL_LIBRARY_DIR} )
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--exclude-libs,ALL")
@@ -137,10 +154,10 @@ if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_EXE} )
endif()
- # LL_IGNORE_SIGCHLD
- # don't catch SIGCHLD in our base application class for the viewer - some of
- # our 3rd party libs may need their *own* SIGCHLD handler to work. Sigh! The
- # viewer doesn't need to catch SIGCHLD anyway.
+ # LL_IGNORE_SIGCHLD
+ # don't catch SIGCHLD in our base application class for the viewer - some of
+ # our 3rd party libs may need their *own* SIGCHLD handler to work. Sigh! The
+ # viewer doesn't need to catch SIGCHLD anyway.
add_compile_definitions(
_REENTRANT
@@ -148,38 +165,66 @@ if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
LL_IGNORE_SIGCHLD
)
- if( ENABLE_ASAN )
- add_compile_options(-U_FORTIFY_SOURCE
- -fsanitize=address
- --param asan-stack=0
- )
+ option(ENABLE_ASAN "Enable Address Sanitizer" OFF)
+ option(ENABLE_UBSAN "Enable Undefined Behavior Sanitizer" OFF)
+ option(ENABLE_THREADSAN "Enable Thread Sanitizer" OFF)
+ if(ENABLE_ASAN OR ENABLE_UBSAN OR ENABLE_THREADSAN)
+ set(GCC_DISABLE_FATAL_WARNINGS ON) # Disable warnings as errors during sanitizer builds due to false positives
+
+ add_compile_options(
+ -U_FORTIFY_SOURCE
+ -fno-omit-frame-pointer
+ -fno-common
+ -fsanitize-recover=all
+ )
+
+ # libwebrtc is incompatible with sanitizers
+ set(DISABLE_WEBRTC ON)
+ add_compile_definitions(DISABLE_WEBRTC=1)
+
+ if(ENABLE_ASAN)
+ add_compile_options(-fsanitize=address)
add_link_options(-fsanitize=address)
- elseif( NOT (${LINUX_DISTRO} MATCHES freedesktop) )
- add_compile_definitions( _FORTIFY_SOURCE=2 )
+ endif()
+
+ if(ENABLE_UBSAN)
+ add_compile_options(-fsanitize=undefined)
+ add_link_options(-fsanitize=undefined)
+ endif()
+
+ if(ENABLE_THREADSAN)
+ add_compile_options(-fsanitize=thread)
+ add_link_options(-fsanitize=thread)
+ endif()
+ elseif(NOT (${LINUX_DISTRO} MATCHES freedesktop))
+ add_compile_definitions($<$<CONFIG:Release>:_FORTIFY_SOURCE=2>)
endif()
- if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+ if (CMAKE_SYSTEM_NAME MATCHES FreeBSD)
add_compile_definitions(EXTERNAL_TOS)
- endif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+ endif ()
add_compile_options(
- -fexceptions
- -fno-math-errno
- -fno-strict-aliasing
- -fsigned-char
- -pthread
+ $<$<OR:$<CONFIG:Release>,$<CONFIG:RelWithDebInfo>>:-fstack-protector>
+ -fexceptions
+ -fno-math-errno
+ -fno-strict-aliasing
+ -fsigned-char
+ #-g
+ -pthread
)
if (CMAKE_SYSTEM_NAME MATCHES x86_64)
- add_compile_options(
- -msse2
- -mfpmath=sse
- )
+ add_compile_options(
+ -msse2
+ )
endif ()
if (NOT BUILD_SHARED_LIBS)
- add_compile_options(-fvisibility=hidden)
- endif (NOT BUILD_SHARED_LIBS)
+ add_compile_options(
+ -fvisibility=hidden
+ )
+ endif ()
set(GCC_CLANG_COMPATIBLE_WARNINGS
-Wno-parentheses
@@ -189,8 +234,6 @@ if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
)
set(CLANG_WARNINGS
- ${GCC_CLANG_COMPATIBLE_WARNINGS}
- # Put clang specific warning configuration here
-Wno-inconsistent-missing-override
)
@@ -207,16 +250,16 @@ if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
endif ()
add_link_options(
-Wl,--no-keep-memory
- -Wl,--build-id
- -Wl,--no-undefined
+ "LINKER:-z,relro"
+ "LINKER:-z,now"
+ "LINKER:--build-id"
+ "LINKER:--as-needed"
+ "LINKER:--no-undefined"
)
if (NOT GCC_DISABLE_FATAL_WARNINGS)
add_compile_options( -Werror )
endif (NOT GCC_DISABLE_FATAL_WARNINGS)
- # this stops us requiring a really recent glibc at runtime
- add_compile_options(-fno-stack-protector)
-
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
# ND: clang is a bit more picky than GCC, the latter seems to auto include -lstdc++ and -lm. The former not so and thus fails to link
add_link_options(
@@ -227,33 +270,48 @@ if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
else()
add_compile_options(${GCC_WARNINGS})
endif()
-endif (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+endif ()
if (DARWIN)
# Use rpath loading on macos
set(CMAKE_MACOSX_RPATH TRUE)
- # Warnings should be fatal -- thanks, Nicky Perian, for spotting reversed default
- set(CLANG_DISABLE_FATAL_WARNINGS OFF)
set(CMAKE_CXX_LINK_FLAGS "-Wl,-headerpad_max_install_names,-search_paths_first")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_LINK_FLAGS}")
- # required for clang-15/xcode-15 since our boost package still uses deprecated std::unary_function/binary_function
- # see https://developer.apple.com/documentation/xcode-release-notes/xcode-15-release-notes#C++-Standard-Library
- #add_compile_definitions(_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION)
+ # Ensure debug symbols are always generated
+ add_compile_options(-g --debug) # --debug is a clang synonym for -g that bypasses cmake behaviors
- set(GCC_WARNINGS -Wall -Wno-sign-compare -Wno-trigraphs)
+ # Silence GL deprecation warnings
+ add_compile_definitions(GL_SILENCE_DEPRECATION=1)
+
+ add_compile_options(-Wno-inconsistent-missing-override)
+ if (CMAKE_OSX_ARCHITECTURES MATCHES arm64)
+ add_compile_options("-Wno-#warnings")
+ endif()
+endif(DARWIN)
- list(APPEND GCC_WARNINGS -Wno-reorder -Wno-non-virtual-dtor )
+if (LINUX OR DARWIN OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
+ add_compile_options(-Wall -Wno-sign-compare -Wno-trigraphs -Wno-reorder -Wno-unused-but-set-variable -Wno-unused-variable)
- if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13)
- list(APPEND GCC_WARNINGS -Wno-unused-but-set-variable -Wno-unused-variable )
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+ add_compile_options(-Wno-unused-private-field)
endif()
- if (CMAKE_OSX_ARCHITECTURES MATCHES arm64)
- list(APPEND GCC_WARNINGS "-Wno-#warnings" )
+ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
+ add_compile_options(-Wno-unused-local-typedef)
endif()
- add_compile_options(${GCC_WARNINGS})
+ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ add_compile_options(-Wno-stringop-truncation -Wno-stringop-overflow -Wno-parentheses -Wno-maybe-uninitialized -Wno-unused-local-typedefs)
+ endif ()
+
+ if (NOT GCC_DISABLE_FATAL_WARNINGS AND NOT CLANG_DISABLE_FATAL_WARNINGS)
+ add_compile_options(-Werror)
+ endif ()
+
+ if (NOT (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64))
add_compile_options(-m${ADDRESS_SIZE})
+ endif ()
endif ()
+
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index 9746704907..46600ef029 100644
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -1,5 +1,6 @@
# -*- cmake -*-
include(Prebuilt)
+include(Linking)
include_guard()
@@ -36,6 +37,7 @@ if (NOT (${LINUX_DISTRO} MATCHES freedesktop))
boost_context${sfx}
boost_fiber${sfx}
boost_filesystem${sfx}
+ boost_process${sfx}
boost_program_options${sfx}
boost_thread${sfx}
boost_url${sfx}
@@ -64,103 +66,78 @@ use_prebuilt_binary(boost)
# with the address size.
set(addrsfx "-x${ADDRESS_SIZE}")
-if (WINDOWS)
-
- find_library(BOOST_CONTEXT_LIBRARY
- NAMES
- libboost_context
- libboost_context-mt
- libboost_context-mt${addrsfx}
- PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
-
- find_library(BOOST_FIBER_LIBRARY
- NAMES
- libboost_fiber
- libboost_fiber-mt
- libboost_fiber-mt${addrsfx}
- PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
-
- find_library(BOOST_FILESYSTEM_LIBRARY
- NAMES
- libboost_filesystem
- libboost_filesystem-mt
- libboost_filesystem-mt${addrsfx}
- PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
-
- find_library(BOOST_PROGRAMOPTIONS_LIBRARY
- NAMES
- libboost_program_options
- libboost_program_options-mt
- libboost_program_options-mt${addrsfx}
- PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
-
- find_library(BOOST_THREAD_LIBRARY
- NAMES
- libboost_thread
- libboost_thread-mt
- libboost_thread-mt${addrsfx}
- PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
-
- find_library(BOOST_URL_LIBRARY
- NAMES
- libboost_url
- libboost_url-mt
- libboost_url-mt${addrsfx}
- PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+find_library(BOOST_CONTEXT_LIBRARY
+ NAMES
+ libboost_context
+ libboost_context-mt
+ libboost_context-mt${addrsfx}
+ boost_context
+ boost_context-mt
+ boost_context-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
-else (WINDOWS)
+find_library(BOOST_FIBER_LIBRARY
+ NAMES
+ libboost_fiber
+ libboost_fiber-mt
+ libboost_fiber-mt${addrsfx}
+ boost_fiber
+ boost_fiber-mt
+ boost_fiber-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
- find_library(BOOST_CONTEXT_LIBRARY
- NAMES
- boost_context
- boost_context-mt
- boost_context-mt${addrsfx}
- PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+find_library(BOOST_FILESYSTEM_LIBRARY
+ NAMES
+ libboost_filesystem
+ libboost_filesystem-mt
+ libboost_filesystem-mt${addrsfx}
+ boost_filesystem
+ boost_filesystem-mt
+ boost_filesystem-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
- find_library(BOOST_FIBER_LIBRARY
- NAMES
- boost_fiber
- boost_fiber-mt
- boost_fiber-mt${addrsfx}
- PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+find_library(BOOST_PROGRAMOPTIONS_LIBRARY
+ NAMES
+ libboost_program_options
+ libboost_program_options-mt
+ libboost_program_options-mt${addrsfx}
+ boost_program_options
+ boost_program_options-mt
+ boost_program_options-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
- find_library(BOOST_FILESYSTEM_LIBRARY
- NAMES
- boost_filesystem
- boost_filesystem-mt
- boost_filesystem-mt${addrsfx}
- PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+find_library(BOOST_URL_LIBRARY
+ NAMES
+ libboost_url
+ libboost_url-mt
+ libboost_url-mt${addrsfx}
+ boost_url
+ boost_url-mt
+ boost_url-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
- find_library(BOOST_PROGRAMOPTIONS_LIBRARY
- NAMES
- boost_program_options
- boost_program_options-mt
- boost_program_options-mt${addrsfx}
- PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
-
- find_library(BOOST_THREAD_LIBRARY
- NAMES
- boost_thread
- boost_thread-mt
- boost_thread-mt${addrsfx}
- PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
-
- find_library(BOOST_URL_LIBRARY
- NAMES
- boost_url
- boost_url-mt
- boost_url-mt${addrsfx}
- PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
-
-endif (WINDOWS)
+find_library(BOOST_PROCESS_LIBRARY
+ NAMES
+ libboost_process
+ libboost_process-mt
+ libboost_process-mt${addrsfx}
+ boost_process
+ boost_process-mt
+ boost_process-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
target_link_libraries(ll::boost INTERFACE
${BOOST_FIBER_LIBRARY}
${BOOST_CONTEXT_LIBRARY}
${BOOST_FILESYSTEM_LIBRARY}
${BOOST_PROGRAMOPTIONS_LIBRARY}
- ${BOOST_THREAD_LIBRARY}
- ${BOOST_URL_LIBRARY})
+ ${BOOST_URL_LIBRARY}
+ ${BOOST_PROCESS_LIBRARY})
+
+if (WINDOWS)
+ # Boost.Process v2 needs ntdll (NtSuspendProcess/NtResumeProcess)
+ target_link_libraries(ll::boost INTERFACE ntdll)
+endif (WINDOWS)
if (LINUX)
target_link_libraries(ll::boost INTERFACE rt)
diff --git a/indra/cmake/BuildVersion.cmake b/indra/cmake/BuildVersion.cmake
index aa151bafc8..6939f9a4da 100644
--- a/indra/cmake/BuildVersion.cmake
+++ b/indra/cmake/BuildVersion.cmake
@@ -46,13 +46,4 @@ if (NOT DEFINED VIEWER_SHORT_VERSION) # will be true in indra/, false in indra/n
message(STATUS "Ultimate fallback, revision was blank or not set: will use 0")
set(VIEWER_VERSION_REVISION 0)
endif ("${VIEWER_VERSION_REVISION}" STREQUAL "")
-
- set(VIEWER_CHANNEL_VERSION_DEFINES
- "LL_VIEWER_CHANNEL=${VIEWER_CHANNEL}"
- "LL_VIEWER_VERSION_MAJOR=${VIEWER_VERSION_MAJOR}"
- "LL_VIEWER_VERSION_MINOR=${VIEWER_VERSION_MINOR}"
- "LL_VIEWER_VERSION_PATCH=${VIEWER_VERSION_PATCH}"
- "LL_VIEWER_VERSION_BUILD=${VIEWER_VERSION_REVISION}"
- "LLBUILD_CONFIG=\"${CMAKE_BUILD_TYPE}\""
- )
endif (NOT DEFINED VIEWER_SHORT_VERSION)
diff --git a/indra/cmake/CEFPlugin.cmake b/indra/cmake/CEFPlugin.cmake
index 269afcc456..c88625fdf8 100644
--- a/indra/cmake/CEFPlugin.cmake
+++ b/indra/cmake/CEFPlugin.cmake
@@ -155,25 +155,25 @@ elseif (${LINUX_DISTRO} MATCHES fedora)
endif ()
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/dullahan_installed OR NOT ${dullahan_installed} EQUAL 0)
- if (NOT EXISTS ${CMAKE_BINARY_DIR}/dullahan-1.24.0-CEF_139.0.40.tar.gz)
+ if (NOT EXISTS ${CMAKE_BINARY_DIR}/dullahan-1.26.0-CEF_139.0.40.tar.gz)
file(DOWNLOAD
- https://github.com/secondlife/dullahan/archive/refs/tags/v1.24.0-CEF_139.0.40.tar.gz
- ${CMAKE_BINARY_DIR}/dullahan-1.24.0-CEF_139.0.40.tar.gz
+ https://github.com/secondlife/dullahan/archive/refs/tags/v1.26.0-CEF_139.0.40.tar.gz
+ ${CMAKE_BINARY_DIR}/dullahan-1.26.0-CEF_139.0.40.tar.gz
)
endif ()
file(ARCHIVE_EXTRACT
- INPUT ${CMAKE_BINARY_DIR}/dullahan-1.24.0-CEF_139.0.40.tar.gz
+ INPUT ${CMAKE_BINARY_DIR}/dullahan-1.26.0-CEF_139.0.40.tar.gz
DESTINATION ${CMAKE_BINARY_DIR}
)
execute_process(
COMMAND sed -i "/#include <vector>/a #include <cstdint>" dullahan.h
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/dullahan-1.24.0-CEF_139.0.40/src
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/dullahan-1.26.0-CEF_139.0.40/src
)
file(MAKE_DIRECTORY ${LIBS_PREBUILT_DIR}/include/cef)
try_compile(DULLAHAN_RESULT
PROJECT dullahan
- SOURCE_DIR ${CMAKE_BINARY_DIR}/dullahan-1.24.0-CEF_139.0.40
- BINARY_DIR ${CMAKE_BINARY_DIR}/dullahan-1.24.0-CEF_139.0.40
+ SOURCE_DIR ${CMAKE_BINARY_DIR}/dullahan-1.26.0-CEF_139.0.40
+ BINARY_DIR ${CMAKE_BINARY_DIR}/dullahan-1.26.0-CEF_139.0.40
CMAKE_FLAGS
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX:PATH=${LIBS_PREBUILT_DIR}
@@ -193,12 +193,12 @@ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
libcef.so
libvk_swiftshader.so
libvulkan.so.1
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/dullahan-1.24.0-CEF_139.0.40/_deps/cef_prebuild-src/${CMAKE_BUILD_TYPE}
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/dullahan-1.26.0-CEF_139.0.40/_deps/cef_prebuild-src/${CMAKE_BUILD_TYPE}
)
endif ()
execute_process(
COMMAND ${CMAKE_MAKE_PROGRAM} install
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/dullahan-1.24.0-CEF_139.0.40
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/dullahan-1.26.0-CEF_139.0.40
OUTPUT_VARIABLE dullahan_installed
)
if (CMAKE_BUILD_TYPE MATCHES Release)
@@ -209,8 +209,8 @@ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
endif ()
file(
COPY
- ${CMAKE_BINARY_DIR}/dullahan-1.24.0-CEF_139.0.40/src/dullahan.h
- ${CMAKE_BINARY_DIR}/dullahan-1.24.0-CEF_139.0.40/src/dullahan_version.h
+ ${CMAKE_BINARY_DIR}/dullahan-1.26.0-CEF_139.0.40/src/dullahan.h
+ ${CMAKE_BINARY_DIR}/dullahan-1.26.0-CEF_139.0.40/src/dullahan_version.h
DESTINATION ${LIBS_PREBUILT_DIR}/include/cef
)
file(WRITE ${PREBUILD_TRACKING_DIR}/dullahan_installed "${dullahan_installed}")
@@ -223,9 +223,9 @@ target_include_directories( ll::cef SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/inclu
if (WINDOWS)
target_link_libraries( ll::cef INTERFACE
- libcef.lib
- libcef_dll_wrapper.lib
- dullahan.lib
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libcef.lib
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libcef_dll_wrapper.lib
+ ${ARCH_PREBUILT_DIRS_RELEASE}/dullahan.lib
)
elseif (DARWIN)
FIND_LIBRARY(APPKIT_LIBRARY AppKit)
@@ -313,8 +313,8 @@ elseif (LINUX)
)
endif ()
target_link_libraries( ll::cef INTERFACE
- libdullahan.a
- cef
- cef_dll_wrapper.a
+ libdullahan.a
+ cef
+ cef_dll_wrapper.a
)
endif (WINDOWS)
diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt
index 5a53f43d1c..f7032f91e5 100644
--- a/indra/cmake/CMakeLists.txt
+++ b/indra/cmake/CMakeLists.txt
@@ -11,23 +11,25 @@ set(cmake_SOURCE_FILES
Audio.cmake
Boost.cmake
bugsplat.cmake
+ BuildPackagesInfo.cmake
BuildVersion.cmake
CEFPlugin.cmake
CEFPlugin.cmake
CMakeCopyIfDifferent.cmake
- CURL.cmake
Copy3rdPartyLibs.cmake
- DBusGlib.cmake
+ CURL.cmake
DeploySharedLibs.cmake
Discord.cmake
DragDrop.cmake
EXPAT.cmake
FindAutobuild.cmake
+ FindPipeWire.cmake
FMODSTUDIO.cmake
FreeType.cmake
GLEXT.cmake
- GLH.cmake
+ GLIB.cmake
GLM.cmake
+ GStreamer10Plugin.cmake
Havok.cmake
Hunspell.cmake
LLAddBuildTest.cmake
@@ -53,6 +55,8 @@ set(cmake_SOURCE_FILES
Prebuilt.cmake
PulseAudio.cmake
Python.cmake
+ SDL3.cmake
+ SSE2NEON.cmake
TemplateCheck.cmake
TinyEXR.cmake
TinyGLTF.cmake
@@ -67,6 +71,7 @@ set(cmake_SOURCE_FILES
VisualLeakDetector.cmake
LibVLCPlugin.cmake
WebRTC.cmake
+ websocketpp.cmake
xxHash.cmake
ZLIBNG.cmake
)
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index 667a04a1c5..def3feaa71 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -75,6 +75,9 @@ if(WINDOWS)
elseif (MSVC_VERSION GREATER_EQUAL 1930 AND MSVC_VERSION LESS 1950) # Visual Studio 2022
set(MSVC_VER 140)
set(MSVC_TOOLSET_VER 143)
+ elseif (MSVC_VERSION GREATER_EQUAL 1950 AND MSVC_VERSION LESS 1970) # Visual Studio 2026
+ set(MSVC_VER 140)
+ set(MSVC_TOOLSET_VER 145)
else (MSVC80)
MESSAGE(WARNING "New MSVC_VERSION ${MSVC_VERSION} of MSVC: adapt Copy3rdPartyLibs.cmake")
endif (MSVC80)
@@ -112,6 +115,7 @@ if(WINDOWS)
msvcp${MSVC_VER}_atomic_wait.dll
msvcp${MSVC_VER}_codecvt_ids.dll
msvcr${MSVC_VER}.dll
+ vccorlib${MSVC_VER}.dll
vcruntime${MSVC_VER}.dll
vcruntime${MSVC_VER}_1.dll
vcruntime${MSVC_VER}_threads.dll
@@ -173,17 +177,10 @@ elseif(LINUX)
if( USE_AUTOBUILD_3P )
list( APPEND release_files
- libatk-1.0.so
- libfreetype.so.6.6.2
- libfreetype.so.6
- libopenjp2.so
- libuuid.so.16
- libuuid.so.16.0.22
- libfontconfig.so.1.8.0
- libfontconfig.so.1
- libgmodule-2.0.so
- libgobject-2.0.so
- )
+ libSDL3.so
+ libSDL3.so.0
+ libSDL3.so.0.2.24
+ )
endif()
else(WINDOWS)
diff --git a/indra/cmake/DBusGlib.cmake b/indra/cmake/DBusGlib.cmake
deleted file mode 100644
index c9b727ca9d..0000000000
--- a/indra/cmake/DBusGlib.cmake
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- cmake -*-
-include(Prebuilt)
-
-add_library( ll::dbus INTERFACE IMPORTED)
-
-if( LINUX )
- # Only define this when not using the prebuild 3ps, lls prebuild is broken
- if( NOT USE_AUTOBUILD_3P )
- target_compile_definitions( ll::dbus INTERFACE LL_DBUS_ENABLED )
- endif()
- use_system_binary(dbus)
-
- use_prebuilt_binary(dbus_glib)
-endif()
diff --git a/indra/cmake/Discord.cmake b/indra/cmake/Discord.cmake
index 4893886afc..13dc4b6cbc 100644
--- a/indra/cmake/Discord.cmake
+++ b/indra/cmake/Discord.cmake
@@ -2,10 +2,7 @@ include(Prebuilt)
include_guard()
-add_library(ll::discord_sdk INTERFACE IMPORTED)
-target_compile_definitions(ll::discord_sdk INTERFACE LL_DISCORD=1)
-
-#use_prebuilt_binary(discord_sdk)
+option(USE_DISCORD "Enable Discord SDK" OFF)
if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/discord_sdk_installed OR NOT ${discord_sdk_installed} EQUAL 0)
if (${LINUX_DISTRO} MATCHES gentoo)
@@ -60,9 +57,21 @@ if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKIN
file(WRITE ${PREBUILD_TRACKING_DIR}/discord_sdk_installed "0")
endif ()
-target_include_directories(ll::discord_sdk SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/discord_sdk)
-find_library(DISCORD_LIBRARY
- NAMES
- discord_partner_sdk
- PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
-target_link_libraries(ll::discord_sdk INTERFACE ${DISCORD_LIBRARY})
+if(USE_DISCORD)
+ add_library(ll::discord_sdk INTERFACE IMPORTED)
+
+ target_compile_definitions(ll::discord_sdk INTERFACE LL_DISCORD=1)
+
+ #use_prebuilt_binary(discord_sdk)
+
+ find_library(DISCORD_SDK_LIBRARY
+ NAMES
+ discord_partner_sdk
+ discord_partner_sdk.lib
+ libdiscord_partner_sdk.so
+ libdiscord_partner_sdk.dylib
+ PATHS "${ARCH_PREBUILT_DIRS_ARCH_RELEASE}" "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+
+ target_include_directories(ll::discord_sdk SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/discord_sdk)
+ target_link_libraries(ll::discord_sdk INTERFACE ${DISCORD_SDK_LIBRARY})
+endif()
diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake
index 09dc649515..25df8a423f 100644
--- a/indra/cmake/FreeType.cmake
+++ b/indra/cmake/FreeType.cmake
@@ -1,6 +1,8 @@
# -*- cmake -*-
include(Prebuilt)
include(Linking)
+include(PNG)
+include(ZLIBNG)
include_guard()
add_library( ll::freetype INTERFACE IMPORTED )
@@ -22,4 +24,4 @@ find_library(FREETYPE_LIBRARY
libfreetype.a
PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
-target_link_libraries(ll::freetype INTERFACE ${FREETYPE_LIBRARY})
+target_link_libraries(ll::freetype INTERFACE ${FREETYPE_LIBRARY} ll::libpng ll::zlib-ng)
diff --git a/indra/cmake/GLEXT.cmake b/indra/cmake/GLEXT.cmake
index f45b27e7b8..61ee865753 100644
--- a/indra/cmake/GLEXT.cmake
+++ b/indra/cmake/GLEXT.cmake
@@ -1,8 +1,7 @@
# -*- cmake -*-
include(Prebuilt)
-include(GLH)
-add_library( ll::glext INTERFACE IMPORTED )
+add_library(ll::glext INTERFACE IMPORTED)
#use_system_binary(glext)
if (WINDOWS)
use_prebuilt_binary(glext)
diff --git a/indra/cmake/GLH.cmake b/indra/cmake/GLH.cmake
deleted file mode 100644
index ac86f385c6..0000000000
--- a/indra/cmake/GLH.cmake
+++ /dev/null
@@ -1,8 +0,0 @@
-# -*- cmake -*-
-include(Prebuilt)
-
-add_library( ll::glh_linear INTERFACE IMPORTED )
-target_include_directories( ll::glh_linear SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
-
-#use_system_binary( glh_linear )
-use_prebuilt_binary(glh_linear)
diff --git a/indra/cmake/GLIB.cmake b/indra/cmake/GLIB.cmake
index f52cbb7f87..a80d640588 100644
--- a/indra/cmake/GLIB.cmake
+++ b/indra/cmake/GLIB.cmake
@@ -6,7 +6,7 @@ add_library( ll::glib INTERFACE IMPORTED )
add_library( ll::glib_headers INTERFACE IMPORTED )
add_library( ll::gio INTERFACE IMPORTED )
-if( LINUX )
+if( LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD )
find_package(PkgConfig REQUIRED)
pkg_search_module(GLIB REQUIRED glib-2.0)
pkg_search_module(GIO REQUIRED gio-2.0)
diff --git a/indra/cmake/GStreamer010Plugin.cmake b/indra/cmake/GStreamer010Plugin.cmake
deleted file mode 100644
index 61f6f74033..0000000000
--- a/indra/cmake/GStreamer010Plugin.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- cmake -*-
-include(Prebuilt)
-if (NOT LINUX)
- return()
-endif()
-
-add_library( ll::gstreamer INTERFACE IMPORTED )
-target_compile_definitions( ll::gstreamer INTERFACE LL_GSTREAMER010_ENABLED=1)
-use_system_binary(gstreamer)
-
-use_prebuilt_binary(gstreamer)
-
diff --git a/indra/cmake/GStreamer10Plugin.cmake b/indra/cmake/GStreamer10Plugin.cmake
index 160844ef68..01522db3a3 100644
--- a/indra/cmake/GStreamer10Plugin.cmake
+++ b/indra/cmake/GStreamer10Plugin.cmake
@@ -7,8 +7,8 @@ include(GLIB)
add_library( ll::gstreamer10 INTERFACE IMPORTED )
-if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
- include(FindPkgConfig)
+if (LINUX)
+ find_package(PkgConfig REQUIRED)
pkg_check_modules(GSTREAMER10 REQUIRED gstreamer-1.0)
pkg_check_modules(GSTREAMER10_PLUGINS_BASE REQUIRED gstreamer-plugins-base-1.0)
diff --git a/indra/cmake/Havok.cmake b/indra/cmake/Havok.cmake
index c544440adc..64e33f6c83 100644
--- a/indra/cmake/Havok.cmake
+++ b/indra/cmake/Havok.cmake
@@ -27,26 +27,26 @@ else (LL_DEBUG_HAVOK)
endif (LL_DEBUG_HAVOK)
set(HAVOK_LIBS
- hkBase
- hkCompat
+ hkgpConvexDecomposition
hkGeometryUtilities
- hkInternal
hkSerialize
hkSceneData
hkpCollide
hkpUtilities
hkpConstraintSolver
hkpDynamics
- hkpInternal
- hkaiInternal
hkaiPathfinding
hkaiAiPhysicsBridge
- hkcdInternal
hkcdCollide
hkpVehicle
hkVisualize
hkaiVisualize
- hkgpConvexDecomposition
+ hkaiInternal
+ hkcdInternal
+ hkpInternal
+ hkInternal
+ hkCompat
+ hkBase
)
unset(HK_DEBUG_LIBRARIES)
@@ -60,16 +60,22 @@ if (DEBUG_PREBUILT)
# but making it pretty is a lot more work
message(STATUS "${ARGN}")
endfunction(DEBUG_MESSAGE)
+ function(DEBUG_EXEC_FUNC)
+ execute_process(COMMAND ${ARGN})
+ endfunction(DEBUG_EXEC_FUNC)
else (DEBUG_PREBUILT)
# without DEBUG_PREBUILT, DEBUG_MESSAGE() is a no-op
function(DEBUG_MESSAGE)
endfunction(DEBUG_MESSAGE)
+ function(DEBUG_EXEC_FUNC)
+ execute_process(COMMAND ${ARGN} OUTPUT_QUIET)
+ endfunction(DEBUG_EXEC_FUNC)
endif (DEBUG_PREBUILT)
# DEBUG_EXEC() reports each execute_process() before invoking
function(DEBUG_EXEC)
DEBUG_MESSAGE(${ARGN})
- execute_process(COMMAND ${ARGN})
+ DEBUG_EXEC_FUNC(${ARGN})
endfunction(DEBUG_EXEC)
# *TODO: Figure out why we need to extract like this...
@@ -79,9 +85,7 @@ foreach(HAVOK_LIB ${HAVOK_LIBS})
find_library(HAVOK_RELWITHDEBINFO_LIB_${HAVOK_LIB} ${HAVOK_LIB} PATHS ${HAVOK_RELWITHDEBINFO_LIBRARY_PATH})
if(LINUX)
- set(debug_dir "${HAVOK_DEBUG_LIBRARY_PATH}/${HAVOK_LIB}")
set(release_dir "${HAVOK_RELEASE_LIBRARY_PATH}/${HAVOK_LIB}")
- set(relwithdebinfo_dir "${HAVOK_RELWITHDEBINFO_LIBRARY_PATH}/${HAVOK_LIB}")
# Try to avoid extracting havok library each time we run cmake.
if("${havok_${HAVOK_LIB}_extracted}" STREQUAL "" AND EXISTS "${PREBUILD_TRACKING_DIR}/havok_${HAVOK_LIB}_extracted")
@@ -92,8 +96,8 @@ foreach(HAVOK_LIB ${HAVOK_LIBS})
if(${PREBUILD_TRACKING_DIR}/havok_source_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/havok_${HAVOK_LIB}_extracted OR NOT ${havok_${HAVOK_LIB}_extracted} EQUAL 0)
DEBUG_MESSAGE("Extracting ${HAVOK_LIB}...")
- foreach(lib ${debug_dir} ${release_dir} ${relwithdebinfo_dir})
- DEBUG_EXEC("mkdir" ${lib})
+ foreach(lib ${release_dir})
+ DEBUG_EXEC("mkdir" "-p" ${lib})
DEBUG_EXEC("ar" "-xv" "../lib${HAVOK_LIB}.a"
WORKING_DIRECTORY ${lib})
endforeach(lib)
@@ -104,17 +108,12 @@ foreach(HAVOK_LIB ${HAVOK_LIBS})
endif()
- file(GLOB extracted_debug "${debug_dir}/*.o")
file(GLOB extracted_release "${release_dir}/*.o")
- file(GLOB extracted_relwithdebinfo "${relwithdebinfo_dir}/*.o")
-
- DEBUG_MESSAGE("extracted_debug ${debug_dir}/*.o")
DEBUG_MESSAGE("extracted_release ${release_dir}/*.o")
- DEBUG_MESSAGE("extracted_relwithdebinfo ${relwithdebinfo_dir}/*.o")
- list(APPEND HK_DEBUG_LIBRARIES ${extracted_debug})
+ list(APPEND HK_DEBUG_LIBRARIES ${extracted_release})
list(APPEND HK_RELEASE_LIBRARIES ${extracted_release})
- list(APPEND HK_RELWITHDEBINFO_LIBRARIES ${extracted_relwithdebinfo})
+ list(APPEND HK_RELWITHDEBINFO_LIBRARIES ${extracted_release})
else(LINUX)
# Win32
list(APPEND HK_DEBUG_LIBRARIES ${HAVOK_DEBUG_LIB_${HAVOK_LIB}})
diff --git a/indra/cmake/JPEG.cmake b/indra/cmake/JPEG.cmake
index f864ca7f8d..49880e7f72 100644
--- a/indra/cmake/JPEG.cmake
+++ b/indra/cmake/JPEG.cmake
@@ -11,6 +11,9 @@ use_prebuilt_binary(libjpeg-turbo)
find_library(JPEG_LIBRARY
NAMES
+ jpeg
+ jpeg-static
+ jpeg-static.lib
jpeg.lib
libjpeg.a
PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake
index 15d5be235c..bd2f894c97 100644
--- a/indra/cmake/LLAddBuildTest.cmake
+++ b/indra/cmake/LLAddBuildTest.cmake
@@ -33,8 +33,6 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)
#project(UNITTEST_PROJECT_${project})
# Setup includes, paths, etc
set(alltest_SOURCE_FILES
- ${CMAKE_SOURCE_DIR}/test/test.cpp
- ${CMAKE_SOURCE_DIR}/test/lltut.cpp
)
set(alltest_DEP_TARGETS
# needed by the test harness itself
@@ -42,6 +40,7 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)
)
set(alltest_LIBRARIES
+ lltut_runner_lib
llcommon
)
if(NOT "${project}" STREQUAL "llmath")
@@ -107,6 +106,10 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)
)
endif(DARWIN)
+ if (USE_PRECOMPILED_HEADERS)
+ target_precompile_headers(PROJECT_${project}_TEST_${name} REUSE_FROM llprecompiled)
+ endif ()
+
#
# Per-codefile additional / external project dep and lib dep property extraction
#
@@ -129,7 +132,9 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)
set_target_properties(PROJECT_${project}_TEST_${name}
PROPERTIES
COMPILE_FLAGS "${${name}_test_additional_CFLAGS}"
- COMPILE_DEFINITIONS "LL_TEST=${name};LL_TEST_${name}")
+ COMPILE_DEFINITIONS "LL_TEST=${name};LL_TEST_${name}"
+ FOLDER "Tests"
+ )
if(LL_TEST_VERBOSE)
message("LL_ADD_PROJECT_UNIT_TESTS ${name}_test_additional_CFLAGS ${${name}_test_additional_CFLAGS}")
endif()
@@ -138,6 +143,7 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)
# test binaries always need to be signed for local development
set_target_properties(PROJECT_${project}_TEST_${name}
PROPERTIES
+ OSX_ARCHITECTURES ${LL_MACOS_TEST_ARCHITECTURE}
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "-")
endif ()
@@ -160,24 +166,15 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)
endif()
# Add test
- add_custom_command(
- OUTPUT ${TEST_OUTPUT}
+ add_test(
+ NAME PROJECT_${project}_TEST_${name}
COMMAND ${TEST_SCRIPT_CMD}
- DEPENDS PROJECT_${project}_TEST_${name}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
- # Why not add custom target and add POST_BUILD command?
- # Slightly less uncertain behavior
- # (OUTPUT commands run non-deterministically AFAIK) + poppy 2009-04-19
- # > I did not use a post build step as I could not make it notify of a
- # > failure after the first time you build and fail a test. - daveh 2009-04-20
+
+ add_dependencies(BUILD_TESTS PROJECT_${project}_TEST_${name})
list(APPEND ${project}_TEST_OUTPUT ${TEST_OUTPUT})
endforeach (source)
-
- # Add the test runner target per-project
- # (replaces old _test_ok targets all over the place)
- add_custom_target(${project}_tests ALL DEPENDS ${${project}_TEST_OUTPUT})
- add_dependencies(${project} ${project}_tests)
ENDMACRO(LL_ADD_PROJECT_UNIT_TESTS)
#*****************************************************************************
@@ -205,12 +202,11 @@ FUNCTION(LL_ADD_INTEGRATION_TEST
set(source_files
tests/${testname}_test.cpp
- ${CMAKE_SOURCE_DIR}/test/test.cpp
- ${CMAKE_SOURCE_DIR}/test/lltut.cpp
${additional_source_files}
)
set(libraries
+ lltut_runner_lib
${library_dependencies}
)
@@ -224,6 +220,7 @@ FUNCTION(LL_ADD_INTEGRATION_TEST
PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${EXE_STAGING_DIR}"
COMPILE_DEFINITIONS "LL_TEST=${testname};LL_TEST_${testname}"
+ FOLDER "Tests"
)
# The following was copied to llcorehttp/CMakeLists.txt's texture_load target.
@@ -239,6 +236,7 @@ FUNCTION(LL_ADD_INTEGRATION_TEST
# test binaries always need to be signed for local development
set_target_properties(INTEGRATION_TEST_${testname}
PROPERTIES
+ OSX_ARCHITECTURES ${LL_MACOS_TEST_ARCHITECTURE}
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "-"
BUILD_WITH_INSTALL_RPATH 1
INSTALL_RPATH "@executable_path/Resources"
@@ -253,6 +251,11 @@ FUNCTION(LL_ADD_INTEGRATION_TEST
target_link_libraries(INTEGRATION_TEST_${testname} ${libraries})
target_include_directories (INTEGRATION_TEST_${testname} PRIVATE ${LIBS_OPEN_DIR}/test )
+ if (USE_PRECOMPILED_HEADERS)
+ target_include_directories (INTEGRATION_TEST_${testname} PRIVATE ${LIBS_OPEN_DIR}/llmath )
+ target_precompile_headers(INTEGRATION_TEST_${testname} REUSE_FROM llprecompiled)
+ endif ()
+
# Create the test running command
set(test_command ${ARGN})
set(TEST_EXE $<TARGET_FILE:INTEGRATION_TEST_${testname}>)
@@ -281,14 +284,9 @@ FUNCTION(LL_ADD_INTEGRATION_TEST
message(STATUS "TEST_SCRIPT_CMD: ${TEST_SCRIPT_CMD}")
endif()
- add_custom_command(
- TARGET INTEGRATION_TEST_${testname}
- POST_BUILD
- COMMAND ${TEST_SCRIPT_CMD}
- )
+ add_test(NAME INTEGRATION_TEST_RUNNER_${testname} COMMAND ${TEST_SCRIPT_CMD})
- # Use CTEST? Not sure how to yet...
- # ADD_TEST(INTEGRATION_TEST_RUNNER_${testname} ${TEST_SCRIPT_CMD})
+ add_dependencies(BUILD_TESTS INTEGRATION_TEST_${testname})
ENDFUNCTION(LL_ADD_INTEGRATION_TEST)
diff --git a/indra/cmake/LLAppearanceUtility.cmake b/indra/cmake/LLAppearanceUtility.cmake
deleted file mode 100644
index 0eb3c723d5..0000000000
--- a/indra/cmake/LLAppearanceUtility.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- cmake -*-
-include(Prebuilt)
-include(Boost)
-
-# Linux proprietary build only
-if (INSTALL_PROPRIETARY)
- if(LINUX)
- use_prebuilt_binary(llappearance_utility)
- set(LLAPPEARANCEUTILITY_SRC_DIR ${LIBS_PREBUILT_DIR}/llappearanceutility/src)
- set(LLAPPEARANCEUTILITY_BIN_DIR ${CMAKE_BINARY_DIR}/llappearanceutility)
- endif (LINUX)
-endif (INSTALL_PROPRIETARY)
diff --git a/indra/cmake/LLKDU.cmake b/indra/cmake/LLKDU.cmake
index 7680ab7b54..03f3fd1619 100644
--- a/indra/cmake/LLKDU.cmake
+++ b/indra/cmake/LLKDU.cmake
@@ -14,19 +14,17 @@ if (USE_KDU)
include(Prebuilt)
use_prebuilt_binary(kdu)
- if (WINDOWS)
- find_library(KDU_LIBRARY
- NAMES
- kdu
- PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
-
- else (WINDOWS)
- find_library(KDU_LIBRARY
- NAMES
- libkdu.a
- PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
-
- endif (WINDOWS)
+ find_library(KDU_LIBRARY
+ NAMES
+ kdu
+ kdu.lib
+ libkdu.a
+ PATHS
+ "${ARCH_PREBUILT_DIRS_RELEASE}"
+ "${AUTOBUILD_INSTALL_DIR}/lib"
+ PATH_SUFFIXES release
+ REQUIRED
+ NO_DEFAULT_PATH)
target_link_libraries(ll::kdu INTERFACE ${KDU_LIBRARY})
diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake
index 007b8dfba6..1f12dec1f6 100644
--- a/indra/cmake/LLWindow.cmake
+++ b/indra/cmake/LLWindow.cmake
@@ -1,32 +1,7 @@
# -*- cmake -*-
+include_guard()
include(Variables)
-include(GLEXT)
include(Prebuilt)
-
-include_guard()
-add_library( ll::SDL INTERFACE IMPORTED )
-
-if (NOT (WINDOWS OR DARWIN))
- include(FindPkgConfig)
- pkg_check_modules(Sdl2 REQUIRED sdl2)
- target_compile_definitions( ll::SDL INTERFACE LL_SDL=1)
- target_include_directories(ll::SDL SYSTEM INTERFACE ${Sdl2_INCLUDE_DIRS})
- target_link_directories(ll::SDL INTERFACE ${Sdl2_LIBRARY_DIRS})
- if (LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
- list(APPEND Sdl2_LIBRARIES X11)
- endif ()
- target_link_libraries(ll::SDL INTERFACE ${Sdl2_LIBRARIES})
- return ()
-endif ()
-
-if (LINUX)
- #Must come first as use_system_binary can exit this file early
- target_compile_definitions( ll::SDL INTERFACE LL_SDL_VERSION=2 LL_SDL)
-
- #find_package(SDL2 REQUIRED)
- #target_link_libraries( ll::SDL INTERFACE SDL2::SDL2 SDL2::SDL2main X11)
-
- use_prebuilt_binary(SDL2)
- target_link_libraries( ll::SDL INTERFACE SDL2 X11)
-endif (LINUX)
+include(GLEXT)
+include(SDL3)
diff --git a/indra/cmake/LSLDefinitions.cmake b/indra/cmake/LSLDefinitions.cmake
new file mode 100644
index 0000000000..1a9a477118
--- /dev/null
+++ b/indra/cmake/LSLDefinitions.cmake
@@ -0,0 +1,9 @@
+# -*- cmake -*-
+include(Prebuilt)
+
+use_prebuilt_binary(lsl_definitions)
+
+configure_file("${AUTOBUILD_INSTALL_DIR}/lsl_definitions/lsl_keywords.xml"
+ "${CMAKE_SOURCE_DIR}/newview/app_settings/keywords_lsl_default.xml" COPYONLY)
+configure_file("${AUTOBUILD_INSTALL_DIR}/lsl_definitions/lua_keywords.xml"
+ "${CMAKE_SOURCE_DIR}/newview/app_settings/keywords_lua_default.xml" COPYONLY)
diff --git a/indra/cmake/LibVLCPlugin.cmake b/indra/cmake/LibVLCPlugin.cmake
index 7ff9a9e651..6fe6f89c99 100644
--- a/indra/cmake/LibVLCPlugin.cmake
+++ b/indra/cmake/LibVLCPlugin.cmake
@@ -5,30 +5,44 @@ include(Prebuilt)
include_guard()
add_library( ll::libvlc INTERFACE IMPORTED )
-if (DARWIN)
- if (CMAKE_OSX_ARCHITECTURES MATCHES x86_64)
- set(ARCHITECTURE intel64)
- else ()
- set(ARCHITECTURE ${CMAKE_OSX_ARCHITECTURES})
- endif ()
- if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/vlc_installed OR NOT ${vlc_installed} EQUAL 0)
- if (NOT EXISTS ${CMAKE_BINARY_DIR}/vlc-3.0.23-${ARCHITECTURE}.dmg)
- file(DOWNLOAD
- https://get.videolan.org/vlc/3.0.23/macosx/vlc-3.0.23-${ARCHITECTURE}.dmg
- ${CMAKE_BINARY_DIR}/vlc-3.0.23-${ARCHITECTURE}.dmg
- )
+set(LIBVLCPLUGIN ON CACHE BOOL
+ "LIBVLCPLUGIN support for the llplugin/llmedia test apps.")
+
+if (LIBVLCPLUGIN)
+ if(DARWIN)
+ if (CMAKE_OSX_ARCHITECTURES MATCHES x86_64)
+ set(ARCHITECTURE intel64)
+ else ()
+ set(ARCHITECTURE ${CMAKE_OSX_ARCHITECTURES})
endif ()
- file(WRITE ${PREBUILD_TRACKING_DIR}/vlc_installed "0")
- endif ()
- execute_process(
- COMMAND hdiutil attach -noverify vlc-3.0.23-${ARCHITECTURE}.dmg
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
- )
- target_include_directories( ll::libvlc SYSTEM INTERFACE /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/include)
- target_link_directories( ll::libvlc INTERFACE /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/lib)
- target_link_libraries( ll::libvlc INTERFACE vlc vlccore )
-elseif (WINDOWS OR (${LINUX_DISTRO} MATCHES freedesktop))
-use_prebuilt_binary(vlc-bin)
+ if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/vlc_installed OR NOT ${vlc_installed} EQUAL 0)
+ if (NOT EXISTS ${CMAKE_BINARY_DIR}/vlc-3.0.23-${ARCHITECTURE}.dmg)
+ file(DOWNLOAD
+ https://get.videolan.org/vlc/3.0.23/macosx/vlc-3.0.23-${ARCHITECTURE}.dmg
+ ${CMAKE_BINARY_DIR}/vlc-3.0.23-${ARCHITECTURE}.dmg
+ )
+ endif ()
+ file(WRITE ${PREBUILD_TRACKING_DIR}/vlc_installed "0")
+ endif ()
+ execute_process(
+ COMMAND hdiutil attach -noverify vlc-3.0.23-${ARCHITECTURE}.dmg
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+ )
+ target_include_directories( ll::libvlc SYSTEM INTERFACE /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/include)
+ target_link_directories( ll::libvlc INTERFACE /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/lib)
+ target_link_libraries( ll::libvlc INTERFACE vlc vlccore )
+ return()
+ elseif (NOT (${LINUX_DISTRO} MATCHES freedesktop OR WINDOWS))
+ find_package(PkgConfig REQUIRED)
+
+ pkg_check_modules(libvlc REQUIRED IMPORTED_TARGET libvlc vlc-plugin)
+ target_include_directories( ll::libvlc SYSTEM INTERFACE ${libvlc_INCLUDE_DIRS})
+ target_link_directories( ll::libvlc INTERFACE ${libvlc_LIBRARY_DIRS})
+ target_link_libraries( ll::libvlc INTERFACE PkgConfig::libvlc)
+ return()
+ endif()
+
+ use_prebuilt_binary(vlc-bin)
if (WINDOWS)
set(LIB_SUFFIX lib)
endif ()
@@ -36,33 +50,19 @@ use_prebuilt_binary(vlc-bin)
${LIB_SUFFIX}vlc
${LIB_SUFFIX}vlccore
)
-else ()
- include(FindPkgConfig)
- pkg_check_modules(Libvlc REQUIRED libvlc vlc-plugin)
- target_include_directories( ll::libvlc SYSTEM INTERFACE ${Libvlc_INCLUDE_DIRS} )
- target_link_directories( ll::libvlc INTERFACE ${Libvlc_LIBRARY_DIRS} )
- target_link_libraries( ll::libvlc INTERFACE ${Libvlc_LIBRARIES} )
-endif ()
+ return()
-set(LIBVLCPLUGIN ON CACHE BOOL
- "LIBVLCPLUGIN support for the llplugin/llmedia test apps.")
+ find_library(VLC_LIBRARY
+ NAMES
+ libvlc.lib
+ libvlc.dylib
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
-return()
+ find_library(VLCCORE_LIBRARY
+ NAMES
+ libvlccore.lib
+ libvlccore.dylib
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
-if (WINDOWS)
- target_link_libraries( ll::libvlc INTERFACE
- libvlc.lib
- libvlccore.lib
- )
-elseif (DARWIN)
- target_link_libraries( ll::libvlc INTERFACE
- libvlc.dylib
- libvlccore.dylib
- )
-elseif (LINUX)
- # Specify a full path to make sure we get a static link
- target_link_libraries( ll::libvlc INTERFACE
- ${LIBS_PREBUILT_DIR}/lib/libvlc.a
- ${LIBS_PREBUILT_DIR}/lib/libvlccore.a
- )
-endif (WINDOWS)
+ target_link_libraries(ll::libvlc INTERFACE ${VLC_LIBRARY} ${VLCCORE_LIBRARY})
+endif()
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
index c9a0d69afc..b08ac19880 100644
--- a/indra/cmake/Linking.cmake
+++ b/indra/cmake/Linking.cmake
@@ -77,6 +77,7 @@ elseif (DARWIN)
find_library(COREAUDIO_LIBRARY CoreAudio)
find_library(COREGRAPHICS_LIBRARY CoreGraphics)
find_library(AUDIOTOOLBOX_LIBRARY AudioToolbox)
+ find_library(UNIFORMTYPEIDENTIFIERS_LIBRARY UniformTypeIdentifiers)
target_link_libraries( ll::oslibraries INTERFACE
${COCOA_LIBRARY}
@@ -87,6 +88,7 @@ elseif (DARWIN)
${COREAUDIO_LIBRARY}
${AUDIOTOOLBOX_LIBRARY}
${COREGRAPHICS_LIBRARY}
+ ${UNIFORMTYPEIDENTIFIERS_LIBRARY}
)
endif()
diff --git a/indra/cmake/NDOF.cmake b/indra/cmake/NDOF.cmake
index 50f0ea1f51..7be23db4d4 100644
--- a/indra/cmake/NDOF.cmake
+++ b/indra/cmake/NDOF.cmake
@@ -48,27 +48,29 @@ if (NDOF)
use_prebuilt_binary(open-libndofdev)
else ()
if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/libndofdev_installed OR NOT ${libndofdev_installed} EQUAL 0)
- file(DOWNLOAD
- https://github.com/janoc/libndofdev/archive/refs/tags/v0.14.tar.gz
- ${CMAKE_BINARY_DIR}/libndofdev-0.14.tar.gz
- )
+ if (NOT EXISTS ${CMAKE_BINARY_DIR}/libndofdev-master.zip)
+ file(DOWNLOAD
+ https://github.com/janoc/libndofdev/archive/refs/heads/master.zip
+ ${CMAKE_BINARY_DIR}/libndofdev-master.zip
+ )
+ endif ()
file(ARCHIVE_EXTRACT
- INPUT ${CMAKE_BINARY_DIR}/libndofdev-0.14.tar.gz
+ INPUT ${CMAKE_BINARY_DIR}/libndofdev-master.zip
DESTINATION ${CMAKE_BINARY_DIR}
)
- set(ENV{USE_SDL2} 1)
+ set(ENV{USE_SDL3} 1)
execute_process(
COMMAND make -j${MAKE_JOBS}
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/libndofdev-0.14
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/libndofdev-master
RESULT_VARIABLE libndofdev_installed
)
- unset(ENV{USE_SDL2})
+ unset(ENV{USE_SDL3})
file(
- COPY ${CMAKE_BINARY_DIR}/libndofdev-0.14/ndofdev_external.h
+ COPY ${CMAKE_BINARY_DIR}/libndofdev-master/ndofdev_external.h
DESTINATION ${LIBS_PREBUILT_DIR}/include
)
file(
- COPY ${CMAKE_BINARY_DIR}/libndofdev-0.14/libndofdev.a
+ COPY ${CMAKE_BINARY_DIR}/libndofdev-master/libndofdev.a
DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE}
)
file(WRITE ${PREBUILD_TRACKING_DIR}/libndofdev_installed "${libndofdev_installed}")
@@ -82,7 +84,14 @@ if (NDOF)
ndofdev
PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
- target_link_libraries(ll::ndof INTERFACE ${NDOF_LIBRARY})
+ if (LINUX)
+ include(SDL3)
+ target_link_libraries(ll::ndof INTERFACE ${NDOF_LIBRARY} ll::SDL3)
+ else()
+ target_link_libraries(ll::ndof INTERFACE ${NDOF_LIBRARY})
+ endif()
target_compile_definitions(ll::ndof INTERFACE LIB_NDOF=1)
endif (NDOF)
+
+
diff --git a/indra/cmake/OPENAL.cmake b/indra/cmake/OPENAL.cmake
index 94c3b0fcf6..4c4be1a71e 100644
--- a/indra/cmake/OPENAL.cmake
+++ b/indra/cmake/OPENAL.cmake
@@ -42,6 +42,7 @@ if (USE_OPENAL)
NAMES
OpenAL32
openal
+ OpenAL32.lib
libopenal.dylib
libopenal.so
PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
@@ -53,6 +54,7 @@ if (USE_OPENAL)
find_library(ALUT_LIBRARY
NAMES
alut
+ alut.lib
libalut.dylib
libalut.so
PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
diff --git a/indra/cmake/OpenGL.cmake b/indra/cmake/OpenGL.cmake
index feaedf16e5..bf7cd8366a 100644
--- a/indra/cmake/OpenGL.cmake
+++ b/indra/cmake/OpenGL.cmake
@@ -4,8 +4,3 @@ include(Variables)
include(Prebuilt)
include(FindOpenGL)
-if (${LINUX_DISTRO} MATCHES freedesktop)
- add_library(ll::glu INTERFACE IMPORTED)
- use_prebuilt_binary(glu)
- target_link_libraries(ll::glu INTERFACE GLU)
-endif ()
diff --git a/indra/cmake/OpenXR.cmake b/indra/cmake/OpenXR.cmake
index e315a99025..96400c0f90 100644
--- a/indra/cmake/OpenXR.cmake
+++ b/indra/cmake/OpenXR.cmake
@@ -5,22 +5,23 @@ include(Prebuilt)
include_guard()
add_library( ll::openxr INTERFACE IMPORTED )
-if(USE_CONAN )
- target_link_libraries( ll::openxr INTERFACE CONAN_PKG::openxr )
- return()
-elseif (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
- return()
-endif()
+option(USE_OPENXR "Enable building with OpenXR support" OFF)
+if(USE_OPENXR)
+ if(USE_CONAN )
+ target_link_libraries( ll::openxr INTERFACE CONAN_PKG::openxr )
+ return()
+ endif()
-use_prebuilt_binary(openxr)
-if (WINDOWS)
- target_link_libraries( ll::openxr INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/openxr_loader.lib )
-else()
- target_link_libraries( ll::openxr INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libopenxr_loader.a )
-endif (WINDOWS)
+ use_prebuilt_binary(openxr)
+ if (WINDOWS)
+ target_link_libraries( ll::openxr INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/openxr_loader.lib )
+ else()
+ target_link_libraries( ll::openxr INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libopenxr_loader.a )
+ endif (WINDOWS)
-if( NOT LINUX )
- target_include_directories( ll::openxr SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
+ if( NOT LINUX )
+ target_include_directories( ll::openxr SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
+ endif()
endif()
if (DARWIN)
diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake
index 0c01e5ee78..6a66f40385 100644
--- a/indra/cmake/PNG.cmake
+++ b/indra/cmake/PNG.cmake
@@ -1,5 +1,7 @@
# -*- cmake -*-
include(Prebuilt)
+include(Linking)
+include(ZLIBNG)
include_guard()
add_library( ll::libpng INTERFACE IMPORTED )
@@ -13,5 +15,5 @@ find_library(LIBPNG_LIBRARY
libpng16.a
PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
-target_link_libraries(ll::libpng INTERFACE ${LIBPNG_LIBRARY})
+target_link_libraries(ll::libpng INTERFACE ${LIBPNG_LIBRARY} ll::zlib-ng)
target_include_directories(ll::libpng SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/libpng16)
diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake
index 2d5eb5d805..37fd78fb0c 100644
--- a/indra/cmake/Prebuilt.cmake
+++ b/indra/cmake/Prebuilt.cmake
@@ -2,9 +2,6 @@
include_guard()
include(FindAutobuild)
-if(INSTALL_PROPRIETARY)
- include(FindSCP)
-endif(INSTALL_PROPRIETARY)
set(PREBUILD_TRACKING_DIR ${AUTOBUILD_INSTALL_DIR}/cmake_tracking)
# For the library installation process;
@@ -40,6 +37,7 @@ macro (use_prebuilt_binary _binary)
--install-dir=${AUTOBUILD_INSTALL_DIR}
${_binary} ")
endif(DEBUG_PREBUILT)
+ message(STATUS "Installing ${_binary}...")
execute_process(COMMAND xmllint
--xpath
"//map/map/map/map/map/map/string[contains(text(),'${_binary}')][contains(text(),'common')]/text()" autobuild.xml
@@ -71,14 +69,37 @@ macro (use_prebuilt_binary _binary)
)
set(${_binary}_installed 0)
if(FALSE)
- execute_process(COMMAND "${AUTOBUILD_EXECUTABLE}"
- install
- --install-dir=${AUTOBUILD_INSTALL_DIR}
- ${_binary}
- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
- RESULT_VARIABLE ${_binary}_installed
- )
+
+ # Retry transient download failures (e.g. remote disconnects) instead
+ # of failing the whole configure on the first attempt.
+ set(_max_retries 4)
+ set(_retry_delay 8)
+ set(${_binary}_installed 1)
+
+ foreach(_attempt RANGE 1 ${_max_retries})
+ if(DEBUG_PREBUILT)
+ message(STATUS "autobuild install ${_binary}: attempt ${_attempt}/${_max_retries}")
+ endif(DEBUG_PREBUILT)
+ execute_process(COMMAND "${AUTOBUILD_EXECUTABLE}"
+ install
+ --skip-source-environment
+ --install-dir=${AUTOBUILD_INSTALL_DIR}
+ ${_binary}
+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+ RESULT_VARIABLE ${_binary}_installed
+ )
+
+ if(${${_binary}_installed} EQUAL 0)
+ break()
+ endif()
+
+ if(_attempt LESS _max_retries)
+ message(WARNING "autobuild install ${_binary} failed (rc=${${_binary}_installed}); retrying in ${_retry_delay}s")
+ execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep ${_retry_delay})
+ endif()
+ endforeach()
endif()
+
file(WRITE ${PREBUILD_TRACKING_DIR}/${_binary}_installed "${${_binary}_installed}")
endif(${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/${_binary}_installed OR NOT ${${_binary}_installed} EQUAL 0)
diff --git a/indra/cmake/SDL3.cmake b/indra/cmake/SDL3.cmake
new file mode 100644
index 0000000000..e5c8c912e8
--- /dev/null
+++ b/indra/cmake/SDL3.cmake
@@ -0,0 +1,33 @@
+# -*- cmake -*-
+include_guard()
+include(Linking)
+include(Prebuilt)
+
+add_library(ll::SDL3 INTERFACE IMPORTED)
+
+if (NOT (WINDOWS OR DARWIN))
+ set(USE_SDL_WINDOW ON CACHE BOOL "Build with SDL window backend")
+else()
+ set(USE_SDL_WINDOW OFF CACHE BOOL "Build with SDL window backend")
+endif ()
+
+if(USE_SDL_WINDOW)
+ include(FindPkgConfig)
+ pkg_search_module(SDL3 REQUIRED sdl3)
+ target_link_directories(ll::SDL3 INTERFACE ${SDL3_LIBRARY_DIRS})
+ target_link_libraries(ll::SDL3 INTERFACE ${SDL3_LIBRARIES})
+ target_include_directories(ll::SDL3 SYSTEM INTERFACE ${SDL3_INCLUDE_DIRS})
+ return ()
+
+ use_system_binary(SDL3)
+ use_prebuilt_binary(SDL3)
+
+ find_library( SDL3_LIBRARY
+ NAMES SDL3 SDL3.lib libSDL3.so libSDL3.dylib
+ PATHS "${LIBS_PREBUILT_DIR}/lib/release" REQUIRED)
+
+ target_link_libraries(ll::SDL3 INTERFACE ${SDL3_LIBRARY})
+ target_include_directories(ll::SDL3 SYSTEM INTERFACE "${LIBS_PREBUILT_DIR}/include/")
+
+endif(USE_SDL_WINDOW)
+
diff --git a/indra/cmake/SSE2NEON.cmake b/indra/cmake/SSE2NEON.cmake
index 797f2af80e..6af123855c 100644
--- a/indra/cmake/SSE2NEON.cmake
+++ b/indra/cmake/SSE2NEON.cmake
@@ -4,7 +4,7 @@ include(Prebuilt)
add_library(ll::sse2neon INTERFACE IMPORTED)
-if (DARWIN)
+if (FALSE)
use_system_binary(sse2neon)
use_prebuilt_binary(sse2neon)
diff --git a/indra/cmake/UI.cmake b/indra/cmake/UI.cmake
index c4b2dfbd37..7dfb1aa84e 100644
--- a/indra/cmake/UI.cmake
+++ b/indra/cmake/UI.cmake
@@ -3,35 +3,36 @@ include(Prebuilt)
include(FreeType)
include(GLIB)
+include_guard()
add_library( ll::uilibraries INTERFACE IMPORTED )
if (LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
- if (${LINUX_DISTRO} MATCHES freedesktop)
- use_prebuilt_binary(fltk)
- endif ()
- target_compile_definitions(ll::uilibraries INTERFACE LL_FLTK=1 LL_X11=1 )
-
if( USE_CONAN )
return()
endif()
- if (${LINUX_DISTRO} MATCHES arch OR (${LINUX_DISTRO} MATCHES debian) OR (${LINUX_DISTRO} MATCHES freedesktop) OR (${LINUX_DISTRO} MATCHES ubuntu))
- include(FindPkgConfig)
- pkg_check_modules(CAIRO REQUIRED cairo)
- target_include_directories(ll::uilibraries SYSTEM INTERFACE ${CAIRO_INCLUDE_DIRS})
- endif ()
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(WAYLAND_CLIENT wayland-client)
+
+ if(WAYLAND_CLIENT_FOUND)
+ target_include_directories(ll::uilibraries INTERFACE ${WAYLAND_CLIENT_INCLUDE_DIRS})
+ target_compile_definitions(ll::uilibraries INTERFACE LL_WAYLAND=1)
+ else()
+ message("pkgconfig could not find wayland client, compiling without full wayland support")
+ endif()
+
+ find_package(X11)
+ if(X11_FOUND)
+ target_compile_definitions(ll::uilibraries INTERFACE LL_X11=1)
+ else()
+ message("Could not find X11, compiling without full X11 support")
+ endif()
+
target_link_libraries( ll::uilibraries INTERFACE
- fltk
- Xrender
- Xcursor
- Xfixes
- Xext
- Xft
- Xinerama
ll::fontconfig
ll::freetype
- ll::SDL
+ ll::SDL3
ll::glib
ll::gio
)
@@ -54,29 +55,9 @@ if( WINDOWS )
)
endif()
-if (${LINUX_DISTRO} MATCHES freedesktop)
+if (FALSE)
target_include_directories( ll::uilibraries SYSTEM INTERFACE
${LIBS_PREBUILT_DIR}/include
)
- pkg_check_modules(CAIRO-XLIB REQUIRED cairo-xlib)
- pkg_check_modules(DBUS-1 REQUIRED dbus-1)
- pkg_check_modules(LIBDECOR-0 REQUIRED libdecor-0)
- pkg_check_modules(PANGO REQUIRED pango)
- pkg_check_modules(PANGOCAIRO REQUIRED pangocairo)
- pkg_check_modules(WAYLAND-CLIENT REQUIRED wayland-client)
- pkg_check_modules(WAYLAND-CURSOR REQUIRED wayland-cursor)
- pkg_check_modules(XKBCOMMON REQUIRED xkbcommon)
- pkg_check_modules(XKBCOMMON-X11 REQUIRED xkbcommon-x11)
- target_link_libraries(ll::uilibraries INTERFACE
- ${CAIRO_LIBRARIES}
- ${CAIRO-XLIB_LIBRARIES}
- ${DBUS-1_LIBRARIES}
- ${LIBDECOR-0_LIBRARIES}
- ${PANGO_LIBRARIES}
- ${PANGOCAIRO_LIBRARIES}
- ${WAYLAND-CLIENT_LIBRARIES}
- ${WAYLAND-CURSOR_LIBRARIES}
- ${XKBCOMMON_LIBRARIES}
- ${XKBCOMMON-X11_LIBRARIES}
- )
+
endif ()
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index da9be417d3..3137dfbd7f 100644
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -9,21 +9,53 @@
# LINUX - Linux
# WINDOWS - Windows
+include_guard()
+
# Switches set here and in 00-Common.cmake must agree with
# https://bitbucket.org/lindenlab/viewer-build-variables/src/tip/variables
# Reading $LL_BUILD is an attempt to directly use those switches.
-if ("$ENV{LL_BUILD}" STREQUAL "" AND "${LL_BUILD_ENV}" STREQUAL "" )
- message(FATAL_ERROR "Environment variable LL_BUILD must be set")
-elseif("$ENV{LL_BUILD}" STREQUAL "")
- set( ENV{LL_BUILD} "${LL_BUILD_ENV}" )
- message( "Setting ENV{LL_BUILD} to cached variable ${LL_BUILD_ENV}" )
+if (FALSE)
+if ("$ENV{AUTOBUILD_ADDRSIZE}" STREQUAL "" AND "${AUTOBUILD_ADDRSIZE_ENV}" STREQUAL "" )
+ message(FATAL_ERROR "Environment variable AUTOBUILD_ADDRSIZE must be set")
+elseif("$ENV{AUTOBUILD_ADDRSIZE}" STREQUAL "")
+ set( ENV{AUTOBUILD_ADDRSIZE} "${AUTOBUILD_ADDRSIZE_ENV}" )
+ message( "Setting ENV{AUTOBUILD_ADDRSIZE} to cached variable ${AUTOBUILD_ADDRSIZE_ENV}" )
else()
- set( LL_BUILD_ENV "$ENV{LL_BUILD}" CACHE STRING "Save environment" FORCE )
+ set( AUTOBUILD_ADDRSIZE_ENV "$ENV{AUTOBUILD_ADDRSIZE}" CACHE STRING "Save environment AUTOBUILD_ADDRSIZE" FORCE )
endif ()
-include_guard()
-# Relative and absolute paths to subtrees.
+if ("$ENV{AUTOBUILD_PLATFORM}" STREQUAL "" AND "${AUTOBUILD_PLATFORM_ENV}" STREQUAL "" )
+ message(FATAL_ERROR "Environment variable AUTOBUILD_PLATFORM must be set")
+elseif("$ENV{AUTOBUILD_PLATFORM}" STREQUAL "")
+ set( ENV{AUTOBUILD_PLATFORM} "${AUTOBUILD_PLATFORM_ENV}" )
+ message( "Setting ENV{AUTOBUILD_PLATFORM} to cached variable ${AUTOBUILD_PLATFORM_ENV}" )
+else()
+ set( AUTOBUILD_PLATFORM_ENV "$ENV{AUTOBUILD_PLATFORM}" CACHE STRING "Save environment AUTOBUILD_PLATFORM" FORCE )
+endif ()
+endif ()
+
+# Switches set here and in 00-Common.cmake must agree with
+# https://bitbucket.org/lindenlab/viewer-build-variables/src/tip/variables
+# Reading $LL_BUILD is an attempt to directly use those switches.
+if ("$ENV{LL_BUILD_RELEASE}" STREQUAL "" AND "${LL_BUILD_RELEASE_ENV}" STREQUAL "" )
+ message(FATAL_ERROR "Environment variable LL_BUILD_RELEASE must be set")
+elseif("$ENV{LL_BUILD_RELEASE}" STREQUAL "")
+ set( ENV{LL_BUILD_RELEASE} "${LL_BUILD_RELEASE_ENV}" )
+ message( "Setting ENV{LL_BUILD_RELEASE} to cached variable ${LL_BUILD_RELEASE_ENV}" )
+else()
+ set( LL_BUILD_RELEASE_ENV "$ENV{LL_BUILD_RELEASE}" CACHE STRING "Save environment RELEASE" FORCE )
+endif ()
+
+if ("$ENV{LL_BUILD_RELWITHDEBINFO}" STREQUAL "" AND "${LL_BUILD_RELWITHDEBINFO_ENV}" STREQUAL "" )
+ message(FATAL_ERROR "Environment variable LL_BUILD_RELWITHDEBINFO must be set")
+elseif("$ENV{LL_BUILD_RELWITHDEBINFO}" STREQUAL "")
+ set( ENV{LL_BUILD_RELWITHDEBINFO} "${LL_BUILD_RELWITHDEBINFO_ENV}" )
+ message( "Setting ENV{LL_BUILD_RELWITHDEBINFO} to cached variable ${LL_BUILD_RELWITHDEBINFO_ENV}" )
+else()
+ set( LL_BUILD_RELWITHDEBINFO_ENV "$ENV{LL_BUILD_RELWITHDEBINFO}" CACHE STRING "Save environment RELWITHDEBINFO" FORCE )
+endif ()
+# Relative and absolute paths to subtrees.
if(NOT DEFINED COMMON_CMAKE_DIR)
set(COMMON_CMAKE_DIR "${CMAKE_SOURCE_DIR}/cmake")
endif(NOT DEFINED COMMON_CMAKE_DIR)
@@ -67,7 +99,7 @@ set(TEMPLATE_VERIFIER_MASTER_URL "https://github.com/secondlife/master-message-t
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
- "Build type. One of: Debug Release RelWithDebInfo" FORCE)
+ "Build type. One of: Release RelWithDebInfo" FORCE)
endif (NOT CMAKE_BUILD_TYPE)
# If someone has specified an address size, use that to determine the
@@ -121,7 +153,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
set(ARCH ${CMAKE_SYSTEM_PROCESSOR})
endif (ADDRESS_SIZE EQUAL 32)
- execute_process(COMMAND dpkg-architecture -a${DEB_ARCHITECTURE} -qDEB_HOST_MULTIARCH
+ execute_process(COMMAND dpkg-architecture -a${DEB_ARCHITECTURE} -qDEB_HOST_MULTIARCH
RESULT_VARIABLE DPKG_RESULT
OUTPUT_VARIABLE DPKG_ARCH
OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
@@ -131,14 +163,12 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
set(CMAKE_SYSTEM_LIBRARY_PATH /usr/lib/${DPKG_ARCH} /usr/local/lib/${DPKG_ARCH} ${CMAKE_SYSTEM_LIBRARY_PATH})
endif (DPKG_RESULT EQUAL 0)
- if (INSTALL_PROPRIETARY)
- # Only turn on headless if we can find osmesa libraries.
- include(FindPkgConfig)
- #pkg_check_modules(OSMESA osmesa)
- #if (OSMESA_FOUND)
- # set(BUILD_HEADLESS ON CACHE BOOL "Build headless libraries.")
- #endif (OSMESA_FOUND)
- endif (INSTALL_PROPRIETARY)
+ # Only turn on headless if we can find osmesa libraries.
+ find_package(PkgConfig)
+ pkg_check_modules(OSMESA IMPORTED_TARGET GLOBAL osmesa)
+ if (OSMESA_FOUND)
+ set(BUILD_HEADLESS ON CACHE BOOL "Build headless libraries.")
+ endif (OSMESA_FOUND)
endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
@@ -146,7 +176,38 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(DARWIN 1)
string(REGEX MATCH "-mmacosx-version-min=([^ ]+)" scratch "$ENV{LL_BUILD}")
- set(CMAKE_OSX_DEPLOYMENT_TARGET "${CMAKE_MATCH_1}" CACHE STRING "macOS Deploy Target" FORCE)
+ set(LL_REQUESTED_DEPLOYMENT_TARGET "${CMAKE_MATCH_1}")
+
+ # Determine the lowest deployment target the active macOS SDK still supports.
+ # We aim for 11.0 in our public builds, but newer Xcode/SDK releases
+ # periodically raise this floor (e.g. Xcode 26 -> 13.3, Xcode 27 -> 14), and
+ # linking against a deployment target below the SDK's minimum fails. Read the
+ # supported minimum from the SDK and clamp our requested target up to it when
+ # necessary, so the build tracks whatever the SDK allows automatically.
+ set(LL_SDK_MINIMUM_DEPLOYMENT_TARGET "")
+ execute_process(
+ COMMAND xcrun --sdk macosx --show-sdk-path
+ OUTPUT_VARIABLE LL_MACOS_SDK_PATH
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET)
+ if (LL_MACOS_SDK_PATH AND EXISTS "${LL_MACOS_SDK_PATH}/SDKSettings.plist")
+ execute_process(
+ COMMAND /usr/libexec/PlistBuddy -c
+ "Print :SupportedTargets:macosx:MinimumDeploymentTarget"
+ "${LL_MACOS_SDK_PATH}/SDKSettings.plist"
+ OUTPUT_VARIABLE LL_SDK_MINIMUM_DEPLOYMENT_TARGET
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET)
+ endif ()
+
+ set(LL_EFFECTIVE_DEPLOYMENT_TARGET "${LL_REQUESTED_DEPLOYMENT_TARGET}")
+ if (LL_SDK_MINIMUM_DEPLOYMENT_TARGET AND
+ LL_REQUESTED_DEPLOYMENT_TARGET VERSION_LESS LL_SDK_MINIMUM_DEPLOYMENT_TARGET)
+ message(STATUS "Requested macOS deploy target ${LL_REQUESTED_DEPLOYMENT_TARGET} is below the SDK minimum ${LL_SDK_MINIMUM_DEPLOYMENT_TARGET}; clamping to ${LL_SDK_MINIMUM_DEPLOYMENT_TARGET}")
+ set(LL_EFFECTIVE_DEPLOYMENT_TARGET "${LL_SDK_MINIMUM_DEPLOYMENT_TARGET}")
+ endif ()
+
+ set(CMAKE_OSX_DEPLOYMENT_TARGET "${LL_EFFECTIVE_DEPLOYMENT_TARGET}" CACHE STRING "macOS Deploy Target" FORCE)
message(STATUS "CMAKE_OSX_DEPLOYMENT_TARGET = '${CMAKE_OSX_DEPLOYMENT_TARGET}'")
# Use dwarf symbols for most libraries for compilation speed
@@ -173,9 +234,12 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "")
set(CMAKE_XCODE_ATTRIBUTE_DISABLE_MANUAL_TARGET_ORDER_BUILD_WARNING YES)
set(CMAKE_XCODE_ATTRIBUTE_GCC_WARN_64_TO_32_BIT_CONVERSION NO)
- #set(CMAKE_OSX_ARCHITECTURES "${ARCH}")
- string(REPLACE "i686" "i386" CMAKE_OSX_ARCHITECTURES "${CMAKE_OSX_ARCHITECTURES}")
- string(REPLACE "AMD64" "x86_64" CMAKE_OSX_ARCHITECTURES "${CMAKE_OSX_ARCHITECTURES}")
+ #set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "macOS Build Arch" FORCE)
+ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ set(LL_MACOS_TEST_ARCHITECTURE "arm64")
+ else()
+ set(LL_MACOS_TEST_ARCHITECTURE "x86_64")
+ endif()
endif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# Default deploy grid
diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake
index 5efca62032..aab97d34e2 100644
--- a/indra/cmake/ViewerMiscLibs.cmake
+++ b/indra/cmake/ViewerMiscLibs.cmake
@@ -2,14 +2,22 @@
include(Prebuilt)
if (NOT (DARWIN OR WINDOWS))
+ #use_prebuilt_binary(libuuid)
add_library( ll::fontconfig INTERFACE IMPORTED )
+
find_package(Fontconfig REQUIRED)
target_link_libraries( ll::fontconfig INTERFACE Fontconfig::Fontconfig )
endif ()
+if( FALSE )
+ use_prebuilt_binary(libhunspell)
+endif()
+
if (DARWIN OR (${LINUX_DISTRO} MATCHES freedesktop))
use_prebuilt_binary(nanosvg)
endif ()
use_prebuilt_binary(viewer-fonts)
use_prebuilt_binary(google-fonts)
use_prebuilt_binary(emoji_shortcodes)
+
+include(LSLDefinitions)
diff --git a/indra/cmake/ZLIBNG.cmake b/indra/cmake/ZLIBNG.cmake
index 44d12227df..87b75752d2 100644
--- a/indra/cmake/ZLIBNG.cmake
+++ b/indra/cmake/ZLIBNG.cmake
@@ -1,10 +1,12 @@
# -*- cmake -*-
include(Prebuilt)
+include(Linking)
include_guard()
add_library( ll::zlib-ng INTERFACE IMPORTED )
+include(FindPkgConfig)
pkg_check_modules(Zlib REQUIRED zlib)
target_include_directories( ll::zlib-ng SYSTEM INTERFACE ${Zlib_INCLUDE_DIRS})
target_link_directories( ll::zlib-ng INTERFACE ${Zlib_LIBRARY_DIRS} )
diff --git a/indra/cmake/bugsplat.cmake b/indra/cmake/bugsplat.cmake
index d2a8fcca46..0ba12e68eb 100644
--- a/indra/cmake/bugsplat.cmake
+++ b/indra/cmake/bugsplat.cmake
@@ -1,18 +1,19 @@
-if (INSTALL_PROPRIETARY)
+if (INSTALL_PROPRIETARY AND NOT LINUX)
# Note that viewer_manifest.py makes decision based on BUGSPLAT_DB and not USE_BUGSPLAT
if (BUGSPLAT_DB)
set(USE_BUGSPLAT ON CACHE BOOL "Use the BugSplat crash reporting system")
else (BUGSPLAT_DB)
set(USE_BUGSPLAT OFF CACHE BOOL "Use the BugSplat crash reporting system")
endif (BUGSPLAT_DB)
-else (INSTALL_PROPRIETARY)
+else ()
set(USE_BUGSPLAT OFF CACHE BOOL "Use the BugSplat crash reporting system")
-endif (INSTALL_PROPRIETARY)
+ set(BUGSPLAT_DB "" CACHE STRING "BugSplat crash database name")
+endif ()
include_guard()
add_library( ll::bugsplat INTERFACE IMPORTED )
-if (USE_BUGSPLAT)
+if (USE_BUGSPLAT AND NOT LINUX)
include(Prebuilt)
use_prebuilt_binary(bugsplat)
if (WINDOWS)
@@ -42,6 +43,7 @@ if (USE_BUGSPLAT)
set_property( TARGET ll::bugsplat APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS LL_BUGSPLAT)
else()
- set(BUGSPLAT_DB "" CACHE STRING "BugSplat crash database name")
-endif (USE_BUGSPLAT)
+ set(USE_BUGSPLAT OFF CACHE BOOL "Use the BugSplat crash reporting system" FORCE)
+ set(BUGSPLAT_DB "" CACHE STRING "BugSplat crash database name" FORCE)
+endif ()
diff --git a/indra/cmake/run_build_test.py b/indra/cmake/run_build_test.py
index 940a130a50..85689b361a 100755
--- a/indra/cmake/run_build_test.py
+++ b/indra/cmake/run_build_test.py
@@ -133,7 +133,7 @@ def main(command, arguments=[], libpath=[], vars={}):
raise
# In practice, the pathnames into CMake's build tree are so long as to
# obscure the name of the test program. Just log its basename.
- log.warn("No such program %s; check for preceding build errors" % \
+ log.warning("No such program %s; check for preceding build errors" % \
os.path.basename(command[0]))
# What rc should we simulate for missing executable? Windows produces
# 9009.
diff --git a/indra/cmake/websocketpp.cmake b/indra/cmake/websocketpp.cmake
new file mode 100644
index 0000000000..eb119a3484
--- /dev/null
+++ b/indra/cmake/websocketpp.cmake
@@ -0,0 +1,7 @@
+# -*- cmake -*-
+include(Prebuilt)
+
+add_library( ll::websocketpp INTERFACE IMPORTED )
+
+#use_system_binary( websocketpp )
+use_prebuilt_binary(websocketpp)