aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/zlib
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/zlib')
-rw-r--r--vcpkg/ports/zlib/0001-Prevent-invalid-inclusions-when-HAVE_-is-set-to-0.patch53
-rw-r--r--vcpkg/ports/zlib/0002-build-static-or-shared-not-both.patch54
-rw-r--r--vcpkg/ports/zlib/0003-android-and-mingw-fixes.patch30
-rw-r--r--vcpkg/ports/zlib/portfile.cmake53
-rw-r--r--vcpkg/ports/zlib/usage4
-rw-r--r--vcpkg/ports/zlib/vcpkg-cmake-wrapper.cmake12
-rw-r--r--vcpkg/ports/zlib/vcpkg.json13
7 files changed, 219 insertions, 0 deletions
diff --git a/vcpkg/ports/zlib/0001-Prevent-invalid-inclusions-when-HAVE_-is-set-to-0.patch b/vcpkg/ports/zlib/0001-Prevent-invalid-inclusions-when-HAVE_-is-set-to-0.patch
new file mode 100644
index 0000000..8fe2b2f
--- /dev/null
+++ b/vcpkg/ports/zlib/0001-Prevent-invalid-inclusions-when-HAVE_-is-set-to-0.patch
@@ -0,0 +1,53 @@
+diff --git a/zconf.h.cmakein b/zconf.h.cmakein
+index a7f24cc..a1b359b 100644
+--- a/zconf.h.cmakein
++++ b/zconf.h.cmakein
+@@ -434,11 +434,19 @@ typedef uLong FAR uLongf;
+ #endif
+
+ #ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */
+-# define Z_HAVE_UNISTD_H
++# if ~(~HAVE_UNISTD_H + 0) == 0 && ~(~HAVE_UNISTD_H + 1) == 1
++# define Z_HAVE_UNISTD_H
++# elif HAVE_UNISTD_H != 0
++# define Z_HAVE_UNISTD_H
++# endif
+ #endif
+
+ #ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */
+-# define Z_HAVE_STDARG_H
++# if ~(~HAVE_STDARG_H + 0) == 0 && ~(~HAVE_STDARG_H + 1) == 1
++# define Z_HAVE_STDARG_H
++# elif HAVE_STDARG_H != 0
++# define Z_HAVE_STDARG_H
++# endif
+ #endif
+
+ #ifdef STDC
+diff --git a/zconf.h.in b/zconf.h.in
+index 5e1d68a..32f53c8 100644
+--- a/zconf.h.in
++++ b/zconf.h.in
+@@ -432,11 +432,19 @@ typedef uLong FAR uLongf;
+ #endif
+
+ #ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */
+-# define Z_HAVE_UNISTD_H
++# if ~(~HAVE_UNISTD_H + 0) == 0 && ~(~HAVE_UNISTD_H + 1) == 1
++# define Z_HAVE_UNISTD_H
++# elif HAVE_UNISTD_H != 0
++# define Z_HAVE_UNISTD_H
++# endif
+ #endif
+
+ #ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */
+-# define Z_HAVE_STDARG_H
++# if ~(~HAVE_STDARG_H + 0) == 0 && ~(~HAVE_STDARG_H + 1) == 1
++# define Z_HAVE_STDARG_H
++# elif HAVE_STDARG_H != 0
++# define Z_HAVE_STDARG_H
++# endif
+ #endif
+
+ #ifdef STDC
+
diff --git a/vcpkg/ports/zlib/0002-build-static-or-shared-not-both.patch b/vcpkg/ports/zlib/0002-build-static-or-shared-not-both.patch
new file mode 100644
index 0000000..60e3f8d
--- /dev/null
+++ b/vcpkg/ports/zlib/0002-build-static-or-shared-not-both.patch
@@ -0,0 +1,54 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -123,9 +123,11 @@ set(ZLIB_SRCS
+ )
+
+ if(NOT MINGW)
++ if(BUILD_SHARED_LIBS)
+ set(ZLIB_DLL_SRCS
+ win32/zlib1.rc # If present will override custom build rule below.
+ )
++ endif()
+ endif()
+
+ # parse the full version number from zlib.h and include in ZLIB_FULL_VERSION
+@@ -146,15 +148,17 @@ if(MINGW)
+ -I ${CMAKE_CURRENT_BINARY_DIR}
+ -o ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj
+ -i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zlib1.rc)
++ if(BUILD_SHARED_LIBS)
+ set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj)
++ endif()
+ endif(MINGW)
+
+-add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
++add_library(zlib ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
+ target_include_directories(zlib PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
+-add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
+-target_include_directories(zlibstatic PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
++if (BUILD_SHARED_LIBS)
+ set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL)
+ set_target_properties(zlib PROPERTIES SOVERSION 1)
++endif()
+
+ if(NOT CYGWIN)
+ # This property causes shared libraries on Linux to have the full version
+@@ -169,7 +173,7 @@ endif()
+
+ if(UNIX)
+ # On unix-like platforms the library is almost always called libz
+- set_target_properties(zlib zlibstatic PROPERTIES OUTPUT_NAME z)
++ set_target_properties(zlib PROPERTIES OUTPUT_NAME z)
+ if(NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX))
+ set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"")
+ endif()
+@@ -179,7 +183,7 @@ elseif(BUILD_SHARED_LIBS AND WIN32)
+ endif()
+
+ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
+- install(TARGETS zlib zlibstatic
++ install(TARGETS zlib
+ RUNTIME DESTINATION "${INSTALL_BIN_DIR}"
+ ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
+ LIBRARY DESTINATION "${INSTALL_LIB_DIR}" )
diff --git a/vcpkg/ports/zlib/0003-android-and-mingw-fixes.patch b/vcpkg/ports/zlib/0003-android-and-mingw-fixes.patch
new file mode 100644
index 0000000..a051372
--- /dev/null
+++ b/vcpkg/ports/zlib/0003-android-and-mingw-fixes.patch
@@ -0,0 +1,30 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -58,7 +58,7 @@ endif()
+ #
+ check_include_file(unistd.h Z_HAVE_UNISTD_H)
+
+-if(MSVC)
++if(WIN32)
+ set(CMAKE_DEBUG_POSTFIX "d")
+ add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
+ add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
+@@ -135,7 +135,7 @@ file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents)
+ string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*"
+ "\\1" ZLIB_FULL_VERSION ${_zlib_h_contents})
+
+-if(MINGW)
++if(MINGW AND NOT ANDROID)
+ # This gets us DLL resource information when compiling on MinGW.
+ if(NOT CMAKE_RC_COMPILER)
+ set(CMAKE_RC_COMPILER windres.exe)
+@@ -151,7 +151,7 @@ if(MINGW)
+ if(BUILD_SHARED_LIBS)
+ set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj)
+ endif()
+-endif(MINGW)
++endif(MINGW AND NOT ANDROID)
+
+ add_library(zlib ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
+ target_include_directories(zlib PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
diff --git a/vcpkg/ports/zlib/portfile.cmake b/vcpkg/ports/zlib/portfile.cmake
new file mode 100644
index 0000000..61733a4
--- /dev/null
+++ b/vcpkg/ports/zlib/portfile.cmake
@@ -0,0 +1,53 @@
+# When this port is updated, the minizip port should be updated at the same time
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO madler/zlib
+ REF v${VERSION}
+ SHA512 8c9642495bafd6fad4ab9fb67f09b268c69ff9af0f4f20cf15dfc18852ff1f312bd8ca41de761b3f8d8e90e77d79f2ccacd3d4c5b19e475ecf09d021fdfe9088
+ HEAD_REF master
+ PATCHES
+ 0001-Prevent-invalid-inclusions-when-HAVE_-is-set-to-0.patch
+ 0002-build-static-or-shared-not-both.patch
+ 0003-android-and-mingw-fixes.patch
+)
+
+# This is generated during the cmake build
+file(REMOVE "${SOURCE_PATH}/zconf.h")
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DSKIP_INSTALL_FILES=ON
+ -DZLIB_BUILD_EXAMPLES=OFF
+ OPTIONS_DEBUG
+ -DSKIP_INSTALL_HEADERS=ON
+)
+
+vcpkg_cmake_install()
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+
+# Install the pkgconfig file
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ if(VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/zlib.pc" "-lz" "-lzlib")
+ endif()
+ file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/zlib.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/pkgconfig")
+endif()
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ if(VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/zlib.pc" "-lz" "-lzlibd")
+ endif()
+ file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/zlib.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig")
+endif()
+
+vcpkg_fixup_pkgconfig()
+vcpkg_copy_pdbs()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/zconf.h" "ifdef ZLIB_DLL" "if 0")
+else()
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/zconf.h" "ifdef ZLIB_DLL" "if 1")
+endif()
+
+file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
diff --git a/vcpkg/ports/zlib/usage b/vcpkg/ports/zlib/usage
new file mode 100644
index 0000000..39d8618
--- /dev/null
+++ b/vcpkg/ports/zlib/usage
@@ -0,0 +1,4 @@
+The package zlib is compatible with built-in CMake targets:
+
+ find_package(ZLIB REQUIRED)
+ target_link_libraries(main PRIVATE ZLIB::ZLIB)
diff --git a/vcpkg/ports/zlib/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/zlib/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 0000000..8624b70
--- /dev/null
+++ b/vcpkg/ports/zlib/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,12 @@
+find_path(ZLIB_INCLUDE_DIR NAMES zlib.h PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" NO_DEFAULT_PATH)
+find_library(ZLIB_LIBRARY_RELEASE NAMES zlib z PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH)
+find_library(ZLIB_LIBRARY_DEBUG NAMES zlibd z PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH)
+if(NOT ZLIB_INCLUDE_DIR OR NOT (ZLIB_LIBRARY_RELEASE OR ZLIB_LIBRARY_DEBUG))
+ message(FATAL_ERROR "Broken installation of vcpkg port zlib")
+endif()
+if(CMAKE_VERSION VERSION_LESS 3.4)
+ include(SelectLibraryConfigurations)
+ select_library_configurations(ZLIB)
+ unset(ZLIB_FOUND)
+endif()
+_find_package(${ARGS})
diff --git a/vcpkg/ports/zlib/vcpkg.json b/vcpkg/ports/zlib/vcpkg.json
new file mode 100644
index 0000000..f54a99d
--- /dev/null
+++ b/vcpkg/ports/zlib/vcpkg.json
@@ -0,0 +1,13 @@
+{
+ "name": "zlib",
+ "version": "1.3.1",
+ "description": "A compression library",
+ "homepage": "https://www.zlib.net/",
+ "license": "Zlib",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ }
+ ]
+}