mirror of
https://github.com/microsoft/vcpkg.git
synced 2026-01-18 01:11:23 +01:00
[nspr,nss] Update, overhaul, test port (#46227)
This commit is contained in:
14
ports/nspr/android.diff
Normal file
14
ports/nspr/android.diff
Normal file
@@ -0,0 +1,14 @@
|
||||
diff --git a/nspr/configure.in b/nspr/configure.in
|
||||
index 1a3e489..59e6347 100644
|
||||
--- a/nspr/configure.in
|
||||
+++ b/nspr/configure.in
|
||||
@@ -153,6 +153,9 @@ mipsel-*android*)
|
||||
esac
|
||||
|
||||
case "$target" in
|
||||
+*-android*)
|
||||
+ AC_DEFINE(ANDROID)
|
||||
+ ;;
|
||||
*-android*|*-linuxandroid*)
|
||||
if test -z "$android_ndk" ; then
|
||||
AC_MSG_ERROR([You must specify --with-android-ndk=/path/to/ndk when targeting Android.])
|
||||
69
ports/nspr/library-linkage.diff
Normal file
69
ports/nspr/library-linkage.diff
Normal file
@@ -0,0 +1,69 @@
|
||||
diff --git a/nspr/config/rules.mk b/nspr/config/rules.mk
|
||||
index 8f3f926..1ddfffd 100644
|
||||
--- a/nspr/config/rules.mk
|
||||
+++ b/nspr/config/rules.mk
|
||||
@@ -113,7 +113,8 @@ endif
|
||||
|
||||
ifndef TARGETS
|
||||
ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
|
||||
-TARGETS = $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
|
||||
+ifdef BUILD_SHARED_LIBS
|
||||
+TARGETS = $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
|
||||
ifdef MOZ_DEBUG_SYMBOLS
|
||||
ifdef MSC_VER
|
||||
ifneq (,$(filter-out 1100 1200,$(MSC_VER)))
|
||||
@@ -122,7 +123,14 @@ endif
|
||||
endif
|
||||
endif
|
||||
else
|
||||
-TARGETS = $(LIBRARY) $(SHARED_LIBRARY)
|
||||
+TARGETS = $(LIBRARY)
|
||||
+endif
|
||||
+else
|
||||
+ifdef BUILD_SHARED_LIBS
|
||||
+TARGETS = $(SHARED_LIBRARY)
|
||||
+else
|
||||
+TARGETS = $(LIBRARY)
|
||||
+endif
|
||||
endif
|
||||
endif
|
||||
|
||||
diff --git a/nspr/lib/ds/Makefile.in b/nspr/lib/ds/Makefile.in
|
||||
index fa8c783..b102b04 100644
|
||||
--- a/nspr/lib/ds/Makefile.in
|
||||
+++ b/nspr/lib/ds/Makefile.in
|
||||
@@ -131,7 +131,7 @@ endif
|
||||
export:: $(TARGETS)
|
||||
$(INSTALL) -m 444 $(HEADERS) $(dist_includedir)
|
||||
$(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
|
||||
-ifdef SHARED_LIBRARY
|
||||
+ifdef BUILD_SHARED_LIBS
|
||||
ifeq ($(OS_ARCH),HP-UX)
|
||||
$(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
|
||||
$(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir)
|
||||
diff --git a/nspr/lib/libc/src/Makefile.in b/nspr/lib/libc/src/Makefile.in
|
||||
index 9ef2007..4f5ddbe 100644
|
||||
--- a/nspr/lib/libc/src/Makefile.in
|
||||
+++ b/nspr/lib/libc/src/Makefile.in
|
||||
@@ -132,7 +132,7 @@ endif
|
||||
|
||||
export:: $(TARGETS)
|
||||
$(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
|
||||
-ifdef SHARED_LIBRARY
|
||||
+ifdef BUILD_SHARED_LIBS
|
||||
ifeq ($(OS_ARCH),HP-UX)
|
||||
$(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
|
||||
$(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir)
|
||||
diff --git a/nspr/pr/src/Makefile.in b/nspr/pr/src/Makefile.in
|
||||
index a9e86f5..88e626e 100644
|
||||
--- a/nspr/pr/src/Makefile.in
|
||||
+++ b/nspr/pr/src/Makefile.in
|
||||
@@ -325,7 +325,7 @@ export::
|
||||
|
||||
build:: $(TARGETS)
|
||||
$(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
|
||||
-ifdef SHARED_LIBRARY
|
||||
+ifdef BUILD_SHARED_LIBS
|
||||
ifeq ($(OS_ARCH),HP-UX)
|
||||
$(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
|
||||
$(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir)
|
||||
17
ports/nspr/nsinstall-windows.diff
Normal file
17
ports/nspr/nsinstall-windows.diff
Normal file
@@ -0,0 +1,17 @@
|
||||
diff --git a/nspr/config/Makefile.in b/nspr/config/Makefile.in
|
||||
index 54357b7..fd59e1a 100644
|
||||
--- a/nspr/config/Makefile.in
|
||||
+++ b/nspr/config/Makefile.in
|
||||
@@ -54,10 +54,10 @@ include $(topsrcdir)/config/rules.mk
|
||||
|
||||
PROGS = $(OBJDIR)/now$(PROG_SUFFIX)
|
||||
|
||||
-ifeq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
|
||||
+ifneq (,$(CROSS_COMPILE))
|
||||
TARGETS = $(PROGS)
|
||||
else
|
||||
-ifeq (,$(filter-out WINCE,$(OS_ARCH)))
|
||||
+ifeq (,$(filter-out WIN95 WINCE WINMO,$(OS_TARGET)))
|
||||
TARGETS = $(PROGS)
|
||||
else
|
||||
PROGS += $(OBJDIR)/nsinstall$(PROG_SUFFIX)
|
||||
12
ports/nspr/parallel.diff
Normal file
12
ports/nspr/parallel.diff
Normal file
@@ -0,0 +1,12 @@
|
||||
diff --git a/nspr/config/rules.mk b/nspr/config/rules.mk
|
||||
index 37bd49a..d6c6f6d 100644
|
||||
--- a/nspr/config/rules.mk
|
||||
+++ b/nspr/config/rules.mk
|
||||
@@ -495,7 +495,6 @@ $(filter $(OBJDIR)/%.$(OBJ_SUFFIX),$(OBJS)): $(OBJDIR)/%.$(OBJ_SUFFIX): $(DUMMY_
|
||||
# parallel.
|
||||
#
|
||||
ifeq (,$(filter-out 1200 1300 1310,$(MSC_VER)))
|
||||
-.NOTPARALLEL:
|
||||
endif
|
||||
|
||||
#
|
||||
@@ -1,87 +1,95 @@
|
||||
if(VCPKG_TARGET_IS_WINDOWS)
|
||||
vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
|
||||
endif()
|
||||
|
||||
vcpkg_download_distfile(ARCHIVE
|
||||
URLS "https://releases.mozilla.org/pub/nspr/releases/v${VERSION}/src/nspr-${VERSION}.tar.gz"
|
||||
FILENAME "nspr-${VERSION}.tar.gz"
|
||||
SHA512 502815833116e25f79ddf71d1526484908aa92fbc55f8a892729cb404a4daafcc0470a89854cd080d2d20299fdb7d9662507c5362c7ae661cbacf308ac56ef7f
|
||||
SHA512 55d21e196508ad29a179639fc8006f44b04dc2c0b5a85895e727f0a4f0ea37aeeceb936e37ac6b271b882a18e9f06d96133a60f19cee6345f8424c1c66e270ee
|
||||
)
|
||||
|
||||
vcpkg_extract_source_archive(
|
||||
SOURCE_PATH
|
||||
ARCHIVE ${ARCHIVE}
|
||||
ARCHIVE "${ARCHIVE}"
|
||||
SOURCE_BASE "${VERSION}"
|
||||
PATCHES
|
||||
android.diff
|
||||
library-linkage.diff
|
||||
nsinstall-windows.diff
|
||||
parallel.diff
|
||||
)
|
||||
|
||||
set(MOZBUILD_ROOT "${CURRENT_HOST_INSTALLED_DIR}/tools/mozbuild")
|
||||
|
||||
set(MOZBUILD_BINDIR "${MOZBUILD_ROOT}/bin")
|
||||
vcpkg_add_to_path("${MOZBUILD_BINDIR}")
|
||||
|
||||
set(MOZBUILD_MSYS_ROOT "${MOZBUILD_ROOT}/msys")
|
||||
vcpkg_add_to_path(PREPEND "${MOZBUILD_MSYS_ROOT}")
|
||||
|
||||
set(OPTIONS "")
|
||||
if (VCPKG_CRT_LINKAGE STREQUAL "dynamic")
|
||||
list(APPEND OPTIONS "--disable-static-rtl")
|
||||
else()
|
||||
list(APPEND OPTIONS "--enable-static-rtl")
|
||||
endif()
|
||||
|
||||
list(APPEND OPTIONS "--enable-win32-target=win95")
|
||||
|
||||
if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
||||
list(APPEND OPTIONS "--enable-64bit")
|
||||
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
|
||||
list(APPEND OPTIONS "--disable-64bit")
|
||||
else()
|
||||
message(FATAL_ERROR "Unsupported arch: ${VCPKG_TARGET_ARCHITECTURE}")
|
||||
endif()
|
||||
|
||||
set(OPTIONS_DEBUG
|
||||
"--enable-debug-rtl"
|
||||
)
|
||||
|
||||
set(OPTIONS_RELEASE
|
||||
"--disable-debug-rtl"
|
||||
)
|
||||
|
||||
vcpkg_configure_make(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
CONFIGURE_ENVIRONMENT_VARIABLES CC CXX LD
|
||||
PROJECT_SUBPATH "nspr"
|
||||
OPTIONS ${OPTIONS}
|
||||
OPTIONS_DEBUG ${OPTIONS_DEBUG}
|
||||
OPTIONS_RELEASE ${OPTIONS_RELEASE}
|
||||
DISABLE_VERBOSE_FLAGS
|
||||
)
|
||||
vcpkg_install_make()
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
#
|
||||
# VCPKG FHS adjustments
|
||||
#
|
||||
|
||||
# Release
|
||||
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
|
||||
file(GLOB BIN_RELEASE "${CURRENT_PACKAGES_DIR}/lib/*.dll" "${CURRENT_PACKAGES_DIR}/lib/*.pdb")
|
||||
list(LENGTH BIN_RELEASE BIN_RELEASE_SIZE)
|
||||
if (BIN_RELEASE_SIZE GREATER 0)
|
||||
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin")
|
||||
|
||||
foreach(path ${BIN_RELEASE})
|
||||
get_filename_component(name "${path}" NAME)
|
||||
file(RENAME "${CURRENT_PACKAGES_DIR}/lib/${name}" "${CURRENT_PACKAGES_DIR}/bin/${name}")
|
||||
endforeach()
|
||||
if(VCPKG_TARGET_IS_WINDOWS)
|
||||
# https://firefox-source-docs.mozilla.org/nspr/nspr_build_instructions.html#enable-win32-target-win95
|
||||
list(APPEND OPTIONS "--enable-win32-target=WIN95")
|
||||
if(VCPKG_CRT_LINKAGE STREQUAL "static")
|
||||
list(APPEND OPTIONS "--enable-static-rtl")
|
||||
else()
|
||||
list(APPEND OPTIONS "--disable-static-rtl")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Debug
|
||||
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
|
||||
if(VCPKG_TARGET_ARCHITECTURE MATCHES "64")
|
||||
list(APPEND OPTIONS "--enable-64bit")
|
||||
else()
|
||||
list(APPEND OPTIONS "--disable-64bit")
|
||||
endif()
|
||||
|
||||
set(MAKE_OPTIONS "")
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
|
||||
list(APPEND MAKE_OPTIONS BUILD_SHARED_LIBS=1)
|
||||
endif()
|
||||
|
||||
if(VCPKG_CROSSCOMPILING)
|
||||
list(APPEND MAKE_OPTIONS "NOW=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/now${VCPKG_HOST_EXECUTABLE_SUFFIX}")
|
||||
if(NOT CMAKE_HOST_WIN32)
|
||||
list(APPEND MAKE_OPTIONS "NSINSTALL=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/nsinstall${VCPKG_HOST_EXECUTABLE_SUFFIX}")
|
||||
endif()
|
||||
endif()
|
||||
if(CMAKE_HOST_WIN32)
|
||||
vcpkg_acquire_msys(MSYS_NSINSTALL
|
||||
NO_DEFAULT_PACKAGES
|
||||
DIRECT_PACKAGES
|
||||
"https://mirror.msys2.org/msys/x86_64/nsinstall-4.36-1-x86_64.pkg.tar.zst"
|
||||
36ceaf44db4368ef6319397cef1d82a752c68f3f7a16ca00e753ee7ae825058f22c38ccd750b53ea773212dffae838700be0d09288353db33d2f5197df9091df
|
||||
)
|
||||
list(APPEND MAKE_OPTIONS "NSINSTALL=${MSYS_NSINSTALL}/usr/bin/nsinstall${VCPKG_HOST_EXECUTABLE_SUFFIX}")
|
||||
endif()
|
||||
|
||||
vcpkg_make_configure(
|
||||
SOURCE_PATH "${SOURCE_PATH}/nspr"
|
||||
AUTORECONF
|
||||
OPTIONS
|
||||
${OPTIONS}
|
||||
OPTIONS_DEBUG
|
||||
--enable-debug-rtl
|
||||
OPTIONS_RELEASE
|
||||
--disable-debug-rtl
|
||||
)
|
||||
vcpkg_make_install(OPTIONS ${MAKE_OPTIONS})
|
||||
vcpkg_copy_pdbs()
|
||||
vcpkg_fixup_pkgconfig()
|
||||
|
||||
set(install_dir_pattern "${CURRENT_INSTALLED_DIR}")
|
||||
if(CMAKE_HOST_WIN32)
|
||||
string(REGEX REPLACE [[^([a-zA-Z]):/]] [[/\1/]] install_dir_pattern "${install_dir_pattern}")
|
||||
endif()
|
||||
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/nspr-config" "${install_dir_pattern}" "`dirname $0`/../../..")
|
||||
file(GLOB BIN_RELEASE "${CURRENT_PACKAGES_DIR}/lib/*.dll" "${CURRENT_PACKAGES_DIR}/lib/*.pdb")
|
||||
if(NOT BIN_RELEASE STREQUAL "")
|
||||
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin")
|
||||
foreach(path ${BIN_RELEASE})
|
||||
get_filename_component(name "${path}" NAME)
|
||||
file(RENAME "${CURRENT_PACKAGES_DIR}/lib/${name}" "${CURRENT_PACKAGES_DIR}/bin/${name}")
|
||||
endforeach()
|
||||
endif()
|
||||
if(NOT VCPKG_BUILD_TYPE)
|
||||
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/nspr-config" "${install_dir_pattern}/debug" "`dirname $0`/../../../..")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
|
||||
file(GLOB BIN_DEBUG "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll" "${CURRENT_PACKAGES_DIR}/debug/lib/*.pdb")
|
||||
list(LENGTH BIN_DEBUG BIN_DEBUG_SIZE)
|
||||
if (BIN_DEBUG_SIZE GREATER 0)
|
||||
if(NOT BIN_DEBUG STREQUAL "")
|
||||
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin")
|
||||
|
||||
foreach(path IN LISTS BIN_DEBUG)
|
||||
get_filename_component(name "${path}" NAME)
|
||||
file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/${name}" "${CURRENT_PACKAGES_DIR}/debug/bin/${name}")
|
||||
@@ -89,11 +97,16 @@ if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/nspr-config" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../..")
|
||||
|
||||
if(NOT VCPKG_BUILD_TYPE)
|
||||
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/nspr-config" "${CURRENT_INSTALLED_DIR}/debug" "`dirname $0`/../../../..")
|
||||
if(NOT VCPKG_CROSSCOMPILING)
|
||||
set(tool_names now nsinstall)
|
||||
if(CMAKE_HOST_WIN32)
|
||||
list(REMOVE_ITEM tool_names nsinstall)
|
||||
endif()
|
||||
vcpkg_copy_tools(
|
||||
TOOL_NAMES ${tool_names}
|
||||
SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/config"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}"
|
||||
)
|
||||
endif()
|
||||
|
||||
# Copy license
|
||||
file(INSTALL "${SOURCE_PATH}/nspr/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
|
||||
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/nspr/LICENSE")
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
{
|
||||
"name": "nspr",
|
||||
"version": "4.35",
|
||||
"port-version": 4,
|
||||
"version": "4.36",
|
||||
"description": "Netscape portable runtime",
|
||||
"homepage": "https://releases.mozilla.org/pub/nspr/",
|
||||
"license": "MPL-2.0",
|
||||
"supports": "windows & !(arm | uwp | static | xbox)",
|
||||
"supports": "!uwp & !xbox & !(windows & static & staticcrt)",
|
||||
"dependencies": [
|
||||
{
|
||||
"name": "vcpkg-tool-mozbuild",
|
||||
"name": "nspr",
|
||||
"host": true
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-make",
|
||||
"host": true
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -ur x64-windows-rel/nss/coreconf/config.gypi src/3.66-485ec2a7fc.clean/nss/coreconf/config.gypi
|
||||
--- a/nss/coreconf/config.gypi 2021-05-28 02:50:43.000000000 -0700
|
||||
+++ b/nss/coreconf/config.gypi 2021-11-09 07:51:35.884650900 -0800
|
||||
@@ -44,7 +44,7 @@
|
||||
}],
|
||||
['OS=="win"', {
|
||||
'use_system_zlib%': 0,
|
||||
- 'nspr_libs%': ['libnspr4.lib', 'libplc4.lib', 'libplds4.lib'],
|
||||
+ 'nspr_libs%': ['nspr4.lib', 'plc4.lib', 'plds4.lib'],
|
||||
'zlib_libs%': [],
|
||||
#TODO
|
||||
'moz_debug_flags%': '',
|
||||
14
ports/nss/configure
vendored
Executable file
14
ports/nss/configure
vendored
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
filtered_options=()
|
||||
for option
|
||||
do
|
||||
accept=yes
|
||||
case "${option}" in
|
||||
--host=* | --build=*) accept=no ;;
|
||||
esac
|
||||
if test "${accept}" = "yes"; then filtered_options+=("${option}"); fi
|
||||
done
|
||||
|
||||
echo Invoking nss/build.sh "${filtered_options[@]}"
|
||||
exec nss/build.sh "${filtered_options[@]}"
|
||||
49
ports/nss/include-dirs.diff
Normal file
49
ports/nss/include-dirs.diff
Normal file
@@ -0,0 +1,49 @@
|
||||
diff --git a/nss/lib/sqlite/exports.gyp b/nss/lib/sqlite/exports.gyp
|
||||
index 0a424ba..935b223 100644
|
||||
--- a/nss/lib/sqlite/exports.gyp
|
||||
+++ b/nss/lib/sqlite/exports.gyp
|
||||
@@ -12,7 +12,6 @@
|
||||
'copies': [
|
||||
{
|
||||
'files': [
|
||||
- 'sqlite3.h'
|
||||
],
|
||||
'destination': '<(nss_private_dist_dir)/<(module)'
|
||||
}
|
||||
diff --git a/nss/lib/sqlite/sqlite.gyp b/nss/lib/sqlite/sqlite.gyp
|
||||
index 6a9ab3a..b98ab00 100644
|
||||
--- a/nss/lib/sqlite/sqlite.gyp
|
||||
+++ b/nss/lib/sqlite/sqlite.gyp
|
||||
@@ -10,8 +10,14 @@
|
||||
'targets': [{
|
||||
'target_name': 'sqlite3',
|
||||
'type': 'none',
|
||||
+ 'direct_dependent_settings': {
|
||||
+ 'variables': {
|
||||
+ 'sqlite_include_dirs%': [],
|
||||
+ },
|
||||
+ 'include_dirs': ['<@(sqlite_include_dirs)'],
|
||||
+ },
|
||||
'link_settings': {
|
||||
- 'libraries': ['<(sqlite_libs)'],
|
||||
+ 'libraries': ['<@(sqlite_libs)'],
|
||||
},
|
||||
}],
|
||||
}, {
|
||||
diff --git a/nss/lib/zlib/zlib.gyp b/nss/lib/zlib/zlib.gyp
|
||||
index 07df9a8..215732d 100644
|
||||
--- a/nss/lib/zlib/zlib.gyp
|
||||
+++ b/nss/lib/zlib/zlib.gyp
|
||||
@@ -13,6 +13,12 @@
|
||||
'targets': [{
|
||||
'target_name': 'nss_zlib',
|
||||
'type': 'none',
|
||||
+ 'direct_dependent_settings': {
|
||||
+ 'variables': {
|
||||
+ 'zlib_include_dirs%': [],
|
||||
+ },
|
||||
+ 'include_dirs': ['<@(zlib_include_dirs)'],
|
||||
+ },
|
||||
'link_settings': {
|
||||
'libraries': ['<@(zlib_libs)'],
|
||||
},
|
||||
@@ -1,196 +1,275 @@
|
||||
# - The static lib is named "ssl", conflicting with the "ssl" lib from openssl.
|
||||
# - The tools use the shared libs.
|
||||
# - The pkgconfig file refers to "ssl3"
|
||||
# - Linux distros don't install the static lib.
|
||||
# (Renaming the static lib to "ssl3" might be an alternative solution.)
|
||||
vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
|
||||
|
||||
string(REPLACE "." "_" V_URL ${VERSION})
|
||||
|
||||
vcpkg_download_distfile(ARCHIVE
|
||||
URLS "https://ftp.mozilla.org/pub/security/nss/releases/NSS_${V_URL}_RTM/src/nss-${VERSION}.tar.gz"
|
||||
FILENAME "nss-${VERSION}.tar.gz"
|
||||
SHA512 8ae032f3cb8eadfe524505d20e430b90ed25af2b4732b2cf286c435b0fcd5701d2f5c48bd2cfb3f9aa0bfdf503c1f3d5394cf34f860f51a1141cc4a7586bba32
|
||||
SHA512 5ffb1182e7d65f8895c09656d20bc7146d1616cd4f09046469b2f79f60b57083094c78da39a3f3faa5087742a19f706ce9e7928a662f9f0d3c410514cba2028f
|
||||
)
|
||||
|
||||
vcpkg_extract_source_archive(
|
||||
SOURCE_PATH
|
||||
ARCHIVE ${ARCHIVE}
|
||||
ARCHIVE "${ARCHIVE}"
|
||||
SOURCE_BASE "${VERSION}"
|
||||
PATCHES
|
||||
"01-nspr-no-lib-prefix.patch"
|
||||
"02-gen-debug-info-for-release.patch"
|
||||
"03-use-debug-crt-for-debug.patch" # See https://learn.microsoft.com/dotnet/api/microsoft.visualstudio.vcprojectengine.runtimelibraryoption
|
||||
include-dirs.diff
|
||||
)
|
||||
file(GLOB devendor "${SOURCE_PATH}/nss/lib/sqlite/*.?" "${SOURCE_PATH}/nss/lib/zlib/*.?")
|
||||
file(REMOVE ${devendor})
|
||||
file(COPY "${CURRENT_PORT_DIR}/configure" DESTINATION "${SOURCE_PATH}")
|
||||
|
||||
# setup mozbuild for windows
|
||||
if (VCPKG_TARGET_IS_WINDOWS)
|
||||
set(MOZBUILD_ROOT "${CURRENT_HOST_INSTALLED_DIR}/tools/mozbuild")
|
||||
|
||||
set(MOZBUILD_BINDIR "${MOZBUILD_ROOT}/bin")
|
||||
vcpkg_add_to_path(PREPEND "${MOZBUILD_BINDIR}")
|
||||
|
||||
set(MOZBUILD_MSYS_ROOT "${MOZBUILD_ROOT}/msys2")
|
||||
vcpkg_add_to_path(PREPEND "${MOZBUILD_MSYS_ROOT}/usr/bin")
|
||||
|
||||
# setup mozbuild
|
||||
find_program(MOZBUILD_ENV env PATHS "${MOZBUILD_MSYS_ROOT}/usr/bin" NO_DEFAULT_PATH REQUIRED)
|
||||
execute_process(
|
||||
COMMAND ${MOZBUILD_ENV} mkdir -p /tmp
|
||||
)
|
||||
|
||||
find_program(MOZBUILD_BASH bash PATHS "${MOZBUILD_MSYS_ROOT}/usr/bin" NO_DEFAULT_PATH REQUIRED)
|
||||
message(STATUS "Found bash: ${MOZBUILD_BASH}")
|
||||
|
||||
# setup mozbuild python
|
||||
set(MOZBUILD_PYTHON_ROOT "${MOZBUILD_ROOT}/python3")
|
||||
find_program(MOZBUILD_PYTHON python PATHS "${MOZBUILD_PYTHON_ROOT}" NO_DEFAULT_PATH REQUIRED)
|
||||
message(STATUS "Found python: ${MOZBUILD_PYTHON}")
|
||||
vcpkg_add_to_path(PREPEND "${MOZBUILD_PYTHON_ROOT}")
|
||||
|
||||
# setup paths
|
||||
execute_process(
|
||||
COMMAND ${MOZBUILD_BASH} -c pwd
|
||||
WORKING_DIRECTORY ${CURRENT_INSTALLED_DIR}/include
|
||||
OUTPUT_VARIABLE VCPKG_INCLUDEDIR
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
function(download_distfile var url sha512)
|
||||
string(REGEX REPLACE ".*/" "" filename "${url}")
|
||||
vcpkg_download_distfile(archive
|
||||
URLS "${url}"
|
||||
FILENAME "${filename}"
|
||||
SHA512 "${sha512}"
|
||||
)
|
||||
message(STATUS "Using headers from: ${VCPKG_INCLUDEDIR} arch: ${VCPKG_TARGET_ARCHITECTURE}")
|
||||
set("${var}" "${archive}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
execute_process(
|
||||
COMMAND ${MOZBUILD_BASH} -c pwd
|
||||
WORKING_DIRECTORY ${CURRENT_INSTALLED_DIR}/lib
|
||||
OUTPUT_VARIABLE VCPKG_LIBDIR
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
message(STATUS "Using libraries from: ${VCPKG_LIBDIR} arch: ${VCPKG_TARGET_ARCHITECTURE}")
|
||||
download_distfile(gyp_next
|
||||
"https://files.pythonhosted.org/packages/37/3e/d920a254ad927c942a541388c84dd1af0db1af6f6c2b96e99d9ec3f3a148/gyp_next-0.20.2-py3-none-any.whl"
|
||||
53feff516d0de8738910e04e4e5664af27947c0a2bca856c290f9082d18678b03e917403e2c842edb62b6dd5412c625f34edb52d6d9b295c07ef34b3c18981f8
|
||||
)
|
||||
download_distfile(packaging
|
||||
"https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl"
|
||||
a726fb46cce24f781fc8b55a3e6dea0a884ebc3b2b400ea74aa02333699f4955a5dc1e2ec5927ac72f35a624401f3f3b442882ba1cc4cadaf9c88558b5b8bdae
|
||||
)
|
||||
download_distfile(setuptools
|
||||
"https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl"
|
||||
2a0420f7faaa33d2132b82895a8282688030e939db0225ad8abb95a47bdb87b45318f10985fc3cee271a9121441c1526caa363d7f2e4a4b18b1a674068766e87
|
||||
)
|
||||
x_vcpkg_get_python_packages(
|
||||
OUT_PYTHON_VAR PYTHON3
|
||||
PYTHON_VERSION 3
|
||||
PACKAGES "${gyp_next}" "${packaging}" "${setuptools}"
|
||||
)
|
||||
cmake_path(GET PYTHON3 PARENT_PATH GYP_NEXT_ROOT)
|
||||
|
||||
else()
|
||||
# TODO: setup non-windows build environment
|
||||
|
||||
endif()
|
||||
|
||||
# setup gyp-next
|
||||
set(GYP_NEXT_ROOT "${CURRENT_HOST_INSTALLED_DIR}/tools/gyp-next")
|
||||
if (VCPKG_HOST_IS_WINDOWS)
|
||||
find_file(GYP_NEXT NAMES gyp.bat PATHS "${GYP_NEXT_ROOT}" NO_DEFAULT_PATH REQUIRED)
|
||||
else()
|
||||
find_program(GYP_NEXT NAMES gyp PATHS "${GYP_NEXT_ROOT}" NO_DEFAULT_PATH REQUIRED)
|
||||
endif()
|
||||
|
||||
vcpkg_add_to_path(PREPEND "${GYP_NEXT_ROOT}")
|
||||
message(STATUS "Found gyp-next: ${GYP_NEXT}")
|
||||
|
||||
# setup ninja
|
||||
# Prepend to PATH in controlled order
|
||||
vcpkg_find_acquire_program(NINJA)
|
||||
get_filename_component(NINJA_ROOT "${NINJA}" DIRECTORY)
|
||||
list(APPEND CMAKE_PROGRAM_PATH "${NINJA_ROOT}")
|
||||
vcpkg_add_to_path(APPEND "${NINJA_ROOT}")
|
||||
vcpkg_add_to_path(PREPEND "${NINJA_ROOT}")
|
||||
|
||||
find_program(GYP_NEXT NAMES gyp PATHS "${GYP_NEXT_ROOT}" NO_DEFAULT_PATH REQUIRED)
|
||||
message(STATUS "Using ${GYP_NEXT}")
|
||||
vcpkg_add_to_path(PREPEND "${GYP_NEXT_ROOT}")
|
||||
|
||||
# setup build.sh options -- see help.txt in nss root
|
||||
set(OPTIONS
|
||||
"-v"
|
||||
"-g"
|
||||
"--disable-tests"
|
||||
"--with-nspr=${VCPKG_INCLUDEDIR}/nspr:${VCPKG_LIBDIR}"
|
||||
"--system-sqlite"
|
||||
"-Dsign_libs=0"
|
||||
)
|
||||
set(OPTIONS "")
|
||||
if(VCPKG_TARGET_IS_ANDROID)
|
||||
list(APPEND OPTIONS "-DOS=android")
|
||||
elseif(VCPKG_TARGET_IS_FREEBSD)
|
||||
list(APPEND OPTIONS "-DOS=freebsd")
|
||||
elseif(VCPKG_TARGET_IS_IOS)
|
||||
list(APPEND OPTIONS "-DOS=ios")
|
||||
elseif(VCPKG_TARGET_IS_LINUX)
|
||||
list(APPEND OPTIONS "-DOS=linux")
|
||||
elseif(VCPKG_TARGET_IS_OSX)
|
||||
list(APPEND OPTIONS "-DOS=mac")
|
||||
elseif(VCPKG_TARGET_IS_OPENBSD)
|
||||
list(APPEND OPTIONS "-DOS=openbsd")
|
||||
elseif(VCPKG_TARGET_IS_WINDOWS)
|
||||
list(APPEND OPTIONS "-DOS=win")
|
||||
elseif(VCPKG_CROSSCOMPILING)
|
||||
message(WARNING "Cannot determine OS setting for ${TARGET_TRIPLET}")
|
||||
endif()
|
||||
|
||||
if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
||||
list(APPEND OPTIONS "--target=x64")
|
||||
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
|
||||
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
|
||||
list(APPEND OPTIONS "--target=ia32")
|
||||
else()
|
||||
message(FATAL_ERROR "Unsupported arch: ${VCPKG_TARGET_ARCHITECTURE}")
|
||||
list(APPEND OPTIONS "--target=${VCPKG_TARGET_ARCHITECTURE}")
|
||||
endif()
|
||||
|
||||
if (VCPKG_TARGET_IS_WINDOWS)
|
||||
list(APPEND OPTIONS
|
||||
"--msvc"
|
||||
)
|
||||
function(cygpath_u out_var input) # equivalent to cygpath -u
|
||||
string(REGEX REPLACE "^([a-zA-Z]):/" "/\\1/" input "${input}")
|
||||
set("${out_var}" "${input}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# prevent homemade vcvarsall.sh from running
|
||||
set(VSCOMPONENT "Microsoft.VisualStudio.Component.VC.Tools.x86.x64")
|
||||
execute_process(
|
||||
COMMAND ${MOZBUILD_ENV} cygpath --unix $ENV{VSINSTALLDIR}
|
||||
OUTPUT_VARIABLE GYP_MSVS_OVERRIDE_PATH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
if(CMAKE_HOST_WIN32 AND VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
|
||||
vcpkg_cmake_get_vars(cmake_vars_file)
|
||||
include("${cmake_vars_file}")
|
||||
if(VCPKG_DETECTED_MSVC)
|
||||
list(APPEND OPTIONS "--msvc")
|
||||
set(ENV{PYTHONUTF8} 1)
|
||||
|
||||
execute_process(
|
||||
COMMAND vswhere -latest -requires ${VSCOMPONENT} -property catalog_productLineVersion
|
||||
OUTPUT_VARIABLE GYP_MSVS_VERSION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
# vswhere needed in PATH
|
||||
cmake_path(SET vswhere "$ENV{ProgramFiles\(x86\)}/Microsoft Visual Studio/Installer/vswhere.exe")
|
||||
if(NOT EXISTS "${vswhere}")
|
||||
vcpkg_execute_in_download_mode(
|
||||
COMMAND "$ENV{VCPKG_COMMAND}" fetch vswhere --x-stderr-status
|
||||
OUTPUT_VARIABLE vswhere
|
||||
RESULT_VARIABLE error_code
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
WORKING_DIRECTORY "${DOWNLOADS}"
|
||||
)
|
||||
if(NOT error_code STREQUAL "0")
|
||||
message(FATAL_ERROR "Failed to fetch vswhere.")
|
||||
endif()
|
||||
string(REGEX REPLACE "^.*\n *" "" vswhere "${vswhere}")
|
||||
endif()
|
||||
message(STATUS "Using ${vswhere}")
|
||||
cmake_path(GET vswhere PARENT_PATH vswhere_dir)
|
||||
vcpkg_host_path_list(APPEND ENV{PATH} "${vswhere_dir}")
|
||||
|
||||
list(APPEND GYPENV
|
||||
"PYTHONUTF8=1"
|
||||
"VSPATH=${GYP_MSVS_OVERRIDE_PATH}"
|
||||
"GYP_MSVS_OVERRIDE_PATH=${GYP_MSVS_OVERRIDE_PATH}"
|
||||
"GYP_MSVS_VERSION=${GYP_MSVS_VERSION}"
|
||||
)
|
||||
# Set GYP_MSVS_OVERRIDE_PATH and GYP_MSVS_VERSION for actual cl.exe
|
||||
if("$ENV{GYP_MSVS_OVERRIDE_PATH}" STREQUAL "" OR "$ENV{GYP_MSVS_VERSION}" STREQUAL "")
|
||||
execute_process(
|
||||
COMMAND "${vswhere}"
|
||||
-nologo
|
||||
-property resolvedInstallationPath
|
||||
-path "${VCPKG_DETECTED_CMAKE_C_COMPILER}"
|
||||
OUTPUT_VARIABLE msvs_installdir
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
message(STATUS "MSVS resolvedInstallationPath: ${msvs_installdir}")
|
||||
if(NOT EXISTS "${msvs_installdir}")
|
||||
message(FATAL_ERROR "Failed to determine MSVS dir for ${VCPKG_DETECTED_CMAKE_C_COMPILER}.")
|
||||
endif()
|
||||
cygpath_u(vspath "${msvs_installdir}")
|
||||
set(ENV{VSPATH} "${vspath}")
|
||||
set(ENV{GYP_MSVS_OVERRIDE_PATH} "${vspath}")
|
||||
|
||||
execute_process(
|
||||
COMMAND "${vswhere}"
|
||||
-nologo
|
||||
-property catalog_productLineVersion
|
||||
-path "${VCPKG_DETECTED_CMAKE_C_COMPILER}"
|
||||
OUTPUT_VARIABLE msvs_version
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
message(STATUS "MSVS catalog_productLineVersion: ${msvs_version}")
|
||||
if(NOT msvs_version MATCHES "^20..e?\$")
|
||||
message(FATAL_ERROR "Failed to determine MSVS version for ${VCPKG_DETECTED_CMAKE_C_COMPILER}.")
|
||||
endif()
|
||||
set(ENV{GYP_MSVS_VERSION} "${msvs_version}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#
|
||||
# get to work
|
||||
#
|
||||
|
||||
set(VCPKG_BINARY_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}")
|
||||
|
||||
# build debug
|
||||
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
|
||||
message(STATUS "Copying sources to debug build dir ...")
|
||||
file(COPY "${SOURCE_PATH}/nss" DESTINATION "${VCPKG_BINARY_DIR}-dbg")
|
||||
message(STATUS "Building debug ...")
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND ${MOZBUILD_ENV} ${GYPENV} bash ./build.sh ${OPTIONS}
|
||||
WORKING_DIRECTORY ${VCPKG_BINARY_DIR}-dbg/nss
|
||||
LOGNAME build-${TARGET_TRIPLET}${short_buildtype}
|
||||
)
|
||||
endif()
|
||||
|
||||
# build release
|
||||
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
|
||||
message(STATUS "Copying sources to release build dir ...")
|
||||
file(COPY "${SOURCE_PATH}/nss" DESTINATION "${VCPKG_BINARY_DIR}-rel")
|
||||
message(STATUS "Building release ...")
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND ${MOZBUILD_ENV} ${GYPENV} bash ./build.sh ${OPTIONS} --opt
|
||||
WORKING_DIRECTORY ${VCPKG_BINARY_DIR}-rel/nss
|
||||
LOGNAME build-${TARGET_TRIPLET}${short_buildtype}
|
||||
)
|
||||
endif()
|
||||
|
||||
#
|
||||
# VCPKG FHS adjustments
|
||||
#
|
||||
|
||||
# Headers
|
||||
file(
|
||||
COPY "${VCPKG_BINARY_DIR}-rel/dist/public/nss"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/include"
|
||||
)
|
||||
|
||||
file(
|
||||
COPY "${VCPKG_BINARY_DIR}-rel/dist/private/nss/"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/include/nss/private"
|
||||
)
|
||||
|
||||
# Release libraries
|
||||
file(GLOB LIB_RELEASE
|
||||
"${VCPKG_BINARY_DIR}-rel/dist/Release/lib/*.dll"
|
||||
"${VCPKG_BINARY_DIR}-rel/dist/Release/lib/*.pdb"
|
||||
)
|
||||
list(LENGTH LIB_RELEASE LIB_RELEASE_SIZE)
|
||||
|
||||
if (LIB_RELEASE_SIZE GREATER 0)
|
||||
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin")
|
||||
|
||||
foreach(path ${LIB_RELEASE})
|
||||
get_filename_component(name "${path}" NAME)
|
||||
file(RENAME "${path}" "${CURRENT_PACKAGES_DIR}/bin/${name}")
|
||||
x_vcpkg_pkgconfig_get_modules(PREFIX PC_NSPR MODULES nspr CFLAGS LIBS)
|
||||
x_vcpkg_pkgconfig_get_modules(PREFIX PC_SQLITE MODULES sqlite3 CFLAGS LIBS)
|
||||
x_vcpkg_pkgconfig_get_modules(PREFIX PC_ZLIB MODULES zlib CFLAGS LIBS)
|
||||
# Produce absolute include dirs and library dirs filepaths.
|
||||
# Manually managing MSVC syntax because gyp converts foo.lib as if it were a relative path.
|
||||
foreach(key IN ITEMS NSPR_CFLAGS_RELEASE SQLITE_CFLAGS_RELEASE ZLIB_CFLAGS_RELEASE)
|
||||
separate_arguments(cflags UNIX_COMMAND "${PC_${key}}")
|
||||
string(REPLACE "CFLAGS_RELEASE" "INCLUDE_DIRS" out_var "${key}")
|
||||
set(${out_var} "")
|
||||
foreach(item IN LISTS cflags)
|
||||
if(item MATCHES "^-I(.*)")
|
||||
cmake_path(SET dir NORMALIZE "${CMAKE_MATCH_1}")
|
||||
if(CMAKE_HOST_WIN32)
|
||||
cygpath_u(dir "${dir}")
|
||||
else()
|
||||
endif()
|
||||
list(APPEND ${out_var} "${dir}")
|
||||
endif()
|
||||
endforeach()
|
||||
list(JOIN ${key}_INCLUDE_DIRS ":" ${key}_INCLUDE_DIRS)
|
||||
endforeach()
|
||||
foreach(out_var IN ITEMS NSPR_LIBS_RELEASE NSPR_LIBS_DEBUG SQLITE_LIBS_RELEASE SQLITE_LIBS_DEBUG ZLIB_LIBS_RELEASE ZLIB_LIBS_DEBUG)
|
||||
separate_arguments(libs UNIX_COMMAND "${PC_${out_var}}")
|
||||
set(${out_var} "")
|
||||
foreach(item IN LISTS libs)
|
||||
if(item MATCHES "^-L(.*)")
|
||||
cmake_path(SET dir NORMALIZE "${CMAKE_MATCH_1}")
|
||||
if(CMAKE_HOST_WIN32)
|
||||
cygpath_u(dir "${dir}")
|
||||
endif()
|
||||
if(VCPKG_DETECTED_MSVC)
|
||||
list(APPEND ${out_var} "-LIBPATH:${dir}")
|
||||
else()
|
||||
list(APPEND ${out_var} "-L${dir}")
|
||||
endif()
|
||||
elseif(item MATCHES "^-l(.*)")
|
||||
list(APPEND ${out_var} "${item}")
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib")
|
||||
file(COPY "${VCPKG_BINARY_DIR}-rel/dist/Release/lib" DESTINATION "${CURRENT_PACKAGES_DIR}")
|
||||
# configuring and building in an autotools-like environment, but using gyp-next and ninja
|
||||
vcpkg_make_configure(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
COPY_SOURCE
|
||||
DISABLE_DEFAULT_OPTIONS
|
||||
DISABLE_MSVC_WRAPPERS
|
||||
DISABLE_MSVC_TRANSFORMATIONS
|
||||
OPTIONS
|
||||
-g
|
||||
-v
|
||||
-j "${VCPKG_CONCURRENCY}"
|
||||
${OPTIONS}
|
||||
-Ddisable_tests=1
|
||||
-Ddisable_werror=1
|
||||
-Dsign_libs=0
|
||||
-Duse_system_sqlite=1
|
||||
-Duse_system_zlib=1
|
||||
"--with-nspr=${NSPR_INCLUDE_DIRS}:"
|
||||
"-Dsqlite_include_dirs=${SQLITE_INCLUDE_DIRS}"
|
||||
"-Dzlib_include_dirs=${ZLIB_INCLUDE_DIRS}"
|
||||
OPTIONS_DEBUG
|
||||
"-Dnspr_libs=${NSPR_LIBS_DEBUG}"
|
||||
"-Dsqlite_libs=${SQLITE_LIBS_DEBUG}"
|
||||
"-Dzlib_libs=${ZLIB_LIBS_DEBUG}"
|
||||
OPTIONS_RELEASE
|
||||
--opt
|
||||
"-Dnspr_libs=${NSPR_LIBS_RELEASE}"
|
||||
"-Dsqlite_libs=${SQLITE_LIBS_RELEASE}"
|
||||
"-Dzlib_libs=${ZLIB_LIBS_RELEASE}"
|
||||
)
|
||||
|
||||
if(NOT VCPKG_BUILD_TYPE)
|
||||
set(label "${TARGET_TRIPLET}-dbg")
|
||||
set(binary_dir "${CURRENT_BUILDTREES_DIR}/${label}")
|
||||
message(STATUS "Installing ${label} ...")
|
||||
file(COPY "${binary_dir}/dist/Debug/lib"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/debug"
|
||||
FILES_MATCHING REGEX "[.](a|dylib|lib|so([.][0-9]+)*)\$"
|
||||
)
|
||||
file(GLOB runtime_debug "${binary_dir}/dist/Debug/lib/*.dll" "${binary_dir}/dist/Debug/lib/*.pdb")
|
||||
if(NOT runtime_debug STREQUAL "")
|
||||
file(COPY ${runtime_debug} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Tools from the release build
|
||||
set(label "${TARGET_TRIPLET}-rel")
|
||||
set(binary_dir "${CURRENT_BUILDTREES_DIR}/${label}")
|
||||
message(STATUS "Installing ${label} ...")
|
||||
file(COPY "${binary_dir}/dist/Release/lib"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}"
|
||||
FILES_MATCHING REGEX "[.](a|dylib|lib|so([.][0-9]+)*)\$"
|
||||
)
|
||||
file(GLOB runtime_release "${binary_dir}/dist/Release/lib/*.dll" "${binary_dir}/dist/Release/lib/*.pdb")
|
||||
if(NOT runtime_release STREQUAL "")
|
||||
file(COPY ${runtime_release} DESTINATION "${CURRENT_PACKAGES_DIR}/bin")
|
||||
endif()
|
||||
|
||||
file(COPY "${binary_dir}/dist/public/nss" DESTINATION "${CURRENT_PACKAGES_DIR}/include")
|
||||
file(COPY "${binary_dir}/dist/private/nss/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/nss/private")
|
||||
|
||||
file(READ "${SOURCE_PATH}/nss/pkg/pkg-config/nss.pc.in" pkgconfig)
|
||||
string(REPLACE "%exec_prefix%" "\${prefix}" pkgconfig "${pkgconfig}")
|
||||
string(REPLACE "%libdir%" "\${prefix}/lib" pkgconfig "${pkgconfig}")
|
||||
string(REPLACE "%includedir%" "\${prefix}/include/nss" pkgconfig "${pkgconfig}")
|
||||
string(REPLACE "%NSS_VERSION%" "${VERSION}" pkgconfig "${pkgconfig}")
|
||||
string(REPLACE "%NSPR_VERSION%" "4.36" pkgconfig "${pkgconfig}")
|
||||
string(APPEND pkgconfig "Requires.private: sqlite3\n")
|
||||
file(WRITE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/nss.pc" "${pkgconfig}")
|
||||
if(NOT VCPKG_BUILD_TYPE)
|
||||
file(WRITE "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/nss.pc" "${pkgconfig}")
|
||||
endif()
|
||||
vcpkg_fixup_pkgconfig()
|
||||
|
||||
vcpkg_copy_tools(
|
||||
TOOL_NAMES
|
||||
"certutil"
|
||||
@@ -207,30 +286,8 @@ vcpkg_copy_tools(
|
||||
"ssltap"
|
||||
"symkeyutil"
|
||||
"validation"
|
||||
SEARCH_DIR "${VCPKG_BINARY_DIR}-rel/dist/Release/bin/"
|
||||
SEARCH_DIR "${binary_dir}/dist/Release/bin"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}"
|
||||
)
|
||||
|
||||
# Debug libraries
|
||||
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
|
||||
file(GLOB LIB_DEBUG
|
||||
"${VCPKG_BINARY_DIR}-dbg/dist/Debug/lib/*.dll"
|
||||
"${VCPKG_BINARY_DIR}-dbg/dist/Debug/lib/*.pdb"
|
||||
)
|
||||
list(LENGTH LIB_DEBUG LIB_DEBUG_SIZE)
|
||||
|
||||
if (LIB_DEBUG_SIZE GREATER 0)
|
||||
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin")
|
||||
|
||||
foreach(path ${LIB_DEBUG})
|
||||
get_filename_component(name "${path}" NAME)
|
||||
file(RENAME "${path}" "${CURRENT_PACKAGES_DIR}/debug/bin/${name}")
|
||||
endforeach()
|
||||
|
||||
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib")
|
||||
file(COPY "${VCPKG_BINARY_DIR}-dbg/dist/Debug/lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# License
|
||||
file(INSTALL "${SOURCE_PATH}/nss/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/nss" RENAME copyright)
|
||||
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/nss/COPYING")
|
||||
|
||||
@@ -1,21 +1,33 @@
|
||||
{
|
||||
"name": "nss",
|
||||
"version": "3.99",
|
||||
"port-version": 1,
|
||||
"version": "3.113.1",
|
||||
"description": "Network Security Services from Mozilla",
|
||||
"homepage": "https://ftp.mozilla.org/pub/security/nss/releases/",
|
||||
"license": "MPL-2.0",
|
||||
"supports": "windows & !arm & !xbox",
|
||||
"supports": "!arm32 & !(arm & windows)",
|
||||
"dependencies": [
|
||||
"nspr",
|
||||
"sqlite3",
|
||||
{
|
||||
"name": "vcpkg-tool-gyp-next",
|
||||
"name": "sqlite3",
|
||||
"default-features": false
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-cmake-get-vars",
|
||||
"host": true,
|
||||
"platform": "windows & !mingw"
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-get-python-packages",
|
||||
"host": true
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-tool-mozbuild",
|
||||
"name": "vcpkg-make",
|
||||
"host": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-pkgconfig-get-modules",
|
||||
"host": true
|
||||
},
|
||||
"zlib"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1465,7 +1465,6 @@ nngpp:arm64-uwp = cascade
|
||||
nngpp:x64-uwp = cascade
|
||||
nss:x64-uwp = cascade
|
||||
nss:x64-windows-static = cascade
|
||||
nss:x64-windows-static-md = cascade
|
||||
numcpp:arm64-uwp = cascade
|
||||
numcpp:x64-uwp = cascade
|
||||
numcpp[python]:arm64-windows = cascade
|
||||
|
||||
10
scripts/test_ports/vcpkg-ci-nss/portfile.cmake
Normal file
10
scripts/test_ports/vcpkg-ci-nss/portfile.cmake
Normal file
@@ -0,0 +1,10 @@
|
||||
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
|
||||
|
||||
vcpkg_find_acquire_program(PKGCONFIG)
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${CURRENT_PORT_DIR}/project"
|
||||
OPTIONS
|
||||
"-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}"
|
||||
)
|
||||
vcpkg_cmake_build()
|
||||
10
scripts/test_ports/vcpkg-ci-nss/project/CMakeLists.txt
Normal file
10
scripts/test_ports/vcpkg-ci-nss/project/CMakeLists.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
cmake_minimum_required(VERSION 3.30)
|
||||
project(nss-test C)
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(nss_pc nss REQUIRED IMPORTED_TARGET)
|
||||
|
||||
add_executable(main-pkconfig main.c)
|
||||
target_link_libraries(main-pkconfig PRIVATE
|
||||
PkgConfig::nss_pc
|
||||
)
|
||||
9
scripts/test_ports/vcpkg-ci-nss/project/main.c
Normal file
9
scripts/test_ports/vcpkg-ci-nss/project/main.c
Normal file
@@ -0,0 +1,9 @@
|
||||
#include <nss.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
const char* configdir = "./DONOTUSE";
|
||||
SECStatus rv = NSS_Initialize(configdir, "", "", SECMOD_DB, NSS_INIT_NOROOTINIT | NSS_INIT_OPTIMIZESPACE);
|
||||
NSS_Shutdown();
|
||||
return 0;
|
||||
}
|
||||
17
scripts/test_ports/vcpkg-ci-nss/vcpkg.json
Normal file
17
scripts/test_ports/vcpkg-ci-nss/vcpkg.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "vcpkg-ci-nss",
|
||||
"version-string": "ci",
|
||||
"description": "Port to validate nss in CI",
|
||||
"homepage": "https://github.com/microsoft/vcpkg",
|
||||
"license": "MIT",
|
||||
"dependencies": [
|
||||
{
|
||||
"name": "nss",
|
||||
"default-features": false
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-cmake",
|
||||
"host": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -6713,12 +6713,12 @@
|
||||
"port-version": 2
|
||||
},
|
||||
"nspr": {
|
||||
"baseline": "4.35",
|
||||
"port-version": 4
|
||||
"baseline": "4.36",
|
||||
"port-version": 0
|
||||
},
|
||||
"nss": {
|
||||
"baseline": "3.99",
|
||||
"port-version": 1
|
||||
"baseline": "3.113.1",
|
||||
"port-version": 0
|
||||
},
|
||||
"nsync": {
|
||||
"baseline": "1.29.2",
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "e8e42a8f8cc4970fecbe6d6e671031078c562c0e",
|
||||
"version": "4.36",
|
||||
"port-version": 0
|
||||
},
|
||||
{
|
||||
"git-tree": "2ac026e89f8d32d1b421bdc000ca17f0c7d3e3c7",
|
||||
"version": "4.35",
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "9ebeab29c2c5137eafaafbd20bde91f40a2faba1",
|
||||
"version": "3.113.1",
|
||||
"port-version": 0
|
||||
},
|
||||
{
|
||||
"git-tree": "93c8abd74523ba189511a0846810848b9a0ed9b5",
|
||||
"version": "3.99",
|
||||
|
||||
Reference in New Issue
Block a user