From 2f452d06e6964b0edf26b0b3f6eaa156e3fa2d48 Mon Sep 17 00:00:00 2001
From: Henri Beauchamp <sldev@free.fr>
Date: Wed, 13 Mar 2024 13:57:39 +0100
Subject: Proposal #2 to restore how UI/dialogs used to render by prioritizing
 fallback fonts.

With the emojis support, a new font was added, which not only provides emojis
but also fancy colorful replacements for UTF-8 characters that used to be
supported by our fallback (monochrome) fonts: this causes discrepancies and
unwanted/undesired changes in scripted objects menus (e.g. an empty circle or
square may render as a black, full one, a heart may render red instead of white),
not to mention the larger font size used by the emoji characters...

This patch restores the aspect of such menus/dialogs/UI elements with UTF-8
characters that *are* supported by the usual fallback fonts (fonts which may
also vary from one viewer to another, and from one OS to another), so that
everything keeps working/rendering as it always did so far, while not impairing
the use of new colorful emojis.

This second proposal ensures that:
- "genuine" emojis (in the 0x1f000-0x1ffff range), will *always* be rendered
  using the new emojis font (this solves, for example, the monochrome "yellow
  faces" issue seen with some characters in my first proposal).
- Special UTF-8 characters (in the 0x2000-0x32FF range) which have been used by
  scripters so far, will render as they used to, using the monochrome fallback
  fonts (this repairs scripted dialogs menus).
- Remaining special characters, that do not have a corresponding glyph in the
  monochrome font, but do have one in the emojis font, will use the latter font
  to render.

It also got the nice side-effect of removing the dependency on the ICU4C library.

Note however that the recent commit:
https://github.com/secondlife/viewer/commit/326055ba82c22fedde186c6a56bafd4fe87e613a
will need to be reverted to allow this patch to actually fix scripted dialogs.

Also, some cleanup might be needed in skins/default/xui/*/emoji_characters.xml to
remove from it the special UTF-8 characters that will no longer be rendered with
fanciful colors, but instead with the monochrome font glyphs.
---
 indra/cmake/CMakeLists.txt         |  1 -
 indra/cmake/Copy3rdPartyLibs.cmake |  9 ---------
 indra/cmake/ICU4C.cmake            | 23 -----------------------
 3 files changed, 33 deletions(-)
 delete mode 100644 indra/cmake/ICU4C.cmake

(limited to 'indra/cmake')

diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt
index 05c51c018d..cb3b77300a 100644
--- a/indra/cmake/CMakeLists.txt
+++ b/indra/cmake/CMakeLists.txt
@@ -30,7 +30,6 @@ set(cmake_SOURCE_FILES
         GoogleMock.cmake
         Havok.cmake
         Hunspell.cmake
-        ICU4C.cmake
         JsonCpp.cmake
         LLAddBuildTest.cmake
         LLAppearance.cmake
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index 9f79c13a97..7938d4f54b 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -62,15 +62,6 @@ if(WINDOWS)
         uriparser.dll
         )
 
-    # ICU4C (same filenames for 32 and 64 bit builds)
-    set(release_files ${release_files} icudt48.dll)
-    set(release_files ${release_files} icuin48.dll)
-    set(release_files ${release_files} icuio48.dll)
-    set(release_files ${release_files} icule48.dll)
-    set(release_files ${release_files} iculx48.dll)
-    set(release_files ${release_files} icutu48.dll)
-    set(release_files ${release_files} icuuc48.dll)
-
     # OpenSSL
     if(ADDRESS_SIZE EQUAL 64)
         set(release_files ${release_files} libcrypto-1_1-x64.dll)
diff --git a/indra/cmake/ICU4C.cmake b/indra/cmake/ICU4C.cmake
deleted file mode 100644
index 7b27665483..0000000000
--- a/indra/cmake/ICU4C.cmake
+++ /dev/null
@@ -1,23 +0,0 @@
-# -*- cmake -*-
-include(Prebuilt)
-
-include_guard()
-
-add_library( ll::icu4c INTERFACE IMPORTED )
-
-
-use_system_binary(icu4c)
-use_prebuilt_binary(icu4c)
-if (WINDOWS)
-  target_link_libraries( ll::icu4c INTERFACE  icuuc)
-elseif(DARWIN)
-  target_link_libraries( ll::icu4c INTERFACE  icuuc)
-#elseif(LINUX)
-##  target_link_libraries( ll::icu4c INTERFACE  )
-else()
-  message(FATAL_ERROR "Invalid platform")
-endif()
-
-target_include_directories( ll::icu4c SYSTEM INTERFACE  ${LIBS_PREBUILT_DIR}/include/unicode )
-
-use_prebuilt_binary(dictionaries)
-- 
cgit v1.2.3


From 1b68f71348ecf3983b76b40d7940da8377f049b7 Mon Sep 17 00:00:00 2001
From: Andrey Lihatskiy <alihatskiy@productengine.com>
Date: Mon, 29 Apr 2024 07:43:28 +0300
Subject: #824 Process source files in bulk: replace tabs with spaces, convert
 CRLF to LF, and trim trailing whitespaces as needed

---
 indra/cmake/00-Common.cmake            |  2 +-
 indra/cmake/BuildVersion.cmake         |  2 +-
 indra/cmake/CMakeCopyIfDifferent.cmake | 10 +++++-----
 indra/cmake/ConfigurePkgConfig.cmake   | 24 ++++++++++++------------
 indra/cmake/Copy3rdPartyLibs.cmake     |  2 +-
 indra/cmake/DeploySharedLibs.cmake     |  2 +-
 indra/cmake/FindAutobuild.cmake        |  6 +++---
 indra/cmake/GoogleMock.cmake           |  2 +-
 indra/cmake/Havok.cmake                |  2 +-
 indra/cmake/LLKDU.cmake                |  2 +-
 indra/cmake/LLPhysicsExtensions.cmake  |  2 +-
 indra/cmake/LLPrimitive.cmake          |  2 +-
 indra/cmake/LLSharedLibs.cmake         |  4 ++--
 indra/cmake/LLWindow.cmake             |  2 +-
 indra/cmake/Linking.cmake              |  2 +-
 indra/cmake/TinyGLTF.cmake             |  2 +-
 indra/cmake/UI.cmake                   |  2 +-
 indra/cmake/Variables.cmake            |  2 +-
 indra/cmake/cmake_dummy.cpp            | 10 +++++-----
 indra/cmake/run_build_test.py          |  2 +-
 20 files changed, 42 insertions(+), 42 deletions(-)

(limited to 'indra/cmake')

diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 24534c98d9..690159583a 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -87,7 +87,7 @@ if (WINDOWS)
   if( ADDRESS_SIZE EQUAL 32 )
     add_compile_options( /arch:SSE2 )
   endif()
-     
+
   # Are we using the crummy Visual Studio KDU build workaround?
   if (NOT VS_DISABLE_FATAL_WARNINGS)
     add_compile_options(/WX)
diff --git a/indra/cmake/BuildVersion.cmake b/indra/cmake/BuildVersion.cmake
index b531f29ee2..aa151bafc8 100644
--- a/indra/cmake/BuildVersion.cmake
+++ b/indra/cmake/BuildVersion.cmake
@@ -39,7 +39,7 @@ if (NOT DEFINED VIEWER_SHORT_VERSION) # will be true in indra/, false in indra/n
         endif (DEFINED ENV{revision})
         message(STATUS "Building '${VIEWER_CHANNEL}' Version ${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}")
     else ( EXISTS ${VIEWER_VERSION_BASE_FILE} )
-        message(SEND_ERROR "Cannot get viewer version from '${VIEWER_VERSION_BASE_FILE}'") 
+        message(SEND_ERROR "Cannot get viewer version from '${VIEWER_VERSION_BASE_FILE}'")
     endif ( EXISTS ${VIEWER_VERSION_BASE_FILE} )
 
     if ("${VIEWER_VERSION_REVISION}" STREQUAL "")
diff --git a/indra/cmake/CMakeCopyIfDifferent.cmake b/indra/cmake/CMakeCopyIfDifferent.cmake
index 55e71ff153..fe6806e38b 100644
--- a/indra/cmake/CMakeCopyIfDifferent.cmake
+++ b/indra/cmake/CMakeCopyIfDifferent.cmake
@@ -10,20 +10,20 @@
 
 MACRO(COPY_IF_DIFFERENT FROM_DIR TO_DIR TARGETS)
 # Macro to implement copy_if_different for a list of files
-# Arguments - 
+# Arguments -
 #   FROM_DIR - this is the source directory
 #   TO_DIR   - this is the destination directory
 #   TARGETS  - A variable to receive a list of targets
-#   FILES    - names of the files to copy 
-#              TODO: add globing. 
+#   FILES    - names of the files to copy
+#              TODO: add globing.
 SET(AddTargets "")
 FOREACH(SRC ${ARGN})
-    GET_FILENAME_COMPONENT(SRCFILE ${SRC} NAME) 
+    GET_FILENAME_COMPONENT(SRCFILE ${SRC} NAME)
     IF("${FROM_DIR}" STREQUAL "")
         SET(FROM ${SRC})
     ELSE("${FROM_DIR}" STREQUAL "")
         SET(FROM ${FROM_DIR}/${SRC})
-    ENDIF("${FROM_DIR}" STREQUAL "")        
+    ENDIF("${FROM_DIR}" STREQUAL "")
     IF("${TO_DIR}" STREQUAL "")
         SET(TO ${SRCFILE})
     ELSE("${TO_DIR}" STREQUAL "")
diff --git a/indra/cmake/ConfigurePkgConfig.cmake b/indra/cmake/ConfigurePkgConfig.cmake
index 55d865392e..9e798d663b 100644
--- a/indra/cmake/ConfigurePkgConfig.cmake
+++ b/indra/cmake/ConfigurePkgConfig.cmake
@@ -17,13 +17,13 @@ IF("$ENV{PKG_CONFIG_LIBDIR}" STREQUAL "")
     SET(PKG_CONFIG_MULTI_GUESS /usr/local/lib/x86_64-linux-gnu)
     SET(PKG_CONFIG_MULTI_LOCAL_GUESS /usr/local/lib/x86_64-linux-gnu)
   endif (ADDRESS_SIZE EQUAL 32)
-  
+
   # Use DPKG architecture, if available.
   IF (${DPKG_ARCH})
     SET(PKG_CONFIG_MULTI_GUESS /usr/lib/${DPKG_ARCH})
     SET(PKG_CONFIG_MULTI_LOCAL_GUESS /usrlocal/lib/${DPKG_ARCH})
   ENDIF (${DPKG_ARCH})
-  
+
   # Explicitly include anything listed in PKG_CONFIG_PATH
   string(REPLACE ":" ";" PKG_CONFIG_PATH_LIST "$ENV{PKG_CONFIG_PATH}")
   FOREACH(PKG_CONFIG_DIR ${PKG_CONFIG_PATH_LIST})
@@ -38,25 +38,25 @@ IF("$ENV{PKG_CONFIG_LIBDIR}" STREQUAL "")
   FIND_PATH(PKG_CONFIG_NO_MULTI_LOCAL pkgconfig HINT ${PKG_CONFIG_NO_MULTI_LOCAL_GUESS})
 
   # Add anything we found to our list.
-  IF(NOT PKG_CONFIG_ENV STREQUAL PKG_CONFIG_ENV-NOTFOUND) 
+  IF(NOT PKG_CONFIG_ENV STREQUAL PKG_CONFIG_ENV-NOTFOUND)
     SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_ENV}/pkgconfig")
-  ENDIF(NOT PKG_CONFIG_ENV STREQUAL PKG_CONFIG_ENV-NOTFOUND) 
+  ENDIF(NOT PKG_CONFIG_ENV STREQUAL PKG_CONFIG_ENV-NOTFOUND)
 
-  IF(NOT PKG_CONFIG_MULTI STREQUAL PKG_CONFIG_MULTI-NOTFOUND) 
+  IF(NOT PKG_CONFIG_MULTI STREQUAL PKG_CONFIG_MULTI-NOTFOUND)
     SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_MULTI}/pkgconfig")
-  ENDIF(NOT PKG_CONFIG_MULTI STREQUAL PKG_CONFIG_MULTI-NOTFOUND) 
+  ENDIF(NOT PKG_CONFIG_MULTI STREQUAL PKG_CONFIG_MULTI-NOTFOUND)
 
-  IF(NOT PKG_CONFIG_MULTI_LOCAL STREQUAL PKG_CONFIG_MULTI_LOCAL-NOTFOUND) 
+  IF(NOT PKG_CONFIG_MULTI_LOCAL STREQUAL PKG_CONFIG_MULTI_LOCAL-NOTFOUND)
     SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_MULTI_LOCAL}/pkgconfig")
-  ENDIF(NOT PKG_CONFIG_MULTI_LOCAL STREQUAL PKG_CONFIG_MULTI_LOCAL-NOTFOUND) 
+  ENDIF(NOT PKG_CONFIG_MULTI_LOCAL STREQUAL PKG_CONFIG_MULTI_LOCAL-NOTFOUND)
 
-  IF(NOT PKG_CONFIG_NO_MULTI STREQUAL PKG_CONFIG_NO_MULTI-NOTFOUND) 
+  IF(NOT PKG_CONFIG_NO_MULTI STREQUAL PKG_CONFIG_NO_MULTI-NOTFOUND)
     SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_NO_MULTI}/pkgconfig")
-  ENDIF(NOT PKG_CONFIG_NO_MULTI STREQUAL PKG_CONFIG_NO_MULTI-NOTFOUND) 
+  ENDIF(NOT PKG_CONFIG_NO_MULTI STREQUAL PKG_CONFIG_NO_MULTI-NOTFOUND)
 
-  IF(NOT PKG_CONFIG_NO_MULTI_LOCAL STREQUAL PKG_CONFIG_NO_MULTI_LOCAL-NOTFOUND) 
+  IF(NOT PKG_CONFIG_NO_MULTI_LOCAL STREQUAL PKG_CONFIG_NO_MULTI_LOCAL-NOTFOUND)
     SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_NO_MULTI_LOCAL}/pkgconfig")
-  ENDIF(NOT PKG_CONFIG_NO_MULTI_LOCAL STREQUAL PKG_CONFIG_NO_MULTI_LOCAL-NOTFOUND) 
+  ENDIF(NOT PKG_CONFIG_NO_MULTI_LOCAL STREQUAL PKG_CONFIG_NO_MULTI_LOCAL-NOTFOUND)
 
   # Also add some non-architecture specific package locations.
   SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:/usr/share/pkgconfig:/usr/local/share/pkgconfig")
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index 9f79c13a97..262cd5813d 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -50,7 +50,7 @@ if(WINDOWS)
     endif (ADDRESS_SIZE EQUAL 64)
 
     #*******************************
-    # Misc shared libs 
+    # Misc shared libs
 
     set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
     set(release_files
diff --git a/indra/cmake/DeploySharedLibs.cmake b/indra/cmake/DeploySharedLibs.cmake
index 9d6cf0cb35..fe9ffcd8f1 100644
--- a/indra/cmake/DeploySharedLibs.cmake
+++ b/indra/cmake/DeploySharedLibs.cmake
@@ -5,7 +5,7 @@
 # This  script requires a few cmake variable to be set on the command line:
 # BIN_NAME= The full path the the binary to search for dependecies.
 # SEARCH_DIRS= The full paths to dirs to search for dependencies.
-# DST_PATH= The full path where the dependecies will be copied. 
+# DST_PATH= The full path where the dependecies will be copied.
 
 include(GetPrerequisites)
 
diff --git a/indra/cmake/FindAutobuild.cmake b/indra/cmake/FindAutobuild.cmake
index ea5ad6d108..79287d4e01 100644
--- a/indra/cmake/FindAutobuild.cmake
+++ b/indra/cmake/FindAutobuild.cmake
@@ -22,11 +22,11 @@ IF (NOT AUTOBUILD_EXECUTABLE)
 
     SET(AUTOBUILD_EXECUTABLE)
     FIND_PROGRAM(
-      AUTOBUILD_EXECUTABLE 
+      AUTOBUILD_EXECUTABLE
       NAMES ${AUTOBUILD_EXE_NAMES}
-      PATHS 
+      PATHS
         ENV PATH
-        ${CMAKE_SOURCE_DIR}/.. 
+        ${CMAKE_SOURCE_DIR}/..
         ${CMAKE_SOURCE_DIR}/../..
         ${CMAKE_SOURCE_DIR}/../../..
       PATH_SUFFIXES "/autobuild/bin/"
diff --git a/indra/cmake/GoogleMock.cmake b/indra/cmake/GoogleMock.cmake
index e4520fe96e..c3d195c37b 100644
--- a/indra/cmake/GoogleMock.cmake
+++ b/indra/cmake/GoogleMock.cmake
@@ -9,7 +9,7 @@ if(USE_CONAN)
   target_link_libraries( ll::googlemock INTERFACE  CONAN_PKG::gtest )
 
   #Not very nice, but for the moment we need this for tut.hpp
-  target_include_directories( ll::googlemock SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include ) 
+  target_include_directories( ll::googlemock SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include )
   return()
 endif()
 
diff --git a/indra/cmake/Havok.cmake b/indra/cmake/Havok.cmake
index 652760e626..c544440adc 100644
--- a/indra/cmake/Havok.cmake
+++ b/indra/cmake/Havok.cmake
@@ -77,7 +77,7 @@ foreach(HAVOK_LIB ${HAVOK_LIBS})
   find_library(HAVOK_DEBUG_LIB_${HAVOK_LIB}   ${HAVOK_LIB} PATHS ${HAVOK_DEBUG_LIBRARY_PATH})
   find_library(HAVOK_RELEASE_LIB_${HAVOK_LIB} ${HAVOK_LIB} PATHS ${HAVOK_RELEASE_LIBRARY_PATH})
   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}")
diff --git a/indra/cmake/LLKDU.cmake b/indra/cmake/LLKDU.cmake
index fda25610da..668b07ffab 100644
--- a/indra/cmake/LLKDU.cmake
+++ b/indra/cmake/LLKDU.cmake
@@ -1,7 +1,7 @@
 # -*- cmake -*-
 
 # USE_KDU can be set when launching cmake as an option using the argument -DUSE_KDU:BOOL=ON
-# When building using proprietary binaries though (i.e. having access to LL private servers), 
+# When building using proprietary binaries though (i.e. having access to LL private servers),
 # we always build with KDU
 if (INSTALL_PROPRIETARY)
   set(USE_KDU ON CACHE BOOL "Use Kakadu library.")
diff --git a/indra/cmake/LLPhysicsExtensions.cmake b/indra/cmake/LLPhysicsExtensions.cmake
index 36821447c9..80d243d9f8 100644
--- a/indra/cmake/LLPhysicsExtensions.cmake
+++ b/indra/cmake/LLPhysicsExtensions.cmake
@@ -3,7 +3,7 @@ include(Prebuilt)
 
 # There are three possible solutions to provide the llphysicsextensions:
 # - The full source package, selected by -DHAVOK:BOOL=ON
-# - The stub source package, selected by -DHAVOK:BOOL=OFF 
+# - The stub source package, selected by -DHAVOK:BOOL=OFF
 # - The prebuilt package available to those with sublicenses, selected by -DHAVOK_TPV:BOOL=ON
 
 if (INSTALL_PROPRIETARY)
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index 3d8499cbc3..735f5e8052 100644
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -14,7 +14,7 @@ add_library( ll::colladadom INTERFACE IMPORTED )
 # ND, needs fixup in collada conan pkg
 if( USE_CONAN )
   target_include_directories( ll::colladadom SYSTEM INTERFACE
-    "${CONAN_INCLUDE_DIRS_COLLADADOM}/collada-dom/" 
+    "${CONAN_INCLUDE_DIRS_COLLADADOM}/collada-dom/"
     "${CONAN_INCLUDE_DIRS_COLLADADOM}/collada-dom/1.4/" )
 endif()
 
diff --git a/indra/cmake/LLSharedLibs.cmake b/indra/cmake/LLSharedLibs.cmake
index e3e2a3b0c6..48149129d6 100644
--- a/indra/cmake/LLSharedLibs.cmake
+++ b/indra/cmake/LLSharedLibs.cmake
@@ -1,6 +1,6 @@
 # ll_deploy_sharedlibs_command
 # target_exe: the cmake target of the executable for which the shared libs will be deployed.
-macro(ll_deploy_sharedlibs_command target_exe) 
+macro(ll_deploy_sharedlibs_command target_exe)
   set(TARGET_LOCATION $<TARGET_FILE:${target_exe}>)
   get_filename_component(OUTPUT_PATH ${TARGET_LOCATION} PATH)
 
@@ -26,7 +26,7 @@ macro(ll_deploy_sharedlibs_command target_exe)
 
     add_custom_command(
       TARGET ${target_exe} POST_BUILD
-      COMMAND ${CMAKE_COMMAND} 
+      COMMAND ${CMAKE_COMMAND}
       ARGS
       "-DBIN_NAME=\"${TARGET_LOCATION}\""
       "-DSEARCH_DIRS=\"${SEARCH_DIRS}\""
diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake
index b36e970560..2e1b601b79 100644
--- a/indra/cmake/LLWindow.cmake
+++ b/indra/cmake/LLWindow.cmake
@@ -14,7 +14,7 @@ if (LINUX)
 
   use_system_binary(SDL)
   use_prebuilt_binary(SDL)
-  
+
   target_include_directories( ll::SDL SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
   target_link_libraries( ll::SDL INTERFACE SDL directfb fusion direct X11)
 endif (LINUX)
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
index 1ce21c11f9..0ab30d0800 100644
--- a/indra/cmake/Linking.cmake
+++ b/indra/cmake/Linking.cmake
@@ -11,7 +11,7 @@ if (WINDOWS OR DARWIN )
   # Kludge for older cmake versions, 3.20+ is needed to use a genex in add_custom_command( OUTPUT <var> ... )
   # Using this will work okay-ish, as Debug is not supported anyway. But for property multi config and also
   # ninja support the genex version is preferred.
-  if(${CMAKE_VERSION} VERSION_LESS "3.20.0")  
+  if(${CMAKE_VERSION} VERSION_LESS "3.20.0")
     if(CMAKE_BUILD_TYPE MATCHES Release)
       set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/Release)
     elseif (CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
diff --git a/indra/cmake/TinyGLTF.cmake b/indra/cmake/TinyGLTF.cmake
index bb731637a0..92b2de309f 100644
--- a/indra/cmake/TinyGLTF.cmake
+++ b/indra/cmake/TinyGLTF.cmake
@@ -3,5 +3,5 @@ include(Prebuilt)
 
 use_prebuilt_binary(tinygltf)
 
-set(TINYGLTF_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/tinygltf) 
+set(TINYGLTF_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/tinygltf)
 
diff --git a/indra/cmake/UI.cmake b/indra/cmake/UI.cmake
index 8b70192efc..8f135676d6 100644
--- a/indra/cmake/UI.cmake
+++ b/indra/cmake/UI.cmake
@@ -12,7 +12,7 @@ if (LINUX)
     return()
   endif()
   use_prebuilt_binary(gtk-atk-pango-glib)
-  
+
   target_link_libraries( ll::uilibraries INTERFACE
           atk-1.0
           gdk-x11-2.0
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index af1f16d04d..59725ecc65 100644
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -117,7 +117,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
     set(FIND_LIBRARY_USE_LIB64_PATHS ON)
   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)
diff --git a/indra/cmake/cmake_dummy.cpp b/indra/cmake/cmake_dummy.cpp
index ae4475a73e..21a47a9b14 100644
--- a/indra/cmake/cmake_dummy.cpp
+++ b/indra/cmake/cmake_dummy.cpp
@@ -1,24 +1,24 @@
-/** 
+/**
  * @file cmake_dummy.cpp
  *
  * $LicenseInfo:firstyear=2008&license=viewerlgpl$
  * Second Life Viewer Source Code
  * Copyright (C) 2010, Linden Research, Inc.
- * 
+ *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation;
  * version 2.1 of the License only.
- * 
+ *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
+ *
  * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
  * $/LicenseInfo$
  */
diff --git a/indra/cmake/run_build_test.py b/indra/cmake/run_build_test.py
index 1f040bded5..940a130a50 100755
--- a/indra/cmake/run_build_test.py
+++ b/indra/cmake/run_build_test.py
@@ -152,7 +152,7 @@ def translate_rc(rc):
     """
     if rc is None:
         return "still running"
-    
+
     if rc >= 0:
         return "terminated with rc %s" % rc
 
-- 
cgit v1.2.3


From e2e37cced861b98de8c1a7c9c0d3a50d2d90e433 Mon Sep 17 00:00:00 2001
From: Ansariel <ansariel.hiller@phoenixviewer.com>
Date: Wed, 22 May 2024 21:25:21 +0200
Subject: Fix line endlings

---
 indra/cmake/Copy3rdPartyLibs.cmake | 574 ++++++++++++++++++-------------------
 1 file changed, 287 insertions(+), 287 deletions(-)

(limited to 'indra/cmake')

diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index 0e6756fd18..a2ce9eab90 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -1,287 +1,287 @@
-# -*- cmake -*-
-
-# The copy_win_libs folder contains file lists and a script used to
-# copy dlls, exes and such needed to run the SecondLife from within
-# VisualStudio.
-
-include(CMakeCopyIfDifferent)
-include(Linking)
-include(OPENAL)
-
-# When we copy our dependent libraries, we almost always want to copy them to
-# both the Release and the RelWithDebInfo staging directories. This has
-# resulted in duplicate (or worse, erroneous attempted duplicate)
-# copy_if_different commands. Encapsulate that usage.
-# Pass FROM_DIR, TARGETS and the files to copy. TO_DIR is implicit.
-# to_staging_dirs diverges from copy_if_different in that it appends to TARGETS.
-macro(to_staging_dirs from_dir targets)
-    set( targetDir "${SHARED_LIB_STAGING_DIR}")
-    copy_if_different("${from_dir}" "${targetDir}" out_targets ${ARGN})
-
-    list(APPEND "${targets}" "${out_targets}")
-endmacro()
-
-###################################################################
-# set up platform specific lists of files that need to be copied
-###################################################################
-if(WINDOWS)
-    #*******************************
-    # VIVOX - *NOTE: no debug version
-    set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
-
-    # ND, it seems there is no such thing defined. At least when building a viewer
-    # Does this maybe matter on some LL buildserver? Otherwise this and the snippet using slvoice_src_dir
-    # can all go
-    if( ARCH_PREBUILT_BIN_RELEASE )
-        set(slvoice_src_dir "${ARCH_PREBUILT_BIN_RELEASE}")
-    endif()
-    set(slvoice_files SLVoice.exe )
-    if (ADDRESS_SIZE EQUAL 64)
-        list(APPEND vivox_libs
-            vivoxsdk_x64.dll
-            ortp_x64.dll
-            )
-    else (ADDRESS_SIZE EQUAL 64)
-        list(APPEND vivox_libs
-            vivoxsdk.dll
-            ortp.dll
-            )
-    endif (ADDRESS_SIZE EQUAL 64)
-
-    #*******************************
-    # Misc shared libs
-
-    set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
-    set(release_files
-        openjp2.dll
-        libapr-1.dll
-        libaprutil-1.dll
-        nghttp2.dll
-        libhunspell.dll
-        uriparser.dll
-        )
-
-    # OpenSSL
-    if(ADDRESS_SIZE EQUAL 64)
-        set(release_files ${release_files} libcrypto-1_1-x64.dll)
-        set(release_files ${release_files} libssl-1_1-x64.dll)
-    else(ADDRESS_SIZE EQUAL 64)
-        set(release_files ${release_files} libcrypto-1_1.dll)
-        set(release_files ${release_files} libssl-1_1.dll)
-    endif(ADDRESS_SIZE EQUAL 64)
-
-    # Filenames are different for 32/64 bit BugSplat file and we don't
-    # have any control over them so need to branch.
-    if (USE_BUGSPLAT)
-      if(ADDRESS_SIZE EQUAL 32)
-        set(release_files ${release_files} BugSplat.dll)
-        set(release_files ${release_files} BugSplatRc.dll)
-        set(release_files ${release_files} BsSndRpt.exe)
-      else(ADDRESS_SIZE EQUAL 32)
-        set(release_files ${release_files} BugSplat64.dll)
-        set(release_files ${release_files} BugSplatRc64.dll)
-        set(release_files ${release_files} BsSndRpt64.exe)
-      endif(ADDRESS_SIZE EQUAL 32)
-    endif (USE_BUGSPLAT)
-
-    if (TARGET ll::openal)
-        list(APPEND release_files openal32.dll alut.dll)
-    endif ()
-
-    #*******************************
-    # Copy MS C runtime dlls, required for packaging.
-    if (MSVC80)
-        set(MSVC_VER 80)
-    elseif (MSVC_VERSION EQUAL 1600) # VisualStudio 2010
-        MESSAGE(STATUS "MSVC_VERSION ${MSVC_VERSION}")
-    elseif (MSVC_VERSION EQUAL 1800) # VisualStudio 2013, which is (sigh) VS 12
-        set(MSVC_VER 120)
-    elseif (MSVC_VERSION GREATER_EQUAL 1910 AND MSVC_VERSION LESS 1920) # Visual Studio 2017
-        set(MSVC_VER 140)
-    elseif (MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1930) # Visual Studio 2019
-        set(MSVC_VER 140)
-    elseif (MSVC_VERSION GREATER_EQUAL 1930 AND MSVC_VERSION LESS 1940) # Visual Studio 2022
-        set(MSVC_VER 140)
-    else (MSVC80)
-        MESSAGE(WARNING "New MSVC_VERSION ${MSVC_VERSION} of MSVC: adapt Copy3rdPartyLibs.cmake")
-    endif (MSVC80)
-
-    if(ADDRESS_SIZE EQUAL 32)
-        # this folder contains the 32bit DLLs.. (yes really!)
-        set(registry_find_path "[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/SysWOW64")
-    else(ADDRESS_SIZE EQUAL 32)
-        # this folder contains the 64bit DLLs.. (yes really!)
-        set(registry_find_path "[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/System32")
-    endif(ADDRESS_SIZE EQUAL 32)
-
-    # Having a string containing the system registry path is a start, but to
-    # get CMake to actually read the registry, we must engage some other
-    # operation.
-    get_filename_component(registry_path "${registry_find_path}" ABSOLUTE)
-
-    # These are candidate DLL names. Empirically, VS versions before 2015 have
-    # msvcp*.dll and msvcr*.dll. VS 2017 has msvcp*.dll and vcruntime*.dll.
-    # Check each of them.
-    foreach(release_msvc_file
-            msvcp${MSVC_VER}.dll
-            msvcr${MSVC_VER}.dll
-            vcruntime${MSVC_VER}.dll
-            vcruntime${MSVC_VER}_1.dll
-            )
-        if(EXISTS "${registry_path}/${release_msvc_file}")
-            to_staging_dirs(
-                ${registry_path}
-                third_party_targets
-                ${release_msvc_file})
-        else()
-            # This isn't a WARNING because, as noted above, every VS version
-            # we've observed has only a subset of the specified DLL names.
-            MESSAGE(STATUS "Redist lib ${release_msvc_file} not found")
-        endif()
-    endforeach()
-    MESSAGE(STATUS "Will copy redist files for MSVC ${MSVC_VER}:")
-    foreach(target ${third_party_targets})
-        MESSAGE(STATUS "${target}")
-    endforeach()
-
-elseif(DARWIN)
-    set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
-    set(slvoice_files SLVoice)
-    set(vivox_libs
-        libortp.dylib
-        libvivoxsdk.dylib
-       )
-    set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
-    set(debug_files
-       )
-    set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
-    set(release_files
-        libapr-1.0.dylib
-        libapr-1.dylib
-        libaprutil-1.0.dylib
-        libaprutil-1.dylib
-        ${EXPAT_COPY}
-        libhunspell-1.3.0.dylib
-        libndofdev.dylib
-        libnghttp2.dylib
-        libnghttp2.14.dylib
-        liburiparser.dylib
-        liburiparser.1.dylib
-        liburiparser.1.0.27.dylib
-       )
-
-    if (TARGET ll::openal)
-      list(APPEND release_files libalut.dylib libopenal.dylib)
-    endif ()
-
-elseif(LINUX)
-    # linux is weird, multiple side by side configurations aren't supported
-    # and we don't seem to have any debug shared libs built yet anyways...
-    set(SHARED_LIB_STAGING_DIR_DEBUG            "${SHARED_LIB_STAGING_DIR}")
-    set(SHARED_LIB_STAGING_DIR_RELWITHDEBINFO   "${SHARED_LIB_STAGING_DIR}")
-    set(SHARED_LIB_STAGING_DIR_RELEASE          "${SHARED_LIB_STAGING_DIR}")
-
-    set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
-    set(vivox_libs
-        libsndfile.so.1
-        libortp.so
-        libvivoxoal.so.1
-        libvivoxsdk.so
-        )
-    set(slvoice_files SLVoice)
-
-    # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
-    # or ARCH_PREBUILT_DIRS
-    set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
-    set(debug_files
-       )
-    # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
-    # or ARCH_PREBUILT_DIRS
-    set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
-    # *FIX - figure out what to do with duplicate libalut.so here -brad
-    set(release_files
-            ${EXPAT_COPY}
-            )
-
-     if( USE_AUTOBUILD_3P )
-         list( APPEND release_files
-                 libapr-1.so.0
-                 libaprutil-1.so.0
-                 libatk-1.0.so
-                 libfreetype.so.6.6.2
-                 libfreetype.so.6
-                 libhunspell-1.3.so.0.0.0
-                 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
-                 )
-     endif()
-
-else(WINDOWS)
-    message(STATUS "WARNING: unrecognized platform for staging 3rd party libs, skipping...")
-    set(vivox_lib_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/i686-linux")
-    set(vivox_libs "")
-    # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
-    # or ARCH_PREBUILT_DIRS
-    set(debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib/debug")
-    set(debug_files "")
-    # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
-    # or ARCH_PREBUILT_DIRS
-    set(release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib/release")
-    set(release_files "")
-
-    set(debug_llkdu_src "")
-    set(debug_llkdu_dst "")
-    set(release_llkdu_src "")
-    set(release_llkdu_dst "")
-    set(relwithdebinfo_llkdu_dst "")
-endif(WINDOWS)
-
-
-################################################################
-# Done building the file lists, now set up the copy commands.
-################################################################
-
-# Curiously, slvoice_files are only copied to SHARED_LIB_STAGING_DIR_RELEASE.
-# It's unclear whether this is oversight or intentional, but anyway leave the
-# single copy_if_different command rather than using to_staging_dirs.
-
-if( slvoice_src_dir )
-    copy_if_different(
-            ${slvoice_src_dir}
-            "${SHARED_LIB_STAGING_DIR_RELEASE}"
-            out_targets
-            ${slvoice_files}
-    )
-    list(APPEND third_party_targets ${out_targets})
-endif()
-
-to_staging_dirs(
-    ${vivox_lib_dir}
-    third_party_targets
-    ${vivox_libs}
-    )
-
-to_staging_dirs(
-    ${release_src_dir}
-    third_party_targets
-    ${release_files}
-    )
-
-add_custom_target(
-        stage_third_party_libs ALL
-        DEPENDS ${third_party_targets}
-)
-
-if(DARWIN)
-    # Support our "@executable_path/../Resources" load path for executables
-    # that end up in any of the above SHARED_LIB_STAGING_DIR_MUMBLE
-    # directories.
-    add_custom_command( TARGET stage_third_party_libs POST_BUILD
-            COMMAND ${CMAKE_COMMAND} -E create_symlink ${SHARED_LIB_STAGING_DIR} ${CMAKE_BINARY_DIR}/sharedlibs/Resources
-            )
-endif()
+# -*- cmake -*-
+
+# The copy_win_libs folder contains file lists and a script used to
+# copy dlls, exes and such needed to run the SecondLife from within
+# VisualStudio.
+
+include(CMakeCopyIfDifferent)
+include(Linking)
+include(OPENAL)
+
+# When we copy our dependent libraries, we almost always want to copy them to
+# both the Release and the RelWithDebInfo staging directories. This has
+# resulted in duplicate (or worse, erroneous attempted duplicate)
+# copy_if_different commands. Encapsulate that usage.
+# Pass FROM_DIR, TARGETS and the files to copy. TO_DIR is implicit.
+# to_staging_dirs diverges from copy_if_different in that it appends to TARGETS.
+macro(to_staging_dirs from_dir targets)
+    set( targetDir "${SHARED_LIB_STAGING_DIR}")
+    copy_if_different("${from_dir}" "${targetDir}" out_targets ${ARGN})
+
+    list(APPEND "${targets}" "${out_targets}")
+endmacro()
+
+###################################################################
+# set up platform specific lists of files that need to be copied
+###################################################################
+if(WINDOWS)
+    #*******************************
+    # VIVOX - *NOTE: no debug version
+    set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
+
+    # ND, it seems there is no such thing defined. At least when building a viewer
+    # Does this maybe matter on some LL buildserver? Otherwise this and the snippet using slvoice_src_dir
+    # can all go
+    if( ARCH_PREBUILT_BIN_RELEASE )
+        set(slvoice_src_dir "${ARCH_PREBUILT_BIN_RELEASE}")
+    endif()
+    set(slvoice_files SLVoice.exe )
+    if (ADDRESS_SIZE EQUAL 64)
+        list(APPEND vivox_libs
+            vivoxsdk_x64.dll
+            ortp_x64.dll
+            )
+    else (ADDRESS_SIZE EQUAL 64)
+        list(APPEND vivox_libs
+            vivoxsdk.dll
+            ortp.dll
+            )
+    endif (ADDRESS_SIZE EQUAL 64)
+
+    #*******************************
+    # Misc shared libs
+
+    set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
+    set(release_files
+        openjp2.dll
+        libapr-1.dll
+        libaprutil-1.dll
+        nghttp2.dll
+        libhunspell.dll
+        uriparser.dll
+        )
+
+    # OpenSSL
+    if(ADDRESS_SIZE EQUAL 64)
+        set(release_files ${release_files} libcrypto-1_1-x64.dll)
+        set(release_files ${release_files} libssl-1_1-x64.dll)
+    else(ADDRESS_SIZE EQUAL 64)
+        set(release_files ${release_files} libcrypto-1_1.dll)
+        set(release_files ${release_files} libssl-1_1.dll)
+    endif(ADDRESS_SIZE EQUAL 64)
+
+    # Filenames are different for 32/64 bit BugSplat file and we don't
+    # have any control over them so need to branch.
+    if (USE_BUGSPLAT)
+      if(ADDRESS_SIZE EQUAL 32)
+        set(release_files ${release_files} BugSplat.dll)
+        set(release_files ${release_files} BugSplatRc.dll)
+        set(release_files ${release_files} BsSndRpt.exe)
+      else(ADDRESS_SIZE EQUAL 32)
+        set(release_files ${release_files} BugSplat64.dll)
+        set(release_files ${release_files} BugSplatRc64.dll)
+        set(release_files ${release_files} BsSndRpt64.exe)
+      endif(ADDRESS_SIZE EQUAL 32)
+    endif (USE_BUGSPLAT)
+
+    if (TARGET ll::openal)
+        list(APPEND release_files openal32.dll alut.dll)
+    endif ()
+
+    #*******************************
+    # Copy MS C runtime dlls, required for packaging.
+    if (MSVC80)
+        set(MSVC_VER 80)
+    elseif (MSVC_VERSION EQUAL 1600) # VisualStudio 2010
+        MESSAGE(STATUS "MSVC_VERSION ${MSVC_VERSION}")
+    elseif (MSVC_VERSION EQUAL 1800) # VisualStudio 2013, which is (sigh) VS 12
+        set(MSVC_VER 120)
+    elseif (MSVC_VERSION GREATER_EQUAL 1910 AND MSVC_VERSION LESS 1920) # Visual Studio 2017
+        set(MSVC_VER 140)
+    elseif (MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1930) # Visual Studio 2019
+        set(MSVC_VER 140)
+    elseif (MSVC_VERSION GREATER_EQUAL 1930 AND MSVC_VERSION LESS 1940) # Visual Studio 2022
+        set(MSVC_VER 140)
+    else (MSVC80)
+        MESSAGE(WARNING "New MSVC_VERSION ${MSVC_VERSION} of MSVC: adapt Copy3rdPartyLibs.cmake")
+    endif (MSVC80)
+
+    if(ADDRESS_SIZE EQUAL 32)
+        # this folder contains the 32bit DLLs.. (yes really!)
+        set(registry_find_path "[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/SysWOW64")
+    else(ADDRESS_SIZE EQUAL 32)
+        # this folder contains the 64bit DLLs.. (yes really!)
+        set(registry_find_path "[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/System32")
+    endif(ADDRESS_SIZE EQUAL 32)
+
+    # Having a string containing the system registry path is a start, but to
+    # get CMake to actually read the registry, we must engage some other
+    # operation.
+    get_filename_component(registry_path "${registry_find_path}" ABSOLUTE)
+
+    # These are candidate DLL names. Empirically, VS versions before 2015 have
+    # msvcp*.dll and msvcr*.dll. VS 2017 has msvcp*.dll and vcruntime*.dll.
+    # Check each of them.
+    foreach(release_msvc_file
+            msvcp${MSVC_VER}.dll
+            msvcr${MSVC_VER}.dll
+            vcruntime${MSVC_VER}.dll
+            vcruntime${MSVC_VER}_1.dll
+            )
+        if(EXISTS "${registry_path}/${release_msvc_file}")
+            to_staging_dirs(
+                ${registry_path}
+                third_party_targets
+                ${release_msvc_file})
+        else()
+            # This isn't a WARNING because, as noted above, every VS version
+            # we've observed has only a subset of the specified DLL names.
+            MESSAGE(STATUS "Redist lib ${release_msvc_file} not found")
+        endif()
+    endforeach()
+    MESSAGE(STATUS "Will copy redist files for MSVC ${MSVC_VER}:")
+    foreach(target ${third_party_targets})
+        MESSAGE(STATUS "${target}")
+    endforeach()
+
+elseif(DARWIN)
+    set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
+    set(slvoice_files SLVoice)
+    set(vivox_libs
+        libortp.dylib
+        libvivoxsdk.dylib
+       )
+    set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
+    set(debug_files
+       )
+    set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
+    set(release_files
+        libapr-1.0.dylib
+        libapr-1.dylib
+        libaprutil-1.0.dylib
+        libaprutil-1.dylib
+        ${EXPAT_COPY}
+        libhunspell-1.3.0.dylib
+        libndofdev.dylib
+        libnghttp2.dylib
+        libnghttp2.14.dylib
+        liburiparser.dylib
+        liburiparser.1.dylib
+        liburiparser.1.0.27.dylib
+       )
+
+    if (TARGET ll::openal)
+      list(APPEND release_files libalut.dylib libopenal.dylib)
+    endif ()
+
+elseif(LINUX)
+    # linux is weird, multiple side by side configurations aren't supported
+    # and we don't seem to have any debug shared libs built yet anyways...
+    set(SHARED_LIB_STAGING_DIR_DEBUG            "${SHARED_LIB_STAGING_DIR}")
+    set(SHARED_LIB_STAGING_DIR_RELWITHDEBINFO   "${SHARED_LIB_STAGING_DIR}")
+    set(SHARED_LIB_STAGING_DIR_RELEASE          "${SHARED_LIB_STAGING_DIR}")
+
+    set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
+    set(vivox_libs
+        libsndfile.so.1
+        libortp.so
+        libvivoxoal.so.1
+        libvivoxsdk.so
+        )
+    set(slvoice_files SLVoice)
+
+    # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
+    # or ARCH_PREBUILT_DIRS
+    set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
+    set(debug_files
+       )
+    # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
+    # or ARCH_PREBUILT_DIRS
+    set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
+    # *FIX - figure out what to do with duplicate libalut.so here -brad
+    set(release_files
+            ${EXPAT_COPY}
+            )
+
+     if( USE_AUTOBUILD_3P )
+         list( APPEND release_files
+                 libapr-1.so.0
+                 libaprutil-1.so.0
+                 libatk-1.0.so
+                 libfreetype.so.6.6.2
+                 libfreetype.so.6
+                 libhunspell-1.3.so.0.0.0
+                 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
+                 )
+     endif()
+
+else(WINDOWS)
+    message(STATUS "WARNING: unrecognized platform for staging 3rd party libs, skipping...")
+    set(vivox_lib_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/i686-linux")
+    set(vivox_libs "")
+    # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
+    # or ARCH_PREBUILT_DIRS
+    set(debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib/debug")
+    set(debug_files "")
+    # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
+    # or ARCH_PREBUILT_DIRS
+    set(release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib/release")
+    set(release_files "")
+
+    set(debug_llkdu_src "")
+    set(debug_llkdu_dst "")
+    set(release_llkdu_src "")
+    set(release_llkdu_dst "")
+    set(relwithdebinfo_llkdu_dst "")
+endif(WINDOWS)
+
+
+################################################################
+# Done building the file lists, now set up the copy commands.
+################################################################
+
+# Curiously, slvoice_files are only copied to SHARED_LIB_STAGING_DIR_RELEASE.
+# It's unclear whether this is oversight or intentional, but anyway leave the
+# single copy_if_different command rather than using to_staging_dirs.
+
+if( slvoice_src_dir )
+    copy_if_different(
+            ${slvoice_src_dir}
+            "${SHARED_LIB_STAGING_DIR_RELEASE}"
+            out_targets
+            ${slvoice_files}
+    )
+    list(APPEND third_party_targets ${out_targets})
+endif()
+
+to_staging_dirs(
+    ${vivox_lib_dir}
+    third_party_targets
+    ${vivox_libs}
+    )
+
+to_staging_dirs(
+    ${release_src_dir}
+    third_party_targets
+    ${release_files}
+    )
+
+add_custom_target(
+        stage_third_party_libs ALL
+        DEPENDS ${third_party_targets}
+)
+
+if(DARWIN)
+    # Support our "@executable_path/../Resources" load path for executables
+    # that end up in any of the above SHARED_LIB_STAGING_DIR_MUMBLE
+    # directories.
+    add_custom_command( TARGET stage_third_party_libs POST_BUILD
+            COMMAND ${CMAKE_COMMAND} -E create_symlink ${SHARED_LIB_STAGING_DIR} ${CMAKE_BINARY_DIR}/sharedlibs/Resources
+            )
+endif()
-- 
cgit v1.2.3