summaryrefslogtreecommitdiff
path: root/indra/cmake/ZLIBNG.cmake
diff options
context:
space:
mode:
authorAndrey Lihatskiy <alihatskiy@productengine.com>2022-06-29 20:31:17 +0300
committerAndrey Lihatskiy <alihatskiy@productengine.com>2022-06-29 20:31:17 +0300
commit77ce594dec86eacadb39abf56c69d03b6f421a59 (patch)
tree206d5ffc8e7e275929d3dbbe0ef4fd098c8d7ca0 /indra/cmake/ZLIBNG.cmake
parent192e7284aa7275f1b4e37bfd639bf317182bb5e2 (diff)
parent1e4f2ec07e32a142f35817d3186a124df3f8cd25 (diff)
Merge branch 'master' into DRTVWR-544-maint
Diffstat (limited to 'indra/cmake/ZLIBNG.cmake')
-rw-r--r--indra/cmake/ZLIBNG.cmake35
1 files changed, 35 insertions, 0 deletions
diff --git a/indra/cmake/ZLIBNG.cmake b/indra/cmake/ZLIBNG.cmake
new file mode 100644
index 0000000000..1f46a23d92
--- /dev/null
+++ b/indra/cmake/ZLIBNG.cmake
@@ -0,0 +1,35 @@
+# -*- cmake -*-
+
+set(ZLIBNG_FIND_QUIETLY ON)
+set(ZLIBNG_FIND_REQUIRED ON)
+
+include(Prebuilt)
+
+if (USESYSTEMLIBS)
+ include(FindZLIBNG)
+else (USESYSTEMLIBS)
+ use_prebuilt_binary(zlib-ng)
+ if (WINDOWS)
+ set(ZLIBNG_LIBRARIES
+ debug zlib
+ optimized zlib)
+ elseif (LINUX)
+ #
+ # When we have updated static libraries in competition with older
+ # shared libraries and we want the former to win, we need to do some
+ # extra work. The *_PRELOAD_ARCHIVES settings are invoked early
+ # and will pull in the entire archive to the binary giving it
+ # priority in symbol resolution. Beware of cmake moving the
+ # achive load itself to another place on the link command line. If
+ # that happens, you can try something like -Wl,-lz here to hide
+ # the archive. Also be aware that the linker will not tolerate a
+ # second whole-archive load of the archive. See viewer's
+ # CMakeLists.txt for more information.
+ #
+ set(ZLIBNG_PRELOAD_ARCHIVES -Wl,--whole-archive z -Wl,--no-whole-archive)
+ set(ZLIBNG_LIBRARIES z)
+ elseif (DARWIN)
+ set(ZLIBNG_LIBRARIES z)
+ endif (WINDOWS)
+ set(ZLIBNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/zlib-ng)
+endif (USESYSTEMLIBS)