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-skip-building-examples.patch17
-rw-r--r--vcpkg-ports/zlib/0003-build-static-or-shared-not-both.patch53
-rw-r--r--vcpkg-ports/zlib/0004-android-and-mingw-fixes.patch31
-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
8 files changed, 236 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 00000000..8fe2b2f5
--- /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-skip-building-examples.patch b/vcpkg-ports/zlib/0002-skip-building-examples.patch
new file mode 100644
index 00000000..8183f2ab
--- /dev/null
+++ b/vcpkg-ports/zlib/0002-skip-building-examples.patch
@@ -0,0 +1,17 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b412dc7..f46c8e6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -194,6 +194,7 @@ endif()
+ # Example binaries
+ #============================================================================
+
++if (0)
+ add_executable(example test/example.c)
+ target_link_libraries(example zlib)
+ add_test(example example)
+@@ -211,3 +212,4 @@ if(HAVE_OFF64_T)
+ target_link_libraries(minigzip64 zlib)
+ set_target_properties(minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
+ endif()
++endif()
diff --git a/vcpkg-ports/zlib/0003-build-static-or-shared-not-both.patch b/vcpkg-ports/zlib/0003-build-static-or-shared-not-both.patch
new file mode 100644
index 00000000..c9f2ecf1
--- /dev/null
+++ b/vcpkg-ports/zlib/0003-build-static-or-shared-not-both.patch
@@ -0,0 +1,53 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f46c8e6..6fa5575 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -121,9 +121,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
+@@ -144,13 +146,16 @@ 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(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
++add_library(zlib ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
++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
+@@ -165,7 +170,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)
+ set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"")
+ endif()
+@@ -175,7 +180,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/0004-android-and-mingw-fixes.patch b/vcpkg-ports/zlib/0004-android-and-mingw-fixes.patch
new file mode 100644
index 00000000..e93173f2
--- /dev/null
+++ b/vcpkg-ports/zlib/0004-android-and-mingw-fixes.patch
@@ -0,0 +1,31 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6fa5575..7c345db 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -56,7 +56,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)
+@@ -133,7 +133,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)
+@@ -149,7 +149,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})
+ if (BUILD_SHARED_LIBS)
diff --git a/vcpkg-ports/zlib/portfile.cmake b/vcpkg-ports/zlib/portfile.cmake
new file mode 100644
index 00000000..450cb2c1
--- /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 v1.2.13
+ SHA512 44b834fbfb50cca229209b8dbe1f96b258f19a49f5df23b80970b716371d856a4adf525edb4c6e0e645b180ea949cb90f5365a1d896160f297f56794dd888659
+ HEAD_REF master
+ PATCHES
+ 0001-Prevent-invalid-inclusions-when-HAVE_-is-set-to-0.patch
+ 0002-skip-building-examples.patch
+ 0003-build-static-or-shared-not-both.patch
+ 0004-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
+ 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 00000000..0dfed749
--- /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 00000000..868a4185
--- /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 00000000..7ef1f29d
--- /dev/null
+++ b/vcpkg-ports/zlib/vcpkg.json
@@ -0,0 +1,13 @@
+{
+ "name": "zlib",
+ "version": "1.2.13",
+ "description": "A compression library",
+ "homepage": "https://www.zlib.net/",
+ "license": "Zlib",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ }
+ ]
+}