From a281363c7f4ad444f68ee7e4c6a8bd0c163d7a2f Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Mon, 3 Apr 2023 15:46:47 -0400
Subject: [PATCH] Linux linking cleanup

---
 indra/cmake/Boost.cmake     | 32 ++++++++++++++++----------------
 indra/cmake/LibXML2.cmake   |  5 ++++-
 indra/cmake/NGHTTP2.cmake   | 16 +++++++++++-----
 indra/cmake/OpenSSL.cmake   |  8 +++++++-
 indra/cmake/PNG.cmake       |  5 +++++
 indra/cmake/URIPARSER.cmake |  4 +++-
 indra/cmake/ZLIBNG.cmake    |  9 +++++++--
 7 files changed, 53 insertions(+), 26 deletions(-)

diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index 0e07d2f11c2..dc1885b7593 100644
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -39,22 +39,22 @@ if (WINDOWS)
 	)
 elseif (LINUX)
   target_link_libraries( ll::boost INTERFACE
-        optimized boost_fiber-mt${addrsfx}
-        debug boost_fiber-mt${addrsfx}-d
-        optimized boost_context-mt${addrsfx}
-        debug boost_context-mt${addrsfx}-d
-        optimized boost_filesystem-mt${addrsfx}
-        debug boost_filesystem-mt${addrsfx}-d
-        optimized boost_program_options-mt${addrsfx}
-        debug boost_program_options-mt${addrsfx}-d
-        optimized boost_regex-mt${addrsfx}
-        debug boost_regex-mt${addrsfx}-d
-        optimized boost_thread-mt${addrsfx}
-        debug boost_thread-mt${addrsfx}-d
-        optimized boost_wave-mt${addrsfx}
-        debug boost_wave-mt${addrsfx}-d
-        optimized boost_system-mt${addrsfx}
-        debug boost_system-mt${addrsfx}-d
+        optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_fiber-mt${addrsfx}.a
+        debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_fiber-mt-d${addrsfx}.a
+        optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_context-mt${addrsfx}.a
+        debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_context-mt-d${addrsfx}.a
+        optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_filesystem-mt${addrsfx}.a
+        debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_filesystem-mt-d${addrsfx}.a
+        optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_program_options-mt${addrsfx}.a
+        debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_program_options-mt-d${addrsfx}.a
+        optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_regex-mt${addrsfx}.a
+        debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_regex-mt-d${addrsfx}.a
+        optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_thread-mt${addrsfx}.a
+        debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_thread-mt-d${addrsfx}.a
+        optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_wave-mt${addrsfx}.a
+        debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_wave-mt-d${addrsfx}.a
+        optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_system-mt${addrsfx}.a
+        debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_system-mt-d${addrsfx}.a
         rt
 	)
 elseif (DARWIN)
diff --git a/indra/cmake/LibXML2.cmake b/indra/cmake/LibXML2.cmake
index 47426e7f0ce..d138c74a6f0 100644
--- a/indra/cmake/LibXML2.cmake
+++ b/indra/cmake/LibXML2.cmake
@@ -19,7 +19,10 @@ if (WINDOWS)
 elseif(DARWIN)
     target_link_libraries( ll::libxml2 INTERFACE xml2 iconv)
 else()
-    target_link_libraries( ll::libxml2 INTERFACE xml2)
+    target_link_libraries( ll::libxml2 INTERFACE 
+        debug ${ARCH_PREBUILT_DIRS_DEBUG}/libxml2.a
+        optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libxml2.a
+    )
 endif()
 
 target_include_directories( ll::libxml2 SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/libxml2)
diff --git a/indra/cmake/NGHTTP2.cmake b/indra/cmake/NGHTTP2.cmake
index 3d0279d210f..aa042e5abb6 100644
--- a/indra/cmake/NGHTTP2.cmake
+++ b/indra/cmake/NGHTTP2.cmake
@@ -11,9 +11,15 @@ if (WINDOWS)
       debug ${ARCH_PREBUILT_DIRS_DEBUG}/nghttp2.lib
       optimized ${ARCH_PREBUILT_DIRS_RELEASE}/nghttp2.lib
   )
-elseif (DARWIN)
-  target_link_libraries( ll::nghttp2 INTERFACE libnghttp2.a)
-else (WINDOWS)
-  target_link_libraries( ll::nghttp2 INTERFACE libnghttp2.a )
-endif (WINDOWS)
+elseif (LINUX)
+  target_link_libraries( ll::nghttp2 INTERFACE 
+      debug ${ARCH_PREBUILT_DIRS_DEBUG}/libnghttp2.a
+      optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libnghttp2.a
+  )
+else ()
+  target_link_libraries( ll::nghttp2 INTERFACE 
+      debug ${ARCH_PREBUILT_DIRS_DEBUG}/libnghttp2.a
+      optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libnghttp2.a
+  )
+endif ()
 target_include_directories( ll::nghttp2 SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/nghttp2)
diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake
index 691b2d3169b..bc5b2e15ca4 100644
--- a/indra/cmake/OpenSSL.cmake
+++ b/indra/cmake/OpenSSL.cmake
@@ -15,7 +15,13 @@ if (WINDOWS)
         Crypt32.lib
   )
 elseif (LINUX)
-  target_link_libraries(ll::openssl INTERFACE ssl crypto dl)
+  target_link_libraries(ll::openssl INTERFACE 
+    debug ${ARCH_PREBUILT_DIRS_DEBUG}/libssl.a
+    optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libssl.a
+    debug ${ARCH_PREBUILT_DIRS_DEBUG}/libcrypto.a
+    optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libcrypto.a
+    dl
+  )
 else()
   target_link_libraries(ll::openssl INTERFACE ssl crypto)
 endif (WINDOWS)
diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake
index 4c245d2153d..f9c1ca77f35 100644
--- a/indra/cmake/PNG.cmake
+++ b/indra/cmake/PNG.cmake
@@ -12,6 +12,11 @@ if (WINDOWS)
         debug ${ARCH_PREBUILT_DIRS_DEBUG}/libpng16d.lib
         optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libpng16.lib
         )
+elseif(LINUX)
+  target_link_libraries(ll::libpng INTERFACE
+        debug ${ARCH_PREBUILT_DIRS_DEBUG}/libpng16d.a
+        optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libpng16.a
+        )
 else()
   target_link_libraries(ll::libpng INTERFACE png16 )
 endif()
diff --git a/indra/cmake/URIPARSER.cmake b/indra/cmake/URIPARSER.cmake
index cd5d9e598fb..d4f23507f38 100644
--- a/indra/cmake/URIPARSER.cmake
+++ b/indra/cmake/URIPARSER.cmake
@@ -15,7 +15,9 @@ if (WINDOWS)
         debug ${ARCH_PREBUILT_DIRS_DEBUG}/uriparser.lib
         optimized ${ARCH_PREBUILT_DIRS_RELEASE}/uriparser.lib)
 elseif (LINUX)
-    target_link_libraries( ll::uriparser INTERFACE uriparser)
+    target_link_libraries( ll::uriparser INTERFACE 
+        debug ${ARCH_PREBUILT_DIRS_DEBUG}/liburiparser.a
+        optimized ${ARCH_PREBUILT_DIRS_RELEASE}/liburiparser.a)
 elseif (DARWIN)
     target_link_libraries( ll::uriparser INTERFACE liburiparser.dylib)
 endif (WINDOWS)
diff --git a/indra/cmake/ZLIBNG.cmake b/indra/cmake/ZLIBNG.cmake
index 4564d199d83..acf7fe4e527 100644
--- a/indra/cmake/ZLIBNG.cmake
+++ b/indra/cmake/ZLIBNG.cmake
@@ -16,7 +16,9 @@ if (WINDOWS)
       debug ${ARCH_PREBUILT_DIRS_DEBUG}/zlibd.lib
       optimized ${ARCH_PREBUILT_DIRS_RELEASE}/zlib.lib)
 else()
-  target_link_libraries( ll::zlib-ng INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libz.a)
+  target_link_libraries( ll::zlib-ng INTERFACE 
+      debug ${ARCH_PREBUILT_DIRS_DEBUG}/libz.a
+      optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libz.a)
 endif (WINDOWS)
 
 target_include_directories( ll::zlib-ng SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/zlib)
@@ -35,7 +37,10 @@ if (WINDOWS)
       optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libminizip.lib
       ll::zlib-ng)
 else()
-  target_link_libraries( ll::minizip-ng INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libminizip.a ll::zlib-ng)
+  target_link_libraries( ll::minizip-ng INTERFACE 
+      debug ${ARCH_PREBUILT_DIRS_DEBUG}/libminizip.a 
+      optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libminizip.a 
+      ll::zlib-ng)
 endif (WINDOWS)
 
 target_include_directories( ll::minizip-ng SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/minizip)
-- 
GitLab