1# \libs\multiprecision\example\jamfile.v2 2# Runs multiprecision examples. 3# Copyright 2014 John Maddock 4# Copyright Paul A. Bristow 2014. 5# Copyright Christopher Kormanyos 2014 6 7# Distributed under the Boost Software License, Version 1.0. 8# (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 9 10# Bring in the rules for testing. 11import testing ; 12import modules ; 13import path ; 14import ../../config/checks/config : requires ; 15 16local ntl-path = [ modules.peek : NTL_PATH ] ; 17local gmp_path = [ modules.peek : GMP_PATH ] ; 18local mpfr_path = [ modules.peek : MPFR_PATH ] ; 19local mpfi_path = [ modules.peek : MPFI_PATH ] ; 20local tommath_path = [ modules.peek : TOMMATH_PATH ] ; 21 22project 23 : requirements 24 <include>$(gmp_path) 25 <include>$(gmp_path)/mpfr 26 <include>$(gmp_path)/gmpfrxx 27 <include>$(mpfr_path) 28 <include>$(mpfi_path) 29 <include>$(mpfi_path)/src 30 <include>$(tommath_path) 31 <include>../include 32 <include>../../.. 33 34 <toolset>gcc:<cxxflags>-Wno-missing-braces 35 36 # Assembler error "File too big" caused by lots of C++ templates, for example, math/floating_point_examples.cpp. 37 # Some projects on some toolsets may require 38 # <toolset>gcc-mingw:<cxxflags>\"-Wa,-mbig-obj\" 39 # See https://digitalkarabela.com/mingw-w64-how-to-fix-file-too-big-too-many-sections/ 40 # <toolset>gcc-mingw:<cxxflags>-Wa,-mbig-obj # Some projects may overflow assembler and require equivalent of MSVC /bigobj. 41 # Requires version 2.30 of GNU binutils. 42 # Best applied only to projects that require this, see run math/floating_point_examples.cpp below. 43 44 <toolset>darwin:<cxxflags>-Wno-missing-braces 45 <toolset>acc:<cxxflags>+W2068,2461,2236,4070 46 <toolset>intel:<cxxflags>-Qwd264,239 47 <toolset>msvc:<runtime-link>static 48 <toolset>msvc:<link>static 49 <toolset>msvc:<warnings>all 50 <toolset>msvc:<asynch-exceptions>on 51 <toolset>msvc:<define>_CRT_SECURE_NO_DEPRECATE 52 <toolset>msvc:<define>_SCL_SECURE_NO_DEPRECATE 53 <toolset>msvc:<define>_SCL_SECURE_NO_WARNINGS 54 <toolset>msvc:<define>_CRT_SECURE_NO_WARNINGS 55 <toolset>msvc:<cxxflags>/wd4996 56 <toolset>msvc:<cxxflags>/wd4512 57 <toolset>msvc:<cxxflags>/wd4610 58 <toolset>msvc:<cxxflags>/wd4510 59 <toolset>msvc:<cxxflags>/wd4127 60 <toolset>msvc:<cxxflags>/wd4701 61 <toolset>msvc:<cxxflags>/wd4127 62 <toolset>msvc:<cxxflags>/wd4305 63 <toolset>clang:<link>static 64 65 ; 66 67lib gmp : : <search>$(gmp_path) ; 68lib mpfr : : <search>$(gmp_path) <search>$(mpfr_path) <search>$(mpfr_path)/build.vc10/lib/Win32/Debug ; 69lib mpfi : : <search>$(gmp_path) <search>$(mpfr_path) <search>$(mpfr_path)/build.vc10/lib/Win32/Debug <search>$(mpfi_path) <search>$(mpfi_path)/src ; 70lib quadmath ; 71 72if $(tommath_path) 73{ 74 lib tommath : [ GLOB $(tommath_path) : *.c ] : <visibility>global ; 75 TOMMATH = tommath ; 76} 77else 78{ 79 lib tommath : : <search>$(tommath_path) ; 80 TOMMATH = tommath ; 81} 82 83lib no_eh_eg_support : ../test/no_eh_test_support.cpp ; 84 85test-suite examples : 86 87 [ run cpp_int_snips.cpp no_eh_eg_support ] 88 [ run cpp_int_import_export.cpp no_eh_eg_support ] 89 [ run cpp_bin_float_import_export.cpp no_eh_eg_support ] 90 91 [ run cpp_dec_float_snips.cpp no_eh_eg_support ] 92 93 [ run cpp_bin_float_snips.cpp no_eh_eg_support ] 94 95 [ run debug_adaptor_snips.cpp no_eh_eg_support ] 96 [ run float128_snips.cpp quadmath no_eh_eg_support : : : [ check-target-builds ../config//has_float128 : : <build>no ] ] 97 98 [ run floating_point_examples.cpp no_eh_eg_support : : : <toolset>gcc-mingw:<cxxflags>-Wa,-mbig-obj ] # See note above. 99 [ run gauss_laguerre_quadrature.cpp no_eh_eg_support : : : release [ requires cxx11_lambdas ] ] 100 [ run hypergeometric_luke_algorithms.cpp no_eh_eg_support ../../chrono/build//boost_chrono ../../system/build//boost_system : : : [ requires cxx11_nullptr ] ] 101 [ run integer_examples.cpp no_eh_eg_support ] 102 [ run logged_adaptor.cpp no_eh_eg_support mpfi mpfr gmp : : : [ check-target-builds ../config//has_mpfi : : <build>no ] ] 103 [ run mixed_integer_arithmetic.cpp no_eh_eg_support ] 104 [ run numeric_limits_snips.cpp no_eh_eg_support /boost//test_exec_monitor : : : [ requires cxx11_numeric_limits ] [ check-target-builds ../config//has_float128 : <source>quadmath ] ] 105 [ run random_snips.cpp gmp no_eh_eg_support : : : [ requires cxx11_explicit_conversion_operators ] [ check-target-builds ../config//has_gmp : : <build>no ] ] 106 [ run safe_prime.cpp no_eh_eg_support ] 107 108 [ run gmp_snips.cpp gmp no_eh_eg_support : : : [ check-target-builds ../config//has_gmp : : <build>no ] ] 109 [ run mpfi_snips.cpp mpfi mpfr gmp no_eh_eg_support : : : [ check-target-builds ../config//has_mpfi : : <build>no ] ] 110 [ run mpfr_snips.cpp mpfr gmp no_eh_eg_support : : : [ check-target-builds ../config//has_mpfr : : <build>no ] ] 111 [ run tommath_snips.cpp $(TOMMATH) no_eh_eg_support : : : [ check-target-builds ../config//has_tommath : : <build>no ] ] 112 [ compile constexpr_float_arithmetic_examples.cpp : [ requires cxx14_constexpr cxx17_if_constexpr ] ] 113 114 [ run big_seventh.cpp no_eh_eg_support ] 115 116; 117