aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbert Ziegenhagel <albert.ziegenhagel@outlook.com>2017-08-08 17:48:24 +0200
committerAlbert Ziegenhagel <albert.ziegenhagel@outlook.com>2017-08-08 17:48:24 +0200
commit7e0be3c9cc2d7252f6519bf9891ac48abadfa042 (patch)
treee5aaab6a66c119521b8c4488c8789b74026cb515
parent7fd5f3fe7c5589045a1e656a6289e56a20445be3 (diff)
downloadvcpkg-7e0be3c9cc2d7252f6519bf9891ac48abadfa042.tar.gz
vcpkg-7e0be3c9cc2d7252f6519bf9891ac48abadfa042.zip
[mpfr] add initial port
-rw-r--r--ports/mpfr/CMakeLists.txt275
-rw-r--r--ports/mpfr/CONTROL4
-rw-r--r--ports/mpfr/portfile.cmake23
3 files changed, 302 insertions, 0 deletions
diff --git a/ports/mpfr/CMakeLists.txt b/ports/mpfr/CMakeLists.txt
new file mode 100644
index 000000000..8a989ff28
--- /dev/null
+++ b/ports/mpfr/CMakeLists.txt
@@ -0,0 +1,275 @@
+cmake_minimum_required(VERSION 3.3.0)
+
+project(MPFR VERSION 3.1.5 LANGUAGES C)
+
+# Find GMP (or MPIR)
+find_library(GMP_LIBRARY NAMES gmp mpir)
+find_path(GMP_INCLUDE_DIR "gmp.h")
+
+set(GMP_LIBRARIES ${GMP_LIBRARY})
+set(GMP_INCLUDE_DIRS ${GMP_INCLUDE_DIR})
+
+# Sources
+set(SRCS
+ src/mpfr.h
+ src/mpf2mpfr.h
+ src/mpfr-gmp.h
+ src/mpfr-impl.h
+ src/mpfr-intmax.h
+ src/mpfr-longlong.h
+ src/mpfr-thread.h
+ src/exceptions.c
+ src/extract.c
+ src/uceil_exp2.c
+ src/uceil_log2.c
+ src/ufloor_log2.c
+ src/add.c
+ src/add1.c
+ src/add_ui.c
+ src/agm.c
+ src/clear.c
+ src/cmp.c
+ src/cmp_abs.c
+ src/cmp_si.c
+ src/cmp_ui.c
+ src/comparisons.c
+ src/div_2exp.c
+ src/div_2si.c
+ src/div_2ui.c
+ src/div.c
+ src/div_ui.c
+ src/dump.c
+ src/eq.c
+ src/exp10.c
+ src/exp2.c
+ src/exp3.c
+ src/exp.c
+ src/frac.c
+ src/frexp.c
+ src/get_d.c
+ src/get_exp.c
+ src/get_str.c
+ src/init.c
+ src/inp_str.c
+ src/isinteger.c
+ src/isinf.c
+ src/isnan.c
+ src/isnum.c
+ src/const_log2.c
+ src/log.c
+ src/modf.c
+ src/mul_2exp.c
+ src/mul_2si.c
+ src/mul_2ui.c
+ src/mul.c
+ src/mul_ui.c
+ src/neg.c
+ src/next.c
+ src/out_str.c
+ src/printf.c
+ src/vasprintf.c
+ src/const_pi.c
+ src/pow.c
+ src/pow_si.c
+ src/pow_ui.c
+ src/print_raw.c
+ src/print_rnd_mode.c
+ src/reldiff.c
+ src/round_prec.c
+ src/set.c
+ src/setmax.c
+ src/setmin.c
+ src/set_d.c
+ src/set_dfl_prec.c
+ src/set_exp.c
+ src/set_rnd.c
+ src/set_f.c
+ src/set_prc_raw.c
+ src/set_prec.c
+ src/set_q.c
+ src/set_si.c
+ src/set_str.c
+ src/set_str_raw.c
+ src/set_ui.c
+ src/set_z.c
+ src/sqrt.c
+ src/sqrt_ui.c
+ src/sub.c
+ src/sub1.c
+ src/sub_ui.c
+ src/rint.c
+ src/ui_div.c
+ src/ui_sub.c
+ src/urandom.c
+ src/urandomb.c
+ src/get_z_exp.c
+ src/swap.c
+ src/factorial.c
+ src/cosh.c
+ src/sinh.c
+ src/tanh.c
+ src/sinh_cosh.c
+ src/acosh.c
+ src/asinh.c
+ src/atanh.c
+ src/atan.c
+ src/cmp2.c
+ src/exp_2.c
+ src/asin.c
+ src/const_euler.c
+ src/cos.c
+ src/sin.c
+ src/tan.c
+ src/fma.c
+ src/fms.c
+ src/hypot.c
+ src/log1p.c
+ src/expm1.c
+ src/log2.c
+ src/log10.c
+ src/ui_pow.c
+ src/ui_pow_ui.c
+ src/minmax.c
+ src/dim.c
+ src/signbit.c
+ src/copysign.c
+ src/setsign.c
+ src/gmp_op.c
+ src/init2.c
+ src/acos.c
+ src/sin_cos.c
+ src/set_nan.c
+ src/set_inf.c
+ src/set_zero.c
+ src/powerof2.c
+ src/gamma.c
+ src/set_ld.c
+ src/get_ld.c
+ src/cbrt.c
+ src/volatile.c
+ src/fits_s.h
+ src/fits_sshort.c
+ src/fits_sint.c
+ src/fits_slong.c
+ src/fits_u.h
+ src/fits_ushort.c
+ src/fits_uint.c
+ src/fits_ulong.c
+ src/fits_uintmax.c
+ src/fits_intmax.c
+ src/get_si.c
+ src/get_ui.c
+ src/zeta.c
+ src/cmp_d.c
+ src/erf.c
+ src/inits.c
+ src/inits2.c
+ src/clears.c
+ src/sgn.c
+ src/check.c
+ src/sub1sp.c
+ src/version.c
+ src/mpn_exp.c
+ src/mpfr-gmp.c
+ src/mp_clz_tab.c
+ src/sum.c
+ src/add1sp.c
+ src/free_cache.c
+ src/si_op.c
+ src/cmp_ld.c
+ src/set_ui_2exp.c
+ src/set_si_2exp.c
+ src/set_uj.c
+ src/set_sj.c
+ src/get_sj.c
+ src/get_uj.c
+ src/get_z.c
+ src/iszero.c
+ src/cache.c
+ src/sqr.c
+ src/int_ceil_log2.c
+ src/isqrt.c
+ src/strtofr.c
+ src/pow_z.c
+ src/logging.c
+ src/mulders.c
+ src/get_f.c
+ src/round_p.c
+ src/erfc.c
+ src/atan2.c
+ src/subnormal.c
+ src/const_catalan.c
+ src/root.c
+ src/gen_inverse.h
+ src/sec.c
+ src/csc.c
+ src/cot.c
+ src/eint.c
+ src/sech.c
+ src/csch.c
+ src/coth.c
+ src/round_near_x.c
+ src/constant.c
+ src/abort_prec_max.c
+ src/stack_interface.c
+ src/lngamma.c
+ src/zeta_ui.c
+ src/set_d64.c
+ src/get_d64.c
+ src/jn.c
+ src/yn.c
+ src/rem1.c
+ src/get_patches.c
+ src/add_d.c
+ src/sub_d.c
+ src/d_sub.c
+ src/mul_d.c
+ src/div_d.c
+ src/d_div.c
+ src/li2.c
+ src/rec_sqrt.c
+ src/min_prec.c
+ src/buildopt.c
+ src/digamma.c
+ src/bernoulli.c
+ src/isregular.c
+ src/set_flt.c
+ src/get_flt.c
+ src/scale2.c
+ src/set_z_exp.c
+ src/ai.c
+ src/gammaonethird.c
+ src/ieee_floats.h
+ src/grandom.c)
+
+configure_file("src/mparam_h.in" "mparam.h")
+
+# Create and configure the target
+add_library(mpfr ${SRCS})
+
+# target_compile_definitions(mpfr PRIVATE HAVE_CONFIG_H)
+target_compile_definitions(mpfr PRIVATE __MPFR_WITHIN_MPFR)
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(mpfr PRIVATE __GMP_LIBGMP_DLL)
+endif()
+
+target_link_libraries(mpfr ${GMP_LIBRARIES})
+
+target_include_directories(mpfr PUBLIC ${GMP_INCLUDE_DIRS})
+target_include_directories(mpfr PRIVATE ${CMAKE_BINARY_DIR})
+target_include_directories(mpfr PRIVATE ${PROJECT_SOURCE_DIR})
+target_include_directories(mpfr PRIVATE ${PROJECT_SOURCE_DIR}/src)
+
+# Install
+install(
+ TARGETS mpfr
+ EXPORT MPFRExports
+ RUNTIME DESTINATION "bin"
+ LIBRARY DESTINATION "lib"
+ ARCHIVE DESTINATION "lib"
+ )
+
+install(
+ FILES src/mpfr.h
+ DESTINATION "include"
+) \ No newline at end of file
diff --git a/ports/mpfr/CONTROL b/ports/mpfr/CONTROL
new file mode 100644
index 000000000..16224d73b
--- /dev/null
+++ b/ports/mpfr/CONTROL
@@ -0,0 +1,4 @@
+Source: mpfr
+Version: 3.1.5
+Description: The MPFR library is a C library for multiple-precision floating-point computations with correct rounding
+Build-Depends: mpir \ No newline at end of file
diff --git a/ports/mpfr/portfile.cmake b/ports/mpfr/portfile.cmake
new file mode 100644
index 000000000..6a61d4038
--- /dev/null
+++ b/ports/mpfr/portfile.cmake
@@ -0,0 +1,23 @@
+include(vcpkg_common_functions)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mpfr-3.1.5)
+vcpkg_download_distfile(ARCHIVE
+ URLS "http://www.mpfr.org/mpfr-current/mpfr-3.1.5.tar.xz"
+ FILENAME "mpfr-3.1.5.tar.xz"
+ SHA512 3643469b9099b31e41d6ec9158196cd1c30894030c8864ee5b1b1e91b488bccbf7c263c951b03fe9f4ae6f9d29279e157a7dfed0885467d875f107a3d964f032
+)
+
+vcpkg_extract_source_archive(${ARCHIVE})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/mpfr)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/mpfr/COPYING ${CURRENT_PACKAGES_DIR}/share/mpfr/copyright)