[OpenJPEG] Update to 2.5.0 (#24734)

* update openjpeg

* update openjpeg

* add arm patch and license

* reduce to version

* update db

* fix fastcgi to always use make

* remove from baseline

* openjpeg add tools feature

* vdb

* add supports statement. fastcgi uses stuff which only is allowed in desktop apps.

* format manfiest

* ver db

Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
This commit is contained in:
Alexander Neumann 2022-05-19 23:43:34 +02:00 committed by GitHub
parent 12b018e48f
commit 8da5d2b450
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 280 additions and 147 deletions

109
ports/fastcgi/dll.patch Normal file
View File

@ -0,0 +1,109 @@
diff --git a/include/fcgi_stdio.h b/include/fcgi_stdio.h
index 6d242f36f..ec57131ce 100644
--- a/include/fcgi_stdio.h
+++ b/include/fcgi_stdio.h
@@ -23,14 +23,6 @@
extern "C" {
#endif
-#ifndef DLLAPI
-#if defined (_WIN32) && defined (_MSC_VER)
-#define DLLAPI __declspec(dllimport)
-#else
-#define DLLAPI
-#endif
-#endif
-
/*
* Wrapper type for FILE
*/
diff --git a/include/fcgiapp.h b/include/fcgiapp.h
index 8cadde16d..9b034def3 100644
--- a/include/fcgiapp.h
+++ b/include/fcgiapp.h
@@ -23,11 +23,19 @@
#endif
#ifndef DLLAPI
-#if defined (_WIN32) && defined (_MSC_VER)
-#define DLLAPI __declspec(dllimport)
-#else
-#define DLLAPI
-#endif
+# if defined (_WIN32) && defined (_MSC_VER)
+# if defined(DLL_EXPORT) && defined(LIBFCGI_BUILD)
+# define DLLAPI __declspec(dllexport)
+# else
+# ifdef LIBFCGI_DLL_IMPORT
+# define DLLAPI extern __declspec(dllimport)
+# else
+# define DLLAPI
+# endif
+# endif
+# else
+# define DLLAPI
+# endif
#endif
#if defined (c_plusplus) || defined (__cplusplus)
diff --git a/include/fcgio.h b/include/fcgio.h
index ce8b930a8..81981974a 100644
--- a/include/fcgio.h
+++ b/include/fcgio.h
@@ -34,14 +34,6 @@
#include "fcgiapp.h"
-#ifndef DLLAPI
-#if defined (_WIN32) && defined (_MSC_VER)
-#define DLLAPI __declspec(dllimport)
-#else
-#define DLLAPI
-#endif
-#endif
-
#if ! HAVE_STREAMBUF_CHAR_TYPE
typedef char char_type;
#endif
diff --git a/include/fcgios.h b/include/fcgios.h
index 206973137..7a2f5333a 100644
--- a/include/fcgios.h
+++ b/include/fcgios.h
@@ -50,11 +50,19 @@ extern "C" {
#endif /* !_WIN32 */
#ifndef DLLAPI
-#if defined (_WIN32) && defined (_MSC_VER)
-#define DLLAPI __declspec(dllimport)
-#else
-#define DLLAPI
-#endif
+# if defined (_WIN32) && defined (_MSC_VER)
+# if defined(DLL_EXPORT) && defined(LIBFCGI_BUILD)
+# define DLLAPI __declspec(dllexport)
+# else
+# ifdef LIBFCGI_DLL_IMPORT
+# define DLLAPI extern __declspec(dllimport)
+# else
+# define DLLAPI
+# endif
+# endif
+# else
+# define DLLAPI
+# endif
#endif
diff --git a/libfcgi/Makefile.am b/libfcgi/Makefile.am
index 42d507253..26f06f550 100644
--- a/libfcgi/Makefile.am
+++ b/libfcgi/Makefile.am
@@ -1,7 +1,7 @@
# $Id: Makefile.am,v 1.9 2001/12/22 03:16:20 robs Exp $
INCLUDEDIR = ../include
-AM_CPPFLAGS = -I$(top_srcdir)/include -W -Wall -pedantic -Wno-unused-parameter
+AM_CPPFLAGS = -I$(top_srcdir)/include -DLIBFCGI_BUILD
INCLUDE_FILES = $(INCLUDEDIR)/fastcgi.h \
$(INCLUDEDIR)/fcgiapp.h \

View File

@ -4,70 +4,44 @@ vcpkg_from_github(
REF fc8c6547ae38faf9926205a23075c47fbd4370c8
SHA512 7f27b1060fbeaf0de9b8a43aa4ff954a004c49e99f7d6ea11119a438fcffe575fb469ba06262e71ac8132f92e74189e2097fd049595a6a61d4d5a5bac2733f7a
HEAD_REF master
PATCHES
dll.patch
)
if (VCPKG_TARGET_IS_WINDOWS)
# Check build system first
find_program(NMAKE nmake REQUIRED)
list(APPEND NMAKE_OPTIONS_REL
CFG=release
)
list(APPEND NMAKE_OPTIONS_DBG
CFG=debug
)
file(RENAME "${SOURCE_PATH}/include/fcgi_config_x86.h" "${SOURCE_PATH}/include/fcgi_config.h")
vcpkg_build_nmake(
SOURCE_PATH "${SOURCE_PATH}"
PROJECT_SUBPATH libfcgi
PROJECT_NAME libfcgi.mak
OPTIONS_RELEASE
"${NMAKE_OPTIONS_REL}"
OPTIONS_DEBUG
"${NMAKE_OPTIONS_DBG}"
)
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/include" DESTINATION "${CURRENT_PACKAGES_DIR}/include" RENAME ${PORT})
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libfcgi/Release/libfcgi.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib")
if (NOT VCPKG_CRT_LINKAGE STREQUAL static)
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libfcgi/Release/libfcgi.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin")
endif()
endif()
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/libfcgi/Debug/libfcgi.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib")
if (NOT VCPKG_CRT_LINKAGE STREQUAL static)
file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/libfcgi/Debug/libfcgi.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin")
endif()
endif()
elseif (VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX) # Build in UNIX
# Check build system first
if(VCPKG_TARGET_IS_OSX)
message("${PORT} currently requires the following library from the system package manager:\n gettext\n automake\n libtool\n\nIt can be installed with brew install gettext automake libtool")
else()
message("${PORT} currently requires the following library from the system package manager:\n gettext\n automake\n libtool\n libtool-bin\n\nIt can be installed with apt-get install gettext automake libtool libtool-bin")
endif()
vcpkg_configure_make(
SOURCE_PATH "${SOURCE_PATH}"
AUTOCONFIG
COPY_SOURCE
)
vcpkg_install_make()
# switch ${PORT} into /${PORT}
file(RENAME "${CURRENT_PACKAGES_DIR}/include" "${CURRENT_PACKAGES_DIR}/include2")
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include")
file(RENAME "${CURRENT_PACKAGES_DIR}/include2" "${CURRENT_PACKAGES_DIR}/include/${PORT}")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
vcpkg_fixup_pkgconfig()
else() # Other build system
message(FATAL_ERROR "fastcgi only supports Windows, Linux, and MacOS.")
# Check build system first
if(VCPKG_TARGET_IS_OSX)
message("${PORT} currently requires the following library from the system package manager:\n gettext\n automake\n libtool\n\nIt can be installed with brew install gettext automake libtool")
elseif(NOT VCPKG_TARGET_IS_WINDOWS)
message("${PORT} currently requires the following library from the system package manager:\n gettext\n automake\n libtool\n libtool-bin\n\nIt can be installed with apt-get install gettext automake libtool libtool-bin")
endif()
vcpkg_configure_make(
SOURCE_PATH "${SOURCE_PATH}"
AUTOCONFIG
COPY_SOURCE
OPTIONS
--disable-examples
)
vcpkg_install_make()
# switch ${PORT} into /${PORT}
file(RENAME "${CURRENT_PACKAGES_DIR}/include" "${CURRENT_PACKAGES_DIR}/include2")
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include")
file(RENAME "${CURRENT_PACKAGES_DIR}/include2" "${CURRENT_PACKAGES_DIR}/include/${PORT}")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
vcpkg_fixup_pkgconfig()
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/fcgi.pc" "Version: 2.4.2\n" "Version: 2.4.2\nCflags: -I\"\${prefix}/include/fastcgi\"\n")
if(NOT VCPKG_BUILD_TYPE)
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/fcgi.pc" "Version: 2.4.2\n" "Version: 2.4.2\nCflags: -I\"\${prefix}/../include/fastcgi\"\n")
endif()
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic" AND VCPKG_TARGET_IS_WINDOWS)
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/${PORT}/fcgiapp.h" "ifdef LIBFCGI_DLL_IMPORT" "if 1")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/${PORT}/fcgios.h" "ifdef LIBFCGI_DLL_IMPORT" "if 1")
endif()
vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}")
# Handle copyright
file(INSTALL "${SOURCE_PATH}/LICENSE.TERMS" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

View File

@ -1,8 +1,9 @@
{
"name": "fastcgi",
"version-date": "2020-09-11",
"port-version": 4,
"port-version": 5,
"description": "The FastCGI interface combines the best aspects of CGI and vendor APIs. Like CGI, FastCGI applications run in separate, isolated processes.",
"homepage": "https://fastcgi-archives.github.io/",
"license": "OML"
"license": "OML",
"supports": "!uwp"
}

View File

@ -1,13 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5a41078..747c61c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -277,7 +277,7 @@ mark_as_advanced(BUILD_VIEWER)
mark_as_advanced(BUILD_JAVA)
mark_as_advanced(BUILD_JP3D)
-if(BUILD_CODEC OR BUILD_MJ2)
+if(BUILD_CODEC OR BUILD_JPWL OR BUILD_MJ2 OR BUILD_JPIP OR BUILD_JP3D)
# OFF: It will only build 3rd party libs if they are not found on the system
# ON: 3rd party libs will ALWAYS be build, and used
option(BUILD_THIRDPARTY "Build the thirdparty executables if it is needed" OFF)

13
ports/openjpeg/arm.patch Normal file
View File

@ -0,0 +1,13 @@
diff --git a/src/lib/openjp2/ht_dec.c b/src/lib/openjp2/ht_dec.c
index 1eb4d525f..e2f3afd6a 100644
--- a/src/lib/openjp2/ht_dec.c
+++ b/src/lib/openjp2/ht_dec.c
@@ -69,7 +69,7 @@ static OPJ_BOOL only_cleanup_pass_is_decoded = OPJ_FALSE;
static INLINE
OPJ_UINT32 population_count(OPJ_UINT32 val)
{
-#ifdef OPJ_COMPILER_MSVC
+#if defined(OPJ_COMPILER_MSVC) && (defined(_M_IX86) || defined(_M_AMD64))
return (OPJ_UINT32)__popcnt(val);
#elif (defined OPJ_COMPILER_GNUC)
return (OPJ_UINT32)__builtin_popcount(val);

View File

@ -1,32 +0,0 @@
diff --git a/src/lib/openjp3d/CMakeLists.txt b/src/lib/openjp3d/CMakeLists.txt
index b0469af1f..75048ef13 100644
--- a/src/lib/openjp3d/CMakeLists.txt
+++ b/src/lib/openjp3d/CMakeLists.txt
@@ -34,8 +34,9 @@ endif()
# Install library
install(TARGETS ${OPENJP3D_LIBRARY_NAME}
EXPORT OpenJP3DTargets
- DESTINATION ${OPENJPEG_INSTALL_LIB_DIR}
- COMPONENT Libraries
+ RUNTIME DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
+ LIBRARY DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries
+ ARCHIVE DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries
)
# Install includes files
diff --git a/src/lib/openmj2/CMakeLists.txt b/src/lib/openmj2/CMakeLists.txt
index 25294b20e..e3acfe8e7 100644
--- a/src/lib/openmj2/CMakeLists.txt
+++ b/src/lib/openmj2/CMakeLists.txt
@@ -53,8 +53,9 @@ endif()
# Install library
install(TARGETS ${OPENMJ2_LIBRARY_NAME}
EXPORT OpenMJ2Targets
- DESTINATION ${OPENJPEG_INSTALL_LIB_DIR}
- COMPONENT Libraries
+ RUNTIME DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
+ LIBRARY DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries
+ ARCHIVE DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries
)
# Install includes files

View File

@ -1,13 +0,0 @@
diff --git a/src/lib/openmj2/opj_includes.h b/src/lib/openmj2/opj_includes.h
index 340e8a9..11bb0e4 100644
--- a/src/lib/openmj2/opj_includes.h
+++ b/src/lib/openmj2/opj_includes.h
@@ -93,7 +93,7 @@ Most compilers implement their own version of this keyword ...
/* MSVC and Borland C do not have lrintf */
#if defined(_MSC_VER) || defined(__BORLANDC__)
-static INLINE long lrintf(float f)
+static INLINE long opj_lrintf(float f)
{
#ifdef _M_X64
return (long)((f > 0.0f) ? (f + 0.5f) : (f - 0.5f));

View File

@ -0,0 +1,59 @@
diff --git a/src/bin/jp2/CMakeLists.txt b/src/bin/jp2/CMakeLists.txt
index 4d4bd952f..e14b5a692 100644
--- a/src/bin/jp2/CMakeLists.txt
+++ b/src/bin/jp2/CMakeLists.txt
@@ -33,14 +33,6 @@ include_directories(
${TIFF_INCLUDE_DIRNAME}
)
-if(WIN32)
- if(BUILD_SHARED_LIBS)
- add_definitions(-DOPJ_EXPORTS)
- else()
- add_definitions(-DOPJ_STATIC)
- endif()
-endif()
-
# Loop over all executables:
foreach(exe opj_decompress opj_compress opj_dump)
add_executable(${exe} ${exe}.c ${common_SRCS})
diff --git a/src/lib/openjp2/CMakeLists.txt b/src/lib/openjp2/CMakeLists.txt
index ea4131a3e..dc63f49dd 100644
--- a/src/lib/openjp2/CMakeLists.txt
+++ b/src/lib/openjp2/CMakeLists.txt
@@ -84,12 +84,12 @@ endif()
# Build the library
if(WIN32)
+ add_library(${OPENJPEG_LIBRARY_NAME} ${OPENJPEG_SRCS})
if(BUILD_SHARED_LIBS)
add_definitions(-DOPJ_EXPORTS)
else()
- add_definitions(-DOPJ_STATIC)
+ target_compile_definitions(${OPENJPEG_LIBRARY_NAME} PUBLIC OPJ_STATIC)
endif()
- add_library(${OPENJPEG_LIBRARY_NAME} ${OPENJPEG_SRCS})
set(INSTALL_LIBS ${OPENJPEG_LIBRARY_NAME})
else()
if(BUILD_SHARED_LIBS AND BUILD_STATIC_LIBS)
diff --git a/src/lib/openjpip/CMakeLists.txt b/src/lib/openjpip/CMakeLists.txt
index b3cb8ce88..fc6a9dde3 100644
--- a/src/lib/openjpip/CMakeLists.txt
+++ b/src/lib/openjpip/CMakeLists.txt
@@ -52,14 +52,14 @@ set(LOCAL_SRCS
)
# Build the library
+add_library(openjpip ${OPENJPIP_SRCS} ${LOCAL_SRCS})
if(WIN32)
if(BUILD_SHARED_LIBS)
add_definitions(-DOPJ_EXPORTS)
else()
- add_definitions(-DOPJ_STATIC)
+ target_compile_definitions(openjpip PUBLIC OPJ_STATIC)
endif()
endif()
-add_library(openjpip ${OPENJPIP_SRCS} ${LOCAL_SRCS})
set_target_properties(openjpip
PROPERTIES ${OPENJPEG_LIBRARY_PROPERTIES})
if(NOT ${CMAKE_VERSION} VERSION_LESS "2.8.12")

View File

@ -0,0 +1,10 @@
diff --git a/src/bin/CMakeLists.txt b/src/bin/CMakeLists.txt
index 292fe5a71..bcbe94160 100644
--- a/src/bin/CMakeLists.txt
+++ b/src/bin/CMakeLists.txt
@@ -9,4 +9,4 @@ if(BUILD_JPIP)
endif()
# wx apps:
-add_subdirectory(wx)
+# add_subdirectory(wx)

View File

@ -1,23 +1,31 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO uclouvain/openjpeg
REF 37ac30ceff6640bbab502388c5e0fa0bff23f505 #v2.4.0
SHA512 7554d64701f1b51501a977bc165e61e4696d97f1f40e4c784c729824878a716c13ac378c6b2dd0d23a11d9e3fa316ff6fc817ca5a614ef4d6530db06a8f83971
REF a5891555eb49ed7cc26b2901ea680acda136d811 #v2.5.0
SHA512 f388d5770445152cd5ed18c61d2a56a6d2b88c2b56db0d460d09be36f3e6e40cf5be505aa63ac5975e07688be3dfe752080f4939bd792d42c61f4f8ddcaa1f0d
HEAD_REF master
PATCHES
dll.location.patch
fix-lrintf-to-opj_lrintf.patch
Enable-tools-of-each-features.patch
PATCHES
arm.patch
no-wx.patch
fix-static.patch
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS)
if(NOT VCPKG_TARGET_IS_WINDOWS)
set(feature_tools "tools" BUILD_JPIP_SERVER) # Requires pthread
if("tools" IN_LIST FEATURES)
list(APPEND FEATURE_OPTIONS "-DFCGI_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include/fastcgi")
endif()
endif()
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
"jpwl" BUILD_JPWL
"mj2" BUILD_MJ2
"jpip" BUILD_JPIP
"jp3d" BUILD_JP3D
${feature_tools}
"tools" BUILD_VIEWER
"tools" BUILD_CODEC
"tools" BUILD_LUTS_GENERATOR
)
vcpkg_cmake_configure(
@ -53,18 +61,9 @@ vcpkg_fixup_pkgconfig()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
set(TOOL_NAMES)
if("jpwl" IN_LIST FEATURES)
list(APPEND TOOL_NAMES opj_compress opj_decompress opj_dump opj_jpwl_compress opj_jpwl_decompress)
endif()
if("mj2" IN_LIST FEATURES)
list(APPEND TOOL_NAMES opj_compress opj_decompress opj_dump opj_mj2_compress opj_mj2_decompress opj_mj2_extract opj_mj2_wrap)
endif()
if("jpip" IN_LIST FEATURES)
if("tools" IN_LIST FEATURES)
list(APPEND TOOL_NAMES opj_compress opj_decompress opj_dump opj_dec_server opj_jpip_addxml opj_jpip_test opj_jpip_transcode)
endif()
if("jp3d" IN_LIST FEATURES)
list(APPEND TOOL_NAMES opj_jp3d_compress opj_jp3d_decompress)
endif()
if(TOOL_NAMES)
vcpkg_copy_tools(TOOL_NAMES ${TOOL_NAMES} AUTO_CLEAN)
endif()

View File

@ -1,8 +1,9 @@
{
"name": "openjpeg",
"version-semver": "2.4.0",
"version": "2.5.0",
"description": "OpenJPEG is an open-source JPEG 2000 codec written in C language. It has been developed in order to promote the use of JPEG 2000, a still-image compression standard from the Joint Photographic Experts Group (JPEG). Since April 2015, it is officially recognized by ISO/IEC and ITU-T as a JPEG 2000 Reference Software.",
"homepage": "https://github.com/uclouvain/openjpeg",
"license": "BSD-2-Clause",
"dependencies": [
{
"name": "vcpkg-cmake",
@ -15,16 +16,32 @@
],
"features": {
"jp3d": {
"description": "Build optional component jp3d"
"description": "(deprecated)"
},
"jpip": {
"description": "Build optional component jpip"
},
"jpwl": {
"description": "Build optional component jpwl"
"description": "(deprecated)"
},
"mj2": {
"description": "Build optional component mj2"
"description": "(deprecated)"
},
"tools": {
"description": "(deprecated)",
"dependencies": [
{
"name": "curl",
"platform": "!windows"
},
{
"name": "fastcgi",
"platform": "!windows"
},
"lcms",
"tiff",
"zlib"
]
}
}
}

View File

@ -1262,7 +1262,6 @@ lapack-reference:x64-uwp=skip
# failures for x64-windows-static-md
ace:x64-windows-static-md=fail
fastcgi:x64-windows-static-md=fail
ijg-libjpeg:x64-windows-static-md=fail
libcerf:x64-windows-static-md=fail
libmicrohttpd:x64-windows-static-md=fail

View File

@ -2166,7 +2166,7 @@
},
"fastcgi": {
"baseline": "2020-09-11",
"port-version": 4
"port-version": 5
},
"fastfeat": {
"baseline": "391d5e9",
@ -5149,7 +5149,7 @@
"port-version": 4
},
"openjpeg": {
"baseline": "2.4.0",
"baseline": "2.5.0",
"port-version": 0
},
"openmama": {

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "7aebdd65d1551d946470d43413d5265d409df3e7",
"version-date": "2020-09-11",
"port-version": 5
},
{
"git-tree": "8a8f47edb8fc80608665c48ace9195e2334c3b6e",
"version-date": "2020-09-11",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "3451436f9bb5f5ad8946b45868929488fe2c39dd",
"version": "2.5.0",
"port-version": 0
},
{
"git-tree": "ffb3c981c0026662feded28db73c177a739773d2",
"version-semver": "2.4.0",