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/gmp | |
Diffstat (limited to 'vcpkg/ports/gmp')
| -rw-r--r-- | vcpkg/ports/gmp/arm64-coff.patch | 73 | ||||
| -rw-r--r-- | vcpkg/ports/gmp/asmflags.patch | 46 | ||||
| -rw-r--r-- | vcpkg/ports/gmp/c23.patch | 37 | ||||
| -rw-r--r-- | vcpkg/ports/gmp/cross-tools.patch | 113 | ||||
| -rw-r--r-- | vcpkg/ports/gmp/msvc_symbol.patch | 28 | ||||
| -rw-r--r-- | vcpkg/ports/gmp/portfile.cmake | 133 | ||||
| -rw-r--r-- | vcpkg/ports/gmp/remove_compiler_info.patch | 15 | ||||
| -rw-r--r-- | vcpkg/ports/gmp/subdirs.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/gmp/usage | 11 | ||||
| -rw-r--r-- | vcpkg/ports/gmp/vcpkg.json | 25 |
10 files changed, 494 insertions, 0 deletions
diff --git a/vcpkg/ports/gmp/arm64-coff.patch b/vcpkg/ports/gmp/arm64-coff.patch new file mode 100644 index 0000000..67bf5bf --- /dev/null +++ b/vcpkg/ports/gmp/arm64-coff.patch @@ -0,0 +1,73 @@ +diff --git a/configure.ac b/configure.ac +index bd92bc4..bd2c0af 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3704,6 +3704,8 @@ if test "$gmp_asm_syntax_testing" != no; then + case $host in + *-*-darwin*) + GMP_INCLUDE_MPN(arm64/darwin.m4) ;; ++ *-pc-mingw32) ++ GMP_INCLUDE_MPN(arm64/coff.m4) ;; + *) + GMP_INCLUDE_MPN(arm64/arm64-defs.m4) ;; + esac +diff --git a/mpn/arm64/coff.m4 b/mpn/arm64/coff.m4 +new file mode 100644 +index 0000000..88605b3 +--- /dev/null ++++ b/mpn/arm64/coff.m4 +@@ -0,0 +1,54 @@ ++divert(-1) ++ ++dnl m4 macros for ARM64 COFF assembler. ++ ++dnl Copyright 2020 Free Software Foundation, Inc. ++ ++dnl This file is part of the GNU MP Library. ++dnl ++dnl The GNU MP Library is free software; you can redistribute it and/or modify ++dnl it under the terms of either: ++dnl ++dnl * the GNU Lesser General Public License as published by the Free ++dnl Software Foundation; either version 3 of the License, or (at your ++dnl option) any later version. ++dnl ++dnl or ++dnl ++dnl * the GNU General Public License as published by the Free Software ++dnl Foundation; either version 2 of the License, or (at your option) any ++dnl later version. ++dnl ++dnl or both in parallel, as here. ++dnl ++dnl The GNU MP Library is distributed in the hope that it will be useful, but ++dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++dnl for more details. ++dnl ++dnl You should have received copies of the GNU General Public License and the ++dnl GNU Lesser General Public License along with the GNU MP Library. If not, ++dnl see https://www.gnu.org/licenses/. ++ ++ ++dnl Standard commenting is with @, the default m4 # is for constants and we ++dnl don't want to disable macro expansions in or after them. ++ ++changecom ++ ++ ++dnl LEA_HI(reg,gmp_symbol), LEA_LO(reg,gmp_symbol) ++dnl ++dnl Load the address of gmp_symbol into a register. We split this into two ++dnl parts to allow separation for manual insn scheduling. ++ ++define(`LEA_HI', `ldr $1, =$2')dnl ++define(`LEA_LO')dnl ++ ++dnl Usage: ALIGN(bytes) ++dnl ++dnl Emit a ".align" directive. ++ ++define(`ALIGN', ` .align 8')dnl ++ ++divert`'dnl diff --git a/vcpkg/ports/gmp/asmflags.patch b/vcpkg/ports/gmp/asmflags.patch new file mode 100644 index 0000000..f519b8c --- /dev/null +++ b/vcpkg/ports/gmp/asmflags.patch @@ -0,0 +1,46 @@ +diff --git a/acinclude.m4 b/acinclude.m4 +index 86175ce42..8228d20dc 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -1649,7 +1649,7 @@ AC_DEFUN([GMP_TRY_ASSEMBLE], + [cat >conftest.s <<EOF + [$1] + EOF +-gmp_assemble="$CCAS $CFLAGS $CPPFLAGS conftest.s >conftest.out 2>&1" ++gmp_assemble="$CCAS $CPPFLAGS $ASMFLAGS conftest.s >conftest.out 2>&1" + if AC_TRY_EVAL(gmp_assemble); then + cat conftest.out >&AC_FD_CC + ifelse([$2],,:,[$2]) +@@ -2382,7 +2382,7 @@ for tmp_underscore in "" "_"; do + ${tmp_gsym_prefix}main$gmp_cv_asm_label_suffix + addl $ ${tmp_underscore}_GLOBAL_OFFSET_TABLE_, %ebx + EOF +- gmp_compile="$CCAS $CFLAGS $CPPFLAGS $lt_prog_compiler_pic conftest.s >&AC_FD_CC && $CC $CFLAGS $CPPFLAGS $lt_prog_compiler_pic conftest.$OBJEXT >&AC_FD_CC" ++ gmp_compile="$CCAS $CPPFLAGS $ASMFLAGS $lt_prog_compiler_pic conftest.s >&AC_FD_CC && $CC $CPPFLAGS $ASMFLAGS $lt_prog_compiler_pic conftest.$OBJEXT >&AC_FD_CC" + if AC_TRY_EVAL(gmp_compile); then + if test "$tmp_underscore" = "_"; then + gmp_cv_asm_x86_got_underscore=yes +@@ -2556,7 +2556,7 @@ movq-bug) + AC_MSG_WARN([+----------------------------------------------------------]) + AC_MSG_WARN([| WARNING WARNING WARNING]) + AC_MSG_WARN([| Host CPU has MMX code, but the assembler]) +- AC_MSG_WARN([| $CCAS $CFLAGS $CPPFLAGS]) ++ AC_MSG_WARN([| $CCAS $CPPFLAGS $ASMFLAGS]) + AC_MSG_WARN([| has the Solaris 2.6 and 2.7 bug where register to register]) + AC_MSG_WARN([| movq operands are reversed.]) + AC_MSG_WARN([| Non-MMX replacements will be used.]) +diff --git a/mpn/Makeasm.am b/mpn/Makeasm.am +index 5d7306c22..75692128d 100644 +--- a/mpn/Makeasm.am ++++ b/mpn/Makeasm.am +@@ -31,8 +31,9 @@ + + # COMPILE minus CC. + # ++# Only used with CCAS + COMPILE_FLAGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ +- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(ASMFLAGS) ++ $(CPPFLAGS) $(ASMFLAGS) + + # Flags used for preprocessing (in ansi2knr rules). + # diff --git a/vcpkg/ports/gmp/c23.patch b/vcpkg/ports/gmp/c23.patch new file mode 100644 index 0000000..38c18aa --- /dev/null +++ b/vcpkg/ports/gmp/c23.patch @@ -0,0 +1,37 @@ +diff --git a/acinclude.m4 b/acinclude.m4 +index e84c5c785..8e7bb4ae7 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -564,23 +564,6 @@ + } + ]) + +-# __builtin_alloca is not available everywhere, check it exists before +-# seeing that it works +-GMP_PROG_CC_WORKS_PART_TEST([$1],[__builtin_alloca availability], +-[int k; int foo () { __builtin_alloca (k); }], +- [GMP_PROG_CC_WORKS_PART([$1], [alloca array], +-[/* The following provokes an internal compiler error from Itanium HP-UX cc +- under +O2 or higher. We use this sort of code in mpn/generic/mul_fft.c. */ +-int k; +-int foo () +-{ +- int i, **a; +- a = __builtin_alloca (k); +- for (i = 0; i <= k; i++) +- a[i] = __builtin_alloca (1 << i); +-} +-])]) +- + GMP_PROG_CC_WORKS_PART([$1], [abs int -> double conversion], + [/* The following provokes an internal error from the assembler on + power2-ibm-aix4.3.1.0. gcc -mrios2 compiles to nabs+fcirz, and this +@@ -609,7 +609,7 @@ + + #if defined (__GNUC__) && ! defined (__cplusplus) + typedef unsigned long long t1;typedef t1*t2; +-void g(){} ++void g(int,t1 const*,t1,t2,t1 const*,int){} + void h(){} + static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0) + {t1 c,x,r;int i;if(v0){c=1;for(i=1;i<n;i++){x=up[i];r=x+1;rp[i]=r;}}return c;} diff --git a/vcpkg/ports/gmp/cross-tools.patch b/vcpkg/ports/gmp/cross-tools.patch new file mode 100644 index 0000000..422feca --- /dev/null +++ b/vcpkg/ports/gmp/cross-tools.patch @@ -0,0 +1,113 @@ +diff --git a/Makefile.am b/Makefile.am +index 03356e0..9651b59 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,3 +1,7 @@ ++# Using native tools, either this build or from host triplet ++HOST_TOOLS_PREFIX ?= . ++CC_FOR_BUILD = $(CC) $(CPPFLAGS) $(CFLAGS) ++ + ## Process this file with automake to generate Makefile.in + + +@@ -345,8 +349,8 @@ install-data-hook: + + EXTRA_DIST += bootstrap.c + +-fac_table.h: gen-fac$(EXEEXT_FOR_BUILD) +- ./gen-fac $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >fac_table.h || (rm -f fac_table.h; exit 1) ++fac_table.h: $(HOST_TOOLS_PREFIX)/gen-fac$(EXEEXT_FOR_BUILD) ++ $(HOST_TOOLS_PREFIX)/gen-fac $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >fac_table.h || (rm -f fac_table.h; exit 1) + BUILT_SOURCES += fac_table.h + + gen-fac$(EXEEXT_FOR_BUILD): gen-fac$(U_FOR_BUILD).c bootstrap.c +@@ -354,8 +358,8 @@ gen-fac$(EXEEXT_FOR_BUILD): gen-fac$(U_FOR_BUILD).c bootstrap.c + DISTCLEANFILES += gen-fac$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-fac.c + +-sieve_table.h: gen-sieve$(EXEEXT_FOR_BUILD) +- ./gen-sieve $(GMP_LIMB_BITS) >sieve_table.h || (rm -f sieve_table.h; exit 1) ++sieve_table.h: $(HOST_TOOLS_PREFIX)/gen-sieve$(EXEEXT_FOR_BUILD) ++ $(HOST_TOOLS_PREFIX)/gen-sieve $(GMP_LIMB_BITS) >sieve_table.h || (rm -f sieve_table.h; exit 1) + BUILT_SOURCES += sieve_table.h + + gen-sieve$(EXEEXT_FOR_BUILD): gen-sieve$(U_FOR_BUILD).c bootstrap.c +@@ -364,12 +368,12 @@ DISTCLEANFILES += gen-sieve$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-sieve.c + + +-fib_table.h: gen-fib$(EXEEXT_FOR_BUILD) +- ./gen-fib header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >fib_table.h || (rm -f fib_table.h; exit 1) ++fib_table.h: $(HOST_TOOLS_PREFIX)/gen-fib$(EXEEXT_FOR_BUILD) ++ $(HOST_TOOLS_PREFIX)/gen-fib header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >fib_table.h || (rm -f fib_table.h; exit 1) + BUILT_SOURCES += fib_table.h + +-mpn/fib_table.c: gen-fib$(EXEEXT_FOR_BUILD) +- ./gen-fib table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/fib_table.c || (rm -f mpn/fib_table.c; exit 1) ++mpn/fib_table.c: $(HOST_TOOLS_PREFIX)/gen-fib$(EXEEXT_FOR_BUILD) ++ $(HOST_TOOLS_PREFIX)/gen-fib table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/fib_table.c || (rm -f mpn/fib_table.c; exit 1) + BUILT_SOURCES += mpn/fib_table.c + + gen-fib$(EXEEXT_FOR_BUILD): gen-fib$(U_FOR_BUILD).c bootstrap.c +@@ -378,12 +382,12 @@ DISTCLEANFILES += gen-fib$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-fib.c + + +-mp_bases.h: gen-bases$(EXEEXT_FOR_BUILD) +- ./gen-bases header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mp_bases.h || (rm -f mp_bases.h; exit 1) ++mp_bases.h: $(HOST_TOOLS_PREFIX)/gen-bases$(EXEEXT_FOR_BUILD) ++ $(HOST_TOOLS_PREFIX)/gen-bases header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mp_bases.h || (rm -f mp_bases.h; exit 1) + BUILT_SOURCES += mp_bases.h + +-mpn/mp_bases.c: gen-bases$(EXEEXT_FOR_BUILD) +- ./gen-bases table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/mp_bases.c || (rm -f mpn/mp_bases.c; exit 1) ++mpn/mp_bases.c: $(HOST_TOOLS_PREFIX)/gen-bases$(EXEEXT_FOR_BUILD) ++ $(HOST_TOOLS_PREFIX)/gen-bases table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/mp_bases.c || (rm -f mpn/mp_bases.c; exit 1) + BUILT_SOURCES += mpn/mp_bases.c + + gen-bases$(EXEEXT_FOR_BUILD): gen-bases$(U_FOR_BUILD).c bootstrap.c +@@ -392,8 +396,8 @@ DISTCLEANFILES += gen-bases$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-bases.c + + +-trialdivtab.h: gen-trialdivtab$(EXEEXT_FOR_BUILD) +- ./gen-trialdivtab $(GMP_LIMB_BITS) 8000 >trialdivtab.h || (rm -f trialdivtab.h; exit 1) ++trialdivtab.h: $(HOST_TOOLS_PREFIX)/gen-trialdivtab$(EXEEXT_FOR_BUILD) ++ $(HOST_TOOLS_PREFIX)/gen-trialdivtab $(GMP_LIMB_BITS) 8000 >trialdivtab.h || (rm -f trialdivtab.h; exit 1) + BUILT_SOURCES += trialdivtab.h + + gen-trialdivtab$(EXEEXT_FOR_BUILD): gen-trialdivtab$(U_FOR_BUILD).c bootstrap.c +@@ -402,8 +406,8 @@ DISTCLEANFILES += gen-trialdivtab$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-trialdivtab.c + + +-mpn/jacobitab.h: gen-jacobitab$(EXEEXT_FOR_BUILD) +- ./gen-jacobitab >mpn/jacobitab.h || (rm -f mpn/jacobitab.h; exit 1) ++mpn/jacobitab.h: $(HOST_TOOLS_PREFIX)/gen-jacobitab$(EXEEXT_FOR_BUILD) ++ $(HOST_TOOLS_PREFIX)/gen-jacobitab >mpn/jacobitab.h || (rm -f mpn/jacobitab.h; exit 1) + BUILT_SOURCES += mpn/jacobitab.h + + gen-jacobitab$(EXEEXT_FOR_BUILD): gen-jacobitab$(U_FOR_BUILD).c +@@ -412,8 +416,8 @@ DISTCLEANFILES += gen-jacobitab$(EXEEXT_FOR_BUILD) + EXTRA_DIST += gen-jacobitab.c + + +-mpn/perfsqr.h: gen-psqr$(EXEEXT_FOR_BUILD) +- ./gen-psqr $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/perfsqr.h || (rm -f mpn/perfsqr.h; exit 1) ++mpn/perfsqr.h: $(HOST_TOOLS_PREFIX)/gen-psqr$(EXEEXT_FOR_BUILD) ++ $(HOST_TOOLS_PREFIX)/gen-psqr $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/perfsqr.h || (rm -f mpn/perfsqr.h; exit 1) + BUILT_SOURCES += mpn/perfsqr.h + + gen-psqr$(EXEEXT_FOR_BUILD): gen-psqr$(U_FOR_BUILD).c bootstrap.c +diff --git a/acinclude.m4 b/acinclude.m4 +index aea4c38..aaef13a 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -3833,6 +3833,7 @@ if AC_TRY_EVAL(gmp_compile); then + if (./a.out || ./b.out || ./a.exe || ./a_out.exe || ./conftest) >&AC_FD_CC 2>&1; then + cc_for_build_works=yes + fi ++ cc_for_build_works=yes # forced + fi + rm -f conftest* a.out b.out a.exe a_out.exe + AC_MSG_RESULT($cc_for_build_works) diff --git a/vcpkg/ports/gmp/msvc_symbol.patch b/vcpkg/ports/gmp/msvc_symbol.patch new file mode 100644 index 0000000..a7dc88f --- /dev/null +++ b/vcpkg/ports/gmp/msvc_symbol.patch @@ -0,0 +1,28 @@ +diff --git a/configure.ac b/configure.ac +index cafdb3c..3c3e3c8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2702,9 +2702,7 @@ Use "--disable-static --enable-shared" to build just a DLL.]) + # __isascii, but for some reason not the plain isascii. + # + if test "$enable_shared" = yes; then +- GMP_LDFLAGS="$GMP_LDFLAGS -no-undefined -Wl,--export-all-symbols" +- LIBGMP_LDFLAGS="$LIBGMP_LDFLAGS -Wl,--output-def,.libs/libgmp-3.dll.def" +- LIBGMPXX_LDFLAGS="$LIBGMP_LDFLAGS -Wl,--output-def,.libs/libgmpxx-3.dll.def" ++ GMP_LDFLAGS="$GMP_LDFLAGS -no-undefined" + LIBGMP_DLL=1 + fi + ;; +diff --git a/gmp-h.in b/gmp-h.in +index 3d449d4..18a03b7 100644 +--- a/gmp-h.in ++++ b/gmp-h.in +@@ -398,7 +398,7 @@ typedef __mpq_struct *mpq_ptr; + + /* Microsoft's C compiler accepts __inline */ + #ifdef _MSC_VER +-#define __GMP_EXTERN_INLINE __inline ++#define __GMP_EXTERN_INLINE static __inline + #endif + + /* Recent enough Sun C compilers want "inline" */ diff --git a/vcpkg/ports/gmp/portfile.cmake b/vcpkg/ports/gmp/portfile.cmake new file mode 100644 index 0000000..ee9bc04 --- /dev/null +++ b/vcpkg/ports/gmp/portfile.cmake @@ -0,0 +1,133 @@ +if(EXISTS "${CURRENT_INSTALLED_DIR}/include/gmp.h" OR "${CURRENT_INSTALLED_DIR}/include/gmpxx.h")
+ message(FATAL_ERROR "Can't build ${PORT} if mpir is installed. Please remove mpir, and try install ${PORT} again if you need it.")
+endif()
+
+vcpkg_download_distfile(
+ ARCHIVE
+ URLS
+ "https://ftpmirror.gnu.org/gmp/gmp-${VERSION}.tar.xz"
+ "https://ftp.gnu.org/gnu/gmp/gmp-${VERSION}.tar.xz"
+ "https://gmplib.org/download/gmp/gmp-${VERSION}.tar.xz"
+ FILENAME "gmp-${VERSION}.tar.xz"
+ SHA512 e85a0dab5195889948a3462189f0e0598d331d3457612e2d3350799dba2e244316d256f8161df5219538eb003e4b5343f989aaa00f96321559063ed8c8f29fd2
+)
+
+vcpkg_extract_source_archive(SOURCE_PATH
+ ARCHIVE "${ARCHIVE}"
+ SOURCE_BASE "v${VERSION}"
+ PATCHES
+ asmflags.patch
+ cross-tools.patch
+ subdirs.patch
+ msvc_symbol.patch
+ arm64-coff.patch
+ remove_compiler_info.patch
+ c23.patch
+)
+
+vcpkg_list(SET OPTIONS)
+if("fat" IN_LIST FEATURES)
+ vcpkg_list(APPEND OPTIONS "--enable-fat")
+endif()
+
+if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
+ vcpkg_list(APPEND OPTIONS
+ "ac_cv_func_memset=yes"
+ "gmp_cv_asm_w32=.word"
+ "gmp_cv_check_libm_for_build=no"
+ )
+endif()
+
+set(disable_assembly OFF)
+set(ccas "")
+set(asmflags "-c")
+vcpkg_cmake_get_vars(cmake_vars_file)
+include("${cmake_vars_file}")
+if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC")
+ if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ string(APPEND asmflags " --target=i686-pc-windows-msvc")
+ elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ string(APPEND asmflags " --target=x86_64-pc-windows-msvc")
+ elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
+ string(APPEND asmflags " --target=arm64-pc-windows-msvc")
+ else()
+ set(disable_assembly ON)
+ endif()
+ if(NOT disable_assembly)
+ vcpkg_find_acquire_program(CLANG)
+ set(ccas "${CLANG}")
+ endif()
+elseif(VCPKG_TARGET_IS_MINGW AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ # not exporting asm functions
+ set(disable_assembly ON)
+elseif(VCPKG_TARGET_IS_LINUX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(ccas "${VCPKG_DETECTED_CMAKE_C_COMPILER}")
+ vcpkg_list(APPEND OPTIONS "ABI=32")
+ string(APPEND asmflags " -m32")
+else()
+ set(ccas "${VCPKG_DETECTED_CMAKE_C_COMPILER}")
+endif()
+
+if(disable_assembly)
+ vcpkg_list(APPEND OPTIONS "--enable-assembly=no")
+elseif(ccas)
+ cmake_path(GET ccas PARENT_PATH ccas_dir)
+ vcpkg_add_to_path("${ccas_dir}")
+ cmake_path(GET ccas FILENAME ccas_command)
+endif()
+vcpkg_list(APPEND OPTIONS "CCAS=${ccas_command}" "ASMFLAGS=${asmflags}")
+
+if(VCPKG_CROSSCOMPILING)
+ set(ENV{HOST_TOOLS_PREFIX} "${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}")
+endif()
+
+if(VCPKG_HOST_IS_WINDOWS)
+ # dumpbin detection fails with autoconf 2.72
+ set(ENV{WANT_AUTOCONF} 2.71)
+endif()
+vcpkg_configure_make(
+ SOURCE_PATH "${SOURCE_PATH}"
+ AUTOCONFIG
+ ADDITIONAL_MSYS_PACKAGES
+ DIRECT_PACKAGES
+ "https://mirror.msys2.org/msys/x86_64/autoconf2.71-2.71-3-any.pkg.tar.zst"
+ dd312c428b2e19afd00899eb53ea4255794dea4c19d1d6dea2419cb6a54209ea2130d48abbc20af12196b9f628143436f736fbf889809c2c2291be0c69c0e306
+ OPTIONS
+ ${OPTIONS}
+ --enable-cxx
+ --with-pic
+ --with-readline=no
+ "gmp_cv_prog_exeext_for_build=${VCPKG_HOST_EXECUTABLE_SUFFIX}"
+)
+vcpkg_install_make()
+vcpkg_fixup_pkgconfig()
+
+if(NOT VCPKG_CROSSCOMPILING)
+ file(INSTALL
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen-bases${VCPKG_HOST_EXECUTABLE_SUFFIX}"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen-fac${VCPKG_HOST_EXECUTABLE_SUFFIX}"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen-fib${VCPKG_HOST_EXECUTABLE_SUFFIX}"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen-jacobitab${VCPKG_HOST_EXECUTABLE_SUFFIX}"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen-psqr${VCPKG_HOST_EXECUTABLE_SUFFIX}"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen-sieve${VCPKG_HOST_EXECUTABLE_SUFFIX}"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen-trialdivtab${VCPKG_HOST_EXECUTABLE_SUFFIX}"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}"
+ USE_SOURCE_PERMISSIONS
+ )
+ vcpkg_copy_tool_dependencies("${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}")
+endif()
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+)
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+
+vcpkg_install_copyright(
+ FILE_LIST
+ "${SOURCE_PATH}/README"
+ "${SOURCE_PATH}/COPYING.LESSERv3"
+ "${SOURCE_PATH}/COPYINGv3"
+ "${SOURCE_PATH}/COPYINGv2"
+)
diff --git a/vcpkg/ports/gmp/remove_compiler_info.patch b/vcpkg/ports/gmp/remove_compiler_info.patch new file mode 100644 index 0000000..77871aa --- /dev/null +++ b/vcpkg/ports/gmp/remove_compiler_info.patch @@ -0,0 +1,15 @@ +diff --git a/gmp-h.in b/gmp-h.in +index 648c933582..fa37296fe4 100644 +--- a/gmp-h.in ++++ b/gmp-h.in +@@ -2330,10 +2330,6 @@ enum + GMP_ERROR_MPZ_OVERFLOW = 16 + }; + +-/* Define CC and CFLAGS which were used to build this version of GMP */ +-#define __GMP_CC "@CC@" +-#define __GMP_CFLAGS "@CFLAGS@" +- + /* Major version number is the value of __GNU_MP__ too, above. */ + #define __GNU_MP_VERSION 6 + #define __GNU_MP_VERSION_MINOR 3 diff --git a/vcpkg/ports/gmp/subdirs.patch b/vcpkg/ports/gmp/subdirs.patch new file mode 100644 index 0000000..4c5033f --- /dev/null +++ b/vcpkg/ports/gmp/subdirs.patch @@ -0,0 +1,13 @@ +diff --git a/Makefile.am b/Makefile.am +index 9f92a4f..e35629d 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -117,7 +117,7 @@ LIBGMPXX_LT_REVISION = 0 + LIBGMPXX_LT_AGE = 7 + + +-SUBDIRS = tests mpn mpz mpq mpf printf scanf rand cxx demos tune doc ++SUBDIRS = mpn mpz mpq mpf printf rand cxx + + EXTRA_DIST = configfsf.guess configfsf.sub .gdbinit INSTALL.autoconf \ + COPYING.LESSERv3 COPYINGv2 COPYINGv3 diff --git a/vcpkg/ports/gmp/usage b/vcpkg/ports/gmp/usage new file mode 100644 index 0000000..c8ff10a --- /dev/null +++ b/vcpkg/ports/gmp/usage @@ -0,0 +1,11 @@ +The package gmp can be imported via CMake FindPkgConfig module: + + # gmp + find_package(PkgConfig REQUIRED) + pkg_check_modules(gmp REQUIRED IMPORTED_TARGET gmp) + target_link_libraries(main PkgConfig::gmp) + + # gmpxx + find_package(PkgConfig REQUIRED) + pkg_check_modules(gmpxx REQUIRED IMPORTED_TARGET gmpxx) + target_link_libraries(main PkgConfig::gmpxx) diff --git a/vcpkg/ports/gmp/vcpkg.json b/vcpkg/ports/gmp/vcpkg.json new file mode 100644 index 0000000..65f0e4c --- /dev/null +++ b/vcpkg/ports/gmp/vcpkg.json @@ -0,0 +1,25 @@ +{ + "name": "gmp", + "version": "6.3.0", + "port-version": 3, + "description": "The GNU Multiple Precision Arithmetic Library", + "homepage": "https://gmplib.org", + "license": "LGPL-3.0-only OR GPL-2.0-only", + "supports": "!xbox", + "dependencies": [ + { + "name": "gmp", + "host": true + }, + { + "name": "vcpkg-cmake-get-vars", + "host": true + } + ], + "features": { + "fat": { + "description": "Enable runtime selection of optimized low level routines", + "supports": "!windows | mingw" + } + } +} |