This repository has been archived by the owner on Jul 19, 2024. It is now read-only.
forked from microsoft/vcpkg
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[zlib, minizip] Update to 1.2.13, and embed the ZLIB_DLL setting. (mi…
…crosoft#27226) * Don't use external ZLIB_DLL * Update versions * [minizip] Bump to zlib version * Update versions * [libkml] Fix mingw build * [libkml] Modernize * [libkml] Fix minizip dependency * [libkml] No DLL * Update versions * [libkml] Update mingw patch * Update versions * Update versions * [zlib] Update to 1.2.13 This picks up the official fix for CVE-2022-37434. * Cherry pick installing the correct license from microsoft#27242 * Update version database. * More version database. * Also update minizip. * Also guard ZLIB_DLL properties for BUILD_SHARED_LIBS. * Version database. * Fix minizip usage. Co-authored-by: Kai Pastor <dg0yt@darc.de>
- Loading branch information
Showing
19 changed files
with
310 additions
and
148 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
index 028f50a..bb63ffb 100644 | ||
--- a/CMakeLists.txt | ||
+++ b/CMakeLists.txt | ||
@@ -26,6 +26,9 @@ set(LIBKML_DATA_DIR ${CMAKE_SOURCE_DIR}/testdata CACHE "Directory containing te | ||
if(CMAKE_COMPILER_IS_GNUCXX) | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-unused-parameter -pedantic -fno-rtti") | ||
set(TEST_FLAGS "-Wall -Wextra -Wno-unused-parameter -fno-rtti -DGTEST_HAS_RTTI=0") | ||
+if(WIN32) | ||
+ add_definitions(-DUNICODE -D_UNICODE) | ||
+endif() | ||
|
||
else() | ||
if(MSVC) | ||
diff --git a/src/kml/base/file_win32.cc b/src/kml/base/file_win32.cc | ||
index 28ccb36..6ba79cd 100644 | ||
--- a/src/kml/base/file_win32.cc | ||
+++ b/src/kml/base/file_win32.cc | ||
@@ -34,7 +34,9 @@ | ||
#include "kml/base/file.h" | ||
#include <windows.h> | ||
#include <tchar.h> | ||
+#ifndef __MINGW32__ | ||
#include <xstring> | ||
+#endif | ||
#include <algorithm> | ||
|
||
namespace kmlbase { | ||
diff --git a/src/kml/base/string_util.cc b/src/kml/base/string_util.cc | ||
index b3a9654..842f1cd 100644 | ||
--- a/src/kml/base/string_util.cc | ||
+++ b/src/kml/base/string_util.cc | ||
@@ -113,7 +113,7 @@ bool StringEndsWith(const string& str, const string& end) { | ||
} | ||
|
||
bool StringCaseEqual(const string& a, const string& b) { | ||
-#ifdef WIN32 | ||
+#if defined(WIN32) && !defined(__MINGW32__) | ||
# define strncasecmp(s1, s2, n) _strnicmp (s1, s2, n) | ||
#endif | ||
return a.size() == b.size() && strncasecmp(a.data(), b.data(), a.size()) == 0; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
index 9728ead..028f50a 100644 | ||
--- a/CMakeLists.txt | ||
+++ b/CMakeLists.txt | ||
@@ -110,9 +110,9 @@ else() | ||
list(APPEND MINIZIP_DEPENDS ZLIB) | ||
endif() | ||
|
||
-find_package(MiniZip) | ||
+find_package(MINIZIP NAMES minizip REQUIRED) | ||
if(MINIZIP_FOUND) | ||
- include_directories(${MINIZIP_INCLUDE_DIR}) | ||
+ set(MINIZIP_LIBRARY minizip::minizip) | ||
else() | ||
include(External_minizip) | ||
list(APPEND KMLBASE_DEPENDS MINIZIP) | ||
diff --git a/cmake/LibKMLConfig.cmake.in b/cmake/LibKMLConfig.cmake.in | ||
index 3e295f4..97826df 100644 | ||
--- a/cmake/LibKMLConfig.cmake.in | ||
+++ b/cmake/LibKMLConfig.cmake.in | ||
@@ -1,3 +1,6 @@ | ||
+include(CMakeFindDependencyMacro) | ||
+find_dependency(minizip CONFIG) | ||
+ | ||
# Compute paths | ||
get_filename_component(LIBKML_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) | ||
|
||
diff --git a/src/kml/base/contrib/minizip/iomem_simple.c b/src/kml/base/contrib/minizip/iomem_simple.c | ||
index be89226..6be61d5 100644 | ||
--- a/src/kml/base/contrib/minizip/iomem_simple.c | ||
+++ b/src/kml/base/contrib/minizip/iomem_simple.c | ||
@@ -219,7 +219,7 @@ int ZCALLBACK mem_error (opaque, stream) | ||
return 0; | ||
} | ||
|
||
-ZEXTERN void* ZEXPORT mem_simple_create_file(zlib_filefunc_def* api, void* buffer, size_t buf_len) | ||
+extern void* mem_simple_create_file(zlib_filefunc_def* api, void* buffer, size_t buf_len) | ||
{ | ||
MEMFILE* handle = malloc(sizeof(*handle)); | ||
api->zopen_file = NULL; | ||
diff --git a/src/kml/base/contrib/minizip/iomem_simple.h b/src/kml/base/contrib/minizip/iomem_simple.h | ||
index ec11396..515e24e 100644 | ||
--- a/src/kml/base/contrib/minizip/iomem_simple.h | ||
+++ b/src/kml/base/contrib/minizip/iomem_simple.h | ||
@@ -70,7 +70,7 @@ void fill_fopen_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def)); | ||
* This declaration is from the proposed iomem_simple package found at | ||
* http://code.trak.dk. See iomem_simple.c | ||
*/ | ||
-extern void* ZEXPORT mem_simple_create_file(zlib_filefunc_def* pzlib_filefunc_def, void* buffer, size_t buflen); | ||
+extern void* mem_simple_create_file(zlib_filefunc_def* pzlib_filefunc_def, void* buffer, size_t buflen); | ||
|
||
#ifdef __cplusplus | ||
} | ||
diff --git a/src/kml/base/contrib/minizip/unzip.c b/src/kml/base/contrib/minizip/unzip.c | ||
index a062863..fb69189 100644 | ||
--- a/src/kml/base/contrib/minizip/unzip.c | ||
+++ b/src/kml/base/contrib/minizip/unzip.c | ||
@@ -43,6 +43,14 @@ woven in by Terry Thorsen 1/2003. | ||
#include "unzip.h" | ||
#include "iomem_simple.h" | ||
#undef NOUNCRYPT | ||
+#ifdef ZEXPORT | ||
+# undef ZEXPORT | ||
+#endif | ||
+#define ZEXPORT | ||
+#ifdef ZEXTERN | ||
+# undef ZEXTERN | ||
+#endif | ||
+#define ZEXTERN extern | ||
|
||
#ifdef STDC | ||
# include <stddef.h> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,23 @@ | ||
{ | ||
"name": "libkml", | ||
"version-string": "1.3.0", | ||
"port-version": 8, | ||
"version": "1.3.0", | ||
"port-version": 9, | ||
"description": "Reference implementation of OGC KML 2.2", | ||
"homepage": "https://github.com/libkml/libkml", | ||
"license": "BSD-3-Clause", | ||
"dependencies": [ | ||
"boost-smart-ptr", | ||
"expat", | ||
"minizip", | ||
"uriparser", | ||
{ | ||
"name": "minizip", | ||
"features": [ | ||
"bzip2" | ||
] | ||
"name": "vcpkg-cmake", | ||
"host": true | ||
}, | ||
{ | ||
"name": "vcpkg-cmake-config", | ||
"host": true | ||
}, | ||
"uriparser", | ||
"zlib" | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
minizip provides CMake targets: | ||
|
||
find_package(minizip CONFIG REQUIRED) | ||
target_link_libraries(main PRIVATE minizip::minizip) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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}" ) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.