diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/nspr | |
Diffstat (limited to 'vcpkg/ports/nspr')
| -rw-r--r-- | vcpkg/ports/nspr/android.diff | 14 | ||||
| -rw-r--r-- | vcpkg/ports/nspr/library-linkage.diff | 69 | ||||
| -rw-r--r-- | vcpkg/ports/nspr/nsinstall-windows.diff | 17 | ||||
| -rw-r--r-- | vcpkg/ports/nspr/parallel.diff | 12 | ||||
| -rw-r--r-- | vcpkg/ports/nspr/portfile.cmake | 113 | ||||
| -rw-r--r-- | vcpkg/ports/nspr/unexport-ldflags.diff | 13 | ||||
| -rw-r--r-- | vcpkg/ports/nspr/vcpkg.json | 19 |
7 files changed, 257 insertions, 0 deletions
diff --git a/vcpkg/ports/nspr/android.diff b/vcpkg/ports/nspr/android.diff new file mode 100644 index 0000000..873ba12 --- /dev/null +++ b/vcpkg/ports/nspr/android.diff @@ -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.]) diff --git a/vcpkg/ports/nspr/library-linkage.diff b/vcpkg/ports/nspr/library-linkage.diff new file mode 100644 index 0000000..a80e5c7 --- /dev/null +++ b/vcpkg/ports/nspr/library-linkage.diff @@ -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) diff --git a/vcpkg/ports/nspr/nsinstall-windows.diff b/vcpkg/ports/nspr/nsinstall-windows.diff new file mode 100644 index 0000000..8a21214 --- /dev/null +++ b/vcpkg/ports/nspr/nsinstall-windows.diff @@ -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) diff --git a/vcpkg/ports/nspr/parallel.diff b/vcpkg/ports/nspr/parallel.diff new file mode 100644 index 0000000..f274e88 --- /dev/null +++ b/vcpkg/ports/nspr/parallel.diff @@ -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 + + # diff --git a/vcpkg/ports/nspr/portfile.cmake b/vcpkg/ports/nspr/portfile.cmake new file mode 100644 index 0000000..e450ba0 --- /dev/null +++ b/vcpkg/ports/nspr/portfile.cmake @@ -0,0 +1,113 @@ +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 55d21e196508ad29a179639fc8006f44b04dc2c0b5a85895e727f0a4f0ea37aeeceb936e37ac6b271b882a18e9f06d96133a60f19cee6345f8424c1c66e270ee
+)
+
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE "${ARCHIVE}"
+ SOURCE_BASE "${VERSION}"
+ PATCHES
+ android.diff
+ library-linkage.diff
+ nsinstall-windows.diff
+ parallel.diff
+ unexport-ldflags.diff
+)
+
+set(OPTIONS "")
+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()
+
+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")
+ 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}")
+ endforeach()
+ endif()
+endif()
+
+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()
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/nspr/LICENSE")
diff --git a/vcpkg/ports/nspr/unexport-ldflags.diff b/vcpkg/ports/nspr/unexport-ldflags.diff new file mode 100644 index 0000000..702b875 --- /dev/null +++ b/vcpkg/ports/nspr/unexport-ldflags.diff @@ -0,0 +1,13 @@ +diff --git a/nspr/config/nspr-config.in b/nspr/config/nspr-config.in +index 2cb62a0..6db7aa3 100755 +--- a/nspr/config/nspr-config.in ++++ b/nspr/config/nspr-config.in +@@ -136,7 +136,7 @@ if test "$echo_libs" = "yes"; then + if test -n "$lib_nspr"; then + libdirs="$libdirs -lnspr${major_version}" + fi +- os_ldflags="@LDFLAGS@" ++ os_ldflags="" + for i in $os_ldflags ; do + if echo $i | grep \^-L >/dev/null; then + libdirs="$libdirs $i" diff --git a/vcpkg/ports/nspr/vcpkg.json b/vcpkg/ports/nspr/vcpkg.json new file mode 100644 index 0000000..e087f5c --- /dev/null +++ b/vcpkg/ports/nspr/vcpkg.json @@ -0,0 +1,19 @@ +{ + "name": "nspr", + "version": "4.36", + "port-version": 1, + "description": "Netscape portable runtime", + "homepage": "https://releases.mozilla.org/pub/nspr/", + "license": "MPL-2.0", + "supports": "!uwp & !xbox & !(windows & static & staticcrt)", + "dependencies": [ + { + "name": "nspr", + "host": true + }, + { + "name": "vcpkg-make", + "host": true + } + ] +} |