From: Rylie Pavlik <rylie@ryliepavlik.com>
Date: Mon, 30 Nov 2020 12:59:13 -0600
Subject: u3d: Use system zlib, jpeg, png

Forwarded: no
---
 src/external/u3d/CMakeLists.txt | 159 ++--------------------------------------
 1 file changed, 8 insertions(+), 151 deletions(-)

diff --git a/src/external/u3d/CMakeLists.txt b/src/external/u3d/CMakeLists.txt
index 84c6e51..f9edfaa 100644
--- a/src/external/u3d/CMakeLists.txt
+++ b/src/external/u3d/CMakeLists.txt
@@ -51,57 +51,11 @@ if(NOT HAVE_FSEEKO)
 	add_definitions(-DNO_FSEEKO)
 endif()
 
-#
-# Check for unistd.h
-#
-check_include_file(unistd.h Z_HAVE_UNISTD_H)
-
 if(MSVC)
 	add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
 	add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
 endif()
 
-SET(ZLIB_SOURCE_DIR ${U3D_DIR}/src/RTL/Dependencies/zlib)
-#configure_file(${ZLIB_SOURCE_DIR}/zconf.h.cmakein
-#			   ${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY)
-#include_directories(${CMAKE_CURRENT_BINARY_DIR})
-include_directories(${ZLIB_SOURCE_DIR})
-
-set(ZLIB_PUBLIC_HDRS
-	${ZLIB_SOURCE_DIR}/zconf.h
-	${ZLIB_SOURCE_DIR}/zlib.h
-)
-set(ZLIB_PRIVATE_HDRS
-	${ZLIB_SOURCE_DIR}/zconf.h
-	${ZLIB_SOURCE_DIR}/crc32.h
-	${ZLIB_SOURCE_DIR}/deflate.h
-	${ZLIB_SOURCE_DIR}/gzguts.h
-	${ZLIB_SOURCE_DIR}/inffast.h
-	${ZLIB_SOURCE_DIR}/inffixed.h
-	${ZLIB_SOURCE_DIR}/inflate.h
-	${ZLIB_SOURCE_DIR}/inftrees.h
-	${ZLIB_SOURCE_DIR}/trees.h
-	${ZLIB_SOURCE_DIR}/zutil.h
-)
-set(ZLIB_SRCS
-	${ZLIB_SOURCE_DIR}/adler32.c
-	${ZLIB_SOURCE_DIR}/compress.c
-	${ZLIB_SOURCE_DIR}/crc32.c
-	${ZLIB_SOURCE_DIR}/deflate.c
-	${ZLIB_SOURCE_DIR}/gzclose.c
-	${ZLIB_SOURCE_DIR}/gzlib.c
-	${ZLIB_SOURCE_DIR}/gzread.c
-	${ZLIB_SOURCE_DIR}/gzwrite.c
-	${ZLIB_SOURCE_DIR}/inflate.c
-	${ZLIB_SOURCE_DIR}/infback.c
-	${ZLIB_SOURCE_DIR}/inftrees.c
-	${ZLIB_SOURCE_DIR}/inffast.c
-	${ZLIB_SOURCE_DIR}/trees.c
-	${ZLIB_SOURCE_DIR}/uncompr.c
-	${ZLIB_SOURCE_DIR}/zutil.c
-)
-
-
 #============================================================================
 # png
 #============================================================================
@@ -119,126 +73,28 @@ else()
 	set(M_LIBRARY "")
 endif()
 
-set(PNG_SOURCE_DIR ${U3D_DIR}/src/RTL/Dependencies/png)
-#include_directories(${CMAKE_CURRENT_BINARY_DIR})
+find_package(PNG REQUIRED)
 
-# OUR SOURCES
-set(libpng_public_hdrs
-	${PNG_SOURCE_DIR}/png.h
-	${PNG_SOURCE_DIR}/pngconf.h
-	${PNG_SOURCE_DIR}/pnglibconf.h
-)
-set(libpng_sources
-	${libpng_public_hdrs}
-	${PNG_SOURCE_DIR}/pngdebug.h
-	${PNG_SOURCE_DIR}/pnginfo.h
-	${PNG_SOURCE_DIR}/pngpriv.h
-	${PNG_SOURCE_DIR}/pngstruct.h
-	${PNG_SOURCE_DIR}/png.c
-	${PNG_SOURCE_DIR}/pngerror.c
-	${PNG_SOURCE_DIR}/pngget.c
-	${PNG_SOURCE_DIR}/pngmem.c
-	${PNG_SOURCE_DIR}/pngpread.c
-	${PNG_SOURCE_DIR}/pngread.c
-	${PNG_SOURCE_DIR}/pngrio.c
-	${PNG_SOURCE_DIR}/pngrtran.c
-	${PNG_SOURCE_DIR}/pngrutil.c
-	${PNG_SOURCE_DIR}/pngset.c
-	${PNG_SOURCE_DIR}/pngtrans.c
-	${PNG_SOURCE_DIR}/pngwio.c
-	${PNG_SOURCE_DIR}/pngwrite.c
-	${PNG_SOURCE_DIR}/pngwtran.c
-	${PNG_SOURCE_DIR}/pngwutil.c
-)
 # SOME NEEDED DEFINITIONS
 
 if(MSVC)
 	add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
 endif(MSVC)
 
-set(ADDITIONAL_LIBRARIES ${ADDITIONAL_LIBRARIES} ${M_LIBRARY})
-include_directories(${PNG_SOURCE_DIR})
+set(ADDITIONAL_LIBRARIES ${ADDITIONAL_LIBRARIES} ${M_LIBRARY} PNG::PNG)
 
 CHECK_INCLUDE_FILE(stdlib.h HAVE_STDLIB_H)
 
-set(JPEG_SOURCE_DIR ${U3D_DIR}/src/RTL/Dependencies/jpeg)
-#configure_file(${JPEG_SOURCE_DIR}/jconfig.h.cmake
-#			   ${CMAKE_CURRENT_BINARY_DIR}/jconfig.h)
-include_directories(${CMAKE_CURRENT_BINARY_DIR})
-include_directories(${JPEG_SOURCE_DIR})
+find_package(JPEG REQUIRED)
+include_directories(${JPEG_INCLUDE_DIR})
 
 if(MSVC)
 	add_definitions(-D_CRT_SECURE_NO_WARNINGS)
 endif()
 
-set(JPEG_PUBLIC_HDRS
-	${JPEG_SOURCE_DIR}/jconfig.h
-	${JPEG_SOURCE_DIR}/jerror.h
-	${JPEG_SOURCE_DIR}/jmorecfg.h
-	${JPEG_SOURCE_DIR}/jpeglib.h
-	${JPEG_SOURCE_DIR}/jconfig.h
-)
-set(JPEG_PRIVATE_HDRS
-	${JPEG_SOURCE_DIR}/cderror.h
-	${JPEG_SOURCE_DIR}/jdct.h
-	${JPEG_SOURCE_DIR}/jinclude.h
-	${JPEG_SOURCE_DIR}/jmemsys.h
-	${JPEG_SOURCE_DIR}/jpegint.h
-	${JPEG_SOURCE_DIR}/jversion.h
-	${JPEG_SOURCE_DIR}/transupp.h
-)
-
-# memmgr back ends: compile only one of these into a working library
-# (For now, let's use the mode that requires the image fit into memory.
-# This is the recommended mode for Win32 anyway.)
-SET(JPEG_systemdependent_SRCS ${JPEG_SOURCE_DIR}/jmemnobs.c)
-
-set(JPEG_SRCS
-	${JPEG_SOURCE_DIR}/jaricom.c
-	${JPEG_SOURCE_DIR}/jcapimin.c
-	${JPEG_SOURCE_DIR}/jcapistd.c
-	${JPEG_SOURCE_DIR}/jcarith.c
-	${JPEG_SOURCE_DIR}/jccoefct.c
-	${JPEG_SOURCE_DIR}/jccolor.c
-	${JPEG_SOURCE_DIR}/jcdctmgr.c
-	${JPEG_SOURCE_DIR}/jchuff.c
-	${JPEG_SOURCE_DIR}/jcinit.c
-	${JPEG_SOURCE_DIR}/jcmainct.c
-	${JPEG_SOURCE_DIR}/jcmarker.c
-	${JPEG_SOURCE_DIR}/jcmaster.c
-	${JPEG_SOURCE_DIR}/jcomapi.c
-	${JPEG_SOURCE_DIR}/jcparam.c
-	${JPEG_SOURCE_DIR}/jcprepct.c
-	${JPEG_SOURCE_DIR}/jcsample.c
-	${JPEG_SOURCE_DIR}/jctrans.c
-	${JPEG_SOURCE_DIR}/jdapimin.c
-	${JPEG_SOURCE_DIR}/jdapistd.c
-	${JPEG_SOURCE_DIR}/jdarith.c
-	${JPEG_SOURCE_DIR}/jdatadst.c
-	${JPEG_SOURCE_DIR}/jdatasrc.c
-	${JPEG_SOURCE_DIR}/jdcoefct.c
-	${JPEG_SOURCE_DIR}/jdcolor.c
-	${JPEG_SOURCE_DIR}/jddctmgr.c
-	${JPEG_SOURCE_DIR}/jdhuff.c
-	${JPEG_SOURCE_DIR}/jdinput.c
-	${JPEG_SOURCE_DIR}/jdmainct.c
-	${JPEG_SOURCE_DIR}/jdmarker.c
-	${JPEG_SOURCE_DIR}/jdmaster.c
-	${JPEG_SOURCE_DIR}/jdmerge.c
-	${JPEG_SOURCE_DIR}/jdpostct.c
-	${JPEG_SOURCE_DIR}/jdsample.c
-	${JPEG_SOURCE_DIR}/jdtrans.c
-	${JPEG_SOURCE_DIR}/jerror.c
-	${JPEG_SOURCE_DIR}/jfdctflt.c
-	${JPEG_SOURCE_DIR}/jfdctfst.c
-	${JPEG_SOURCE_DIR}/jfdctint.c
-	${JPEG_SOURCE_DIR}/jidctflt.c
-	${JPEG_SOURCE_DIR}/jidctfst.c
-	${JPEG_SOURCE_DIR}/jidctint.c
-	${JPEG_SOURCE_DIR}/jquant1.c
-	${JPEG_SOURCE_DIR}/jquant2.c
-	${JPEG_SOURCE_DIR}/jutils.c
-	${JPEG_SOURCE_DIR}/jmemmgr.c)
+set(DEPENDENCIES_LIBS
+	ZLIB::ZLIB
+	${JPEG_LIBRARY})
 
 SET(DEPENDENCIES_SRCS
 	${ZLIB_SRCS}
@@ -1063,6 +919,7 @@ IF(UNIX AND NOT APPLE)
 	target_link_libraries( IFXCore ${CMAKE_DL_LIBS} )
 ENDIF(UNIX AND NOT APPLE)
 TARGET_LINK_LIBRARIES( IFXCore ${ADDITIONAL_LIBRARIES} )
+target_link_libraries(IFXCore ${DEPENDENCIES_LIBS})
 target_compile_options(IFXCore PRIVATE -w)
 
 
