diff --git a/autobuild.xml b/autobuild.xml
index 2d7f6923424c512149457d186557450ded7c1b8d..eed2ac8ae4e1d838f0bc03f9df4264d1df5fda10 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -142,11 +142,11 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>56c0c5d250fb914bb20e5d4dc3e4e4d8b7834e0a62239ce52ac6435bf2edf9e9d3fb8d036ff88eefc76fbe004c569c23556e3c27049426ba58c8d39b0ea246c7</string>
+              <string>c15f791afd488eb084ce22f998ad05dbb60348e9919a955141d87f587f8f858b3e04b776db6980aae15eae7cc77279b5827d69c71c11591f14b088ddf152d719</string>
               <key>hash_algorithm</key>
               <string>blake2b</string>
               <key>url</key>
-              <string>https://git.alchemyviewer.org/api/v4/projects/92/packages/generic/boost/1.81.0.1936/boost-1.81.0-darwin64-1936.tar.zst</string>
+              <string>https://git.alchemyviewer.org/api/v4/projects/92/packages/generic/boost/1.81.0.1954/boost-1.81.0-darwin64-1954.tar.zst</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -156,11 +156,11 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>43cb1a48f101d76e3c97b7ee2d494f43553ea5a4d9c07a844f0520f5ec3b0bd4eaaabc958a2ce0b96223426930e6b87df1ecbbeb9d3237fbad064096ac7500fc</string>
+              <string>9977b98ae65952d1a081be27ecf40b5e240890f7b3731a4a4ce1c648846c5bbd5fcba91eed766dd65fe1bacf3fad6c7ecdc082c7b8ceb5e2684999db24ceae03</string>
               <key>hash_algorithm</key>
               <string>blake2b</string>
               <key>url</key>
-              <string>https://git.alchemyviewer.org/api/v4/projects/92/packages/generic/boost/1.81.0.1936/boost-1.81.0-linux64-1936.tar.zst</string>
+              <string>https://git.alchemyviewer.org/api/v4/projects/92/packages/generic/boost/1.81.0.1954/boost-1.81.0-linux64-1954.tar.zst</string>
             </map>
             <key>name</key>
             <string>linux64</string>
@@ -170,11 +170,11 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>7ae9863a8e58832aa962fabf9cff0db99bbd3d13f3d4e3b97ef17d1faed66581c7997829555c3460dccea453c138772277669d1cad9a6f9323fe52dc33a675b5</string>
+              <string>e026eb7856906de9a87a815a2d368811053ad3fee5a09fa886a6cb1323c65fd6d295f1d595b8df0d6e640ad9ebce041f53ee24fbc011523ef49a27b4b9151159</string>
               <key>hash_algorithm</key>
               <string>blake2b</string>
               <key>url</key>
-              <string>https://git.alchemyviewer.org/api/v4/projects/92/packages/generic/boost/1.81.0.1936/boost-1.81.0-windows64-1936.tar.zst</string>
+              <string>https://git.alchemyviewer.org/api/v4/projects/92/packages/generic/boost/1.81.0.1954/boost-1.81.0-windows64-1954.tar.zst</string>
             </map>
             <key>name</key>
             <string>windows64</string>
@@ -232,11 +232,11 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>5396b164551ce21ec8caa81c634d4c45ad5446657287701713fb9fc3604ca831ead5501e3efdc4916fb87a4e3f3117fa922068ff4c023a7ab8de83df2502f407</string>
+              <string>f7ec429ffd765df5adcc6f8eb041008f004fb3d3b4b92490bb63195b62052c566f92783dec063d6d4f22e893b05ffac7b1c03a5d55b1a1117275696b6ebde4a8</string>
               <key>hash_algorithm</key>
               <string>blake2b</string>
               <key>url</key>
-              <string>https://git.alchemyviewer.org/api/v4/projects/98/packages/generic/colladadom/2.3.0.1937/colladadom-2.3.0-darwin64-1937.tar.zst</string>
+              <string>https://git.alchemyviewer.org/api/v4/projects/98/packages/generic/colladadom/2.3.0.1957/colladadom-2.3.0-darwin64-1957.tar.zst</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -246,11 +246,11 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>6f513fdb8845799801674628badf60fce657d9a0e1eaf2133745eba728a5970fcd787e287ad3dd4877ecebe89f85a20434cc635157dfcde0cc0e50451e306f9a</string>
+              <string>82925ab74ca684f7fcaa453a607150298db94007f47ac4b274b1a9c2182612fcdc5fcbabba426c4fb77a56e377d6e66fd16601950767bb9d8876775c6cde879c</string>
               <key>hash_algorithm</key>
               <string>blake2b</string>
               <key>url</key>
-              <string>https://git.alchemyviewer.org/api/v4/projects/98/packages/generic/colladadom/2.3.0.1937/colladadom-2.3.0-linux64-1937.tar.zst</string>
+              <string>https://git.alchemyviewer.org/api/v4/projects/98/packages/generic/colladadom/2.3.0.1957/colladadom-2.3.0-linux64-1957.tar.zst</string>
             </map>
             <key>name</key>
             <string>linux64</string>
@@ -260,11 +260,11 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>63bdb2d24e58bf37982c36dfb1cd3289c2dc264d232d3158f9dcb58a3ade7e6f0d859e27c0ed200b401098b76f7da251215c14e48fd2cef84b8836e165c84b18</string>
+              <string>595e7fc5130d2d110d49fe8377b8eb9f49cbcfa72bdb00e6896228825423c6a0da7102043aeb1f0bca45ebd91748bdee9260c703d2fb936463079b2ee093faef</string>
               <key>hash_algorithm</key>
               <string>blake2b</string>
               <key>url</key>
-              <string>https://git.alchemyviewer.org/api/v4/projects/98/packages/generic/colladadom/2.3.0.1937/colladadom-2.3.0-windows64-1937.tar.zst</string>
+              <string>https://git.alchemyviewer.org/api/v4/projects/98/packages/generic/colladadom/2.3.0.1957/colladadom-2.3.0-windows64-1957.tar.zst</string>
             </map>
             <key>name</key>
             <string>windows64</string>
@@ -1224,11 +1224,11 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>9f5d00fc1ccff72486a2ff84d583fd59e94f39b0999a3fb3efade28819dc439b51655e0675cbc861188760cd8f1b36cceb6a9c0f9a95455afa350b44dea7348b</string>
+              <string>56f93e6d3f9172852a6024ee68a94e98c9dfb33916894f7ab671c66de59d951878343cd1e5c8279e309268daa3e58e438dc5846a1636127ec7a850c2908dc7e8</string>
               <key>hash_algorithm</key>
               <string>blake2b</string>
               <key>url</key>
-              <string>https://git.alchemyviewer.org/api/v4/projects/82/packages/generic/libwebp/1.3.0.1945/libwebp-1.3.0-darwin64-1945.tar.zst</string>
+              <string>https://git.alchemyviewer.org/api/v4/projects/82/packages/generic/libwebp/1.3.0.1953/libwebp-1.3.0-darwin64-1953.tar.zst</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -1238,11 +1238,11 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>1b0d629c488784c3b8d32c4b3141c1c44fe5a8b081c866be0e6b3165829aa8e9efcd203878c03338714adb916155f30d5c4afc41bba1160d005b1f072a7301b2</string>
+              <string>19472aa022d545268796440cbc8b375512c202ec86641fdd8034dcd92def4badecd4298fef589383a20b280771d50da86a899a6da9f7edbe7e5d7ac775af562c</string>
               <key>hash_algorithm</key>
               <string>blake2b</string>
               <key>url</key>
-              <string>https://git.alchemyviewer.org/api/v4/projects/82/packages/generic/libwebp/1.3.0.1945/libwebp-1.3.0-linux64-1945.tar.zst</string>
+              <string>https://git.alchemyviewer.org/api/v4/projects/82/packages/generic/libwebp/1.3.0.1953/libwebp-1.3.0-linux64-1953.tar.zst</string>
             </map>
             <key>name</key>
             <string>linux64</string>
@@ -1252,11 +1252,11 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>e88e99f9e1c23bc71d5befed4b4d0befb923f319850af43ee9b756710c31fdaed5696947780727970fe722c0f721cdc33dbcf81e354159c981237f90c605bcab</string>
+              <string>b77d6e57f6763fd38c9a57b3d09e78c5a43119cac96fc7827c007801bb0c6c2bf213bff93a7d9d292c3716fff2dc40727385e09875d40fcc8c102941dea865c4</string>
               <key>hash_algorithm</key>
               <string>blake2b</string>
               <key>url</key>
-              <string>https://git.alchemyviewer.org/api/v4/projects/82/packages/generic/libwebp/1.3.0.1945/libwebp-1.3.0-windows64-1945.tar.zst</string>
+              <string>https://git.alchemyviewer.org/api/v4/projects/82/packages/generic/libwebp/1.3.0.1953/libwebp-1.3.0-windows64-1953.tar.zst</string>
             </map>
             <key>name</key>
             <string>windows64</string>
diff --git a/indra/CMakeLists.txt b/indra/CMakeLists.txt
index d2a90241c42731ca44051559f5bacff2d149d208..48cfb6e5917efd6fb188fb83d98822a979b3ba1e 100644
--- a/indra/CMakeLists.txt
+++ b/indra/CMakeLists.txt
@@ -11,27 +11,23 @@
 ##   We're not there yet, but once done, there is a kludge in Linking.cmake
 #    "if(${CMAKE_VERSION} VERSION_LESS "3.20.0")" that can also be removed
 cmake_minimum_required(VERSION 3.16.0 FATAL_ERROR)
-cmake_policy(SET CMP0063 NEW)
-cmake_policy(SET CMP0083 NEW)
-cmake_policy(SET CMP0091 NEW)
+if(POLICY CMP0063)
+  cmake_policy(SET CMP0063 NEW)
+endif()
+if(POLICY CMP0083)
+  cmake_policy(SET CMP0083 NEW)
+endif()
+if(POLICY CMP0091)
+  cmake_policy(SET CMP0091 NEW)
+endif()
+if(POLICY CMP0119)
+  cmake_policy(SET CMP0119 NEW)
+endif()
 
 set(ROOT_PROJECT_NAME "Alchemy" CACHE STRING
     "The root project/makefile/solution name. Defaults to Alchemy.")
 project(${ROOT_PROJECT_NAME})
 
-set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake"  "${CMAKE_CURRENT_BINARY_DIR}")
-
-include(conanbuildinfo OPTIONAL RESULT_VARIABLE USE_CONAN )
-if( USE_CONAN )
-    set( USE_CONAN ON )
-    set( USE_AUTOBUILD_3P OFF )
-    conan_basic_setup(TARGETS NO_OUTPUT_DIRS)
-    add_compile_definitions(LL_USESYSTEMLIBS USE_CONAN NO_AUTOBUILD_3P)
-else()
-  set( USE_CONAN OFF )
-  set( USE_AUTOBUILD_3P ON )
-endif()
-
 # The viewer code base can now be successfully compiled with -std=c++14. But
 # turning that on in the generic viewer-build-variables/variables file would
 # potentially require tweaking each of our ~50 third-party library builds.
@@ -41,10 +37,28 @@ endif()
 if(MSVC)
   set(CMAKE_CXX_STANDARD 20)
 else()
+  set(CMAKE_OBJCXX_STANDARD 17)
   set(CMAKE_CXX_STANDARD 17)
 endif()
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
+if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+  enable_language(OBJCXX)
+endif()
+
+set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake"  "${CMAKE_CURRENT_BINARY_DIR}")
+
+include(conanbuildinfo OPTIONAL RESULT_VARIABLE USE_CONAN )
+if( USE_CONAN )
+    set( USE_CONAN ON )
+    set( USE_AUTOBUILD_3P OFF )
+    conan_basic_setup(TARGETS NO_OUTPUT_DIRS)
+    add_compile_definitions(LL_USESYSTEMLIBS USE_CONAN NO_AUTOBUILD_3P)
+else()
+  set( USE_CONAN OFF )
+  set( USE_AUTOBUILD_3P ON )
+endif()
+
 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 
 if (NOT CMAKE_BUILD_TYPE)
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index c7c9d56ec07e884bbab10dcf44ec6b2670bc8d6c..d46f04b5fc03bcb0c66db3e50d46555d58f2ee9a 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -59,6 +59,11 @@ if(USE_LTO)
   set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ${USE_LTO})
 endif()
 
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+set(CMAKE_C_VISIBILITY_PRESET "hidden")
+set(CMAKE_CXX_VISIBILITY_PRESET "hidden")
+set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
+
 # Platform-specific compilation flags.
 if (WINDOWS)
   # Don't build DLLs.
@@ -166,9 +171,6 @@ endif (WINDOWS)
 
 if (LINUX)
   set(CMAKE_SKIP_BUILD_RPATH TRUE)
-  set(CMAKE_POSITION_INDEPENDENT_CODE ON)
-  set(CMAKE_C_VISIBILITY_PRESET "hidden")
-  set(CMAKE_CXX_VISIBILITY_PRESET "hidden")
 
   add_compile_definitions(
     LL_LINUX=1
@@ -229,16 +231,24 @@ endif ()
 
 if (DARWIN)
   add_compile_definitions(LL_DARWIN=1 GL_SILENCE_DEPRECATION=1)
-  add_link_options("LINKER:-headerpad_max_install_names" "LINKER:-search_paths_first")
-  add_compile_options(-O3 -gdwarf-2)
+  add_link_options("LINKER:-headerpad_max_install_names" "LINKER:-search_paths_first" "LINKER:-dead_strip")
+  add_compile_options(
+    -O3
+    -ffast-math
+    -gdwarf-2
+    -fno-strict-aliasing
+    -msse4.2
+    $<$<COMPILE_LANGUAGE:OBJCXX>:-fobjc-arc> 
+    $<$<COMPILE_LANGUAGE:OBJCXX>:-fobjc-weak>
+    )
 endif ()
 
 if (LINUX OR DARWIN)
   add_compile_options(-Wall -Wno-sign-compare -Wno-reorder)
-  if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+  if (${CMAKE_CXX_COMPILER_ID} STREQUAL GNU)
     add_compile_options(-Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-ignored-qualifiers -Wno-unused-function)
-  elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
-    add_compile_options(-Wno-trigraphs -Wno-unused-local-typedef -Wno-unknown-warning-option)
+  elseif (${CMAKE_CXX_COMPILER_ID} MATCHES Clang)
+    add_compile_options(-Wno-trigraphs -Wno-unused-local-typedef -Wno-unknown-warning-option -Wno-shorten-64-to-32)
   endif()
 
   CHECK_CXX_COMPILER_FLAG(-Wdeprecated-copy HAS_DEPRECATED_COPY)
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
index be22b4a33fc4af4cd54168eb922cb61014b9957a..8670b8d94f9ef0bccf39b1bec0b44926a62fab4e 100644
--- a/indra/cmake/Linking.cmake
+++ b/indra/cmake/Linking.cmake
@@ -34,8 +34,10 @@ endif ()
 # that CMAKE_BUILD_TYPE is essentially meaningless at configuration time for IDE generators and
 # CMAKE_CFG_INTDIR is meaningless at build time for Makefile generators
 
-link_directories(${LIBS_PREBUILT_DIR}/lib/$<LOWER_CASE:$<CONFIG>>)
-link_directories(${LIBS_PREBUILT_DIR}/lib/release)
+link_directories(
+    ${LIBS_PREBUILT_DIR}/lib/$<IF:$<NOT:$<BOOL:${LL_GENERATOR_IS_MULTI_CONFIG}>>,$<LOWER_CASE:$<CONFIG>>,>
+    $<$<NOT:$<CONFIG:Release>>:${LIBS_PREBUILT_DIR}/lib/release>
+)
 
 add_library( ll::oslibraries INTERFACE IMPORTED )
 
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index 81f91da21c9664a3998a55d32e4dd1ab758a8abc..bd2731d6cc4ea4861bd2ef22d8d7c25c621f3f60 100644
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -165,28 +165,15 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
   if (XCODE_VERSION LESS 12.0.0)
     message( FATAL_ERROR "Xcode 12.0.0 or greater is required." )
   endif ()
-  message( "Building with " ${CMAKE_OSX_SYSROOT} )
+  message( STATUS "Building with " ${CMAKE_OSX_SYSROOT} )
   set(CMAKE_OSX_DEPLOYMENT_TARGET 10.15)
 
-  set(CMAKE_XCODE_ATTRIBUTE_GCC_OPTIMIZATION_LEVEL 3)
-  set(CMAKE_XCODE_ATTRIBUTE_GCC_FAST_MATH NO)
-  set(CMAKE_XCODE_ATTRIBUTE_GCC_STRICT_ALIASING NO)
-  set(CMAKE_XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN YES)
-
   set(CMAKE_XCODE_ATTRIBUTE_GCC_GENERATE_DEBUGGING_SYMBOLS YES)
   if(FULL_DEBUG_SYMS OR USE_SENTRY)
     set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf-with-dsym)
   else()
     set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf)
   endif()
-  set(CMAKE_XCODE_ATTRIBUTE_DEAD_CODE_STRIPPING YES)
-
-  set(CMAKE_XCODE_ATTRIBUTE_CLANG_X86_VECTOR_INSTRUCTIONS sse4.2)
-
-  # C++ specifics
-  set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++17")
-  set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
-
   # Obj-C
   set(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES)
   set(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_WEAK YES)
@@ -196,14 +183,6 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
   set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED NO)
   set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "")
   set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "")
-
-  set(CMAKE_XCODE_ATTRIBUTE_CLANG_WARN_RANGE_LOOP_ANALYSIS YES)
-  set(CMAKE_XCODE_ATTRIBUTE_CLANG_WARN_STRICT_PROTOTYPES YES)
-  set(CMAKE_XCODE_ATTRIBUTE_CLANG_WARN_SUSPICIOUS_MOVE YES)
-  set(CMAKE_XCODE_ATTRIBUTE_GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS YES)
-  set(CMAKE_XCODE_ATTRIBUTE_GCC_WARN_NON_VIRTUAL_DESTRUCTOR YES)
-  set(CMAKE_XCODE_ATTRIBUTE_GCC_WARN_UNINITIALIZED_AUTOS YES)
-  set(CMAKE_XCODE_ATTRIBUTE_GCC_WARN_64_TO_32_BIT_CONVERSION NO)
   
   set(CMAKE_XCODE_ATTRIBUTE_DISABLE_MANUAL_TARGET_ORDER_BUILD_WARNING YES)
 
diff --git a/indra/cmake/WebP.cmake b/indra/cmake/WebP.cmake
index 44309ad0781b653d5203639783daa9019bdb6088..8042619c4905b4bf2310ba78fc49fe0c96c111c4 100644
--- a/indra/cmake/WebP.cmake
+++ b/indra/cmake/WebP.cmake
@@ -15,7 +15,12 @@ if(WINDOWS)
     optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libwebp.lib
     )
 else()
-  target_link_libraries( ll::libwebp INTERFACE webp)
+  target_link_libraries( ll::libwebp INTERFACE 
+    debug ${ARCH_PREBUILT_DIRS_DEBUG}/libwebp.a
+    optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libwebp.a
+    debug ${ARCH_PREBUILT_DIRS_DEBUG}/libsharpyuv.a
+    optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libsharpyuv.a
+    )
 endif()
   
 target_include_directories( ll::libwebp SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/webp)
diff --git a/indra/llui/llflyoutbutton.h b/indra/llui/llflyoutbutton.h
index a7e14ea64c3c6f1f1eec3edbf611e89edb3a6225..e080367162a33bd1f34ff6159b2e369f6c79177b 100644
--- a/indra/llui/llflyoutbutton.h
+++ b/indra/llui/llflyoutbutton.h
@@ -60,7 +60,7 @@ class LLFlyoutButton : public LLComboBox
 	LLFlyoutButton(const Params&);
 	friend class LLUICtrlFactory;
 public:
-	virtual void	draw();
+	virtual void	draw() override;
 // [SL:KB] - Patch: Control-FlyoutButton | Checked: Catznip-6.4
 	        void	setLabel(const LLStringExplicit& name) override;
 			void    updateLabel() override;
diff --git a/indra/llui/llscrolllistcell.h b/indra/llui/llscrolllistcell.h
index 1dd3d2bf7cbeb359ae765abf12d20509ce936139..38c7c3c74c5e33d4a6bb69a3a6f0789cba79aafc 100644
--- a/indra/llui/llscrolllistcell.h
+++ b/indra/llui/llscrolllistcell.h
@@ -188,12 +188,12 @@ class LLScrollListIcon : public LLScrollListCell
 public:
 	LLScrollListIcon(const LLScrollListCell::Params& p);
 	/*virtual*/ ~LLScrollListIcon() = default;
-	/*virtual*/ void	draw(const LLColor4& color, const LLColor4& highlight_color) const;
-	/*virtual*/ S32		getWidth() const;
-	/*virtual*/ S32		getHeight() const;
-	/*virtual*/ const LLSD		getValue() const;
-	/*virtual*/ void	setColor(const LLColor4&);
-	/*virtual*/ void	setValue(const LLSD& value);
+	/*virtual*/ void	draw(const LLColor4& color, const LLColor4& highlight_color) const override;
+	/*virtual*/ S32		getWidth() const override;
+	/*virtual*/ S32		getHeight() const override;
+	/*virtual*/ const LLSD		getValue() const override;
+	/*virtual*/ void	setColor(const LLColor4&) override;
+	/*virtual*/ void	setValue(const LLSD& value) override;
 
 	void setClickCallback(BOOL (*callback)(void*), void* user_data);
 	BOOL handleClick() override;
diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt
index 249d8b3ed992c22c1dac482a9d721aae971a1c7f..3008bc9619bd70e32d434b7568afcc3a1f1c518d 100644
--- a/indra/llwindow/CMakeLists.txt
+++ b/indra/llwindow/CMakeLists.txt
@@ -104,9 +104,7 @@ if (DARWIN)
     llappdelegate-objc.h
     )
 
-    set_source_files_properties(llwindowmacosx-objc.mm
-                                PROPERTIES SKIP_PRECOMPILE_HEADERS TRUE)
-    set_source_files_properties(llopenglview-objc.mm
+    set_source_files_properties(llopenglview-objc.mm llwindowmacosx-objc.mm
                                 PROPERTIES SKIP_PRECOMPILE_HEADERS TRUE)
 endif (DARWIN)
 
diff --git a/indra/newview/fslslpreproc.cpp b/indra/newview/fslslpreproc.cpp
index e57ea91be725ab89fa094ae4021471fcd78cee95..b25f59b522ac70127245592f4850a8ab88f63360 100644
--- a/indra/newview/fslslpreproc.cpp
+++ b/indra/newview/fslslpreproc.cpp
@@ -472,7 +472,7 @@ std::string FSLSLPreprocessor::lslcomp(std::string script)
 		display_error(err);
 		throw;
 	}
-	catch (std::exception& e)
+	catch (const std::exception& e)
 	{
 		LLStringUtil::format_map_t args;
 		args["[WHAT]"] = e.what();
@@ -490,7 +490,7 @@ struct ProcCacheInfo
 	FSLSLPreprocessor* self;
 };
 
-class trace_include_files : public boost::wave::context_policies::default_preprocessing_hooks
+struct trace_include_files : public boost::wave::context_policies::default_preprocessing_hooks
 {
 public:
 	trace_include_files(FSLSLPreprocessor* proc)