Files
multiprecision/config/Jamfile.v2
T
2020-01-29 11:45:41 +00:00

100 lines
3.9 KiB
Plaintext

# copyright John Maddock 2008
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt.
# Several tests to check configuration of multiprecision configuration.
# Note all are explicit, so much each or all be specified to actually check a specific configuration.
# Examples:
# \boost\libs\multiprecision\config>b2 toolset=clang-win-9.0.0 cxxstd=2a release address-model=64 has_float128 has_constexpr_limits has_is_constant_evaluated > MP_config_clangwin900.log
# \boost\libs\multiprecision\config>b2 -a --debug-configuration toolset=gcc-8.1.0 cxxstd=2a release address-model=64 has_float128 has_constexpr_limits has_is_constant_evaluated >MP_config_gcc810.log
# \boost\libs\multiprecision\config>b2 toolset=msvc-14.2 cxxstd=latest release address-model=64 has_float128 has_constexpr_limits has_is_constant_evaluated >MP_config_msvc142.log
import modules ;
import path ;
local gmp_path = [ modules.peek : GMP_PATH ] ;
local mpfr_path = [ modules.peek : MPFR_PATH ] ;
local mpfi_path = [ modules.peek : MPFI_PATH ] ;
local tommath_path = [ modules.peek : TOMMATH_PATH ] ;
project : requirements
<include>$(gmp_path)
<include>$(gmp_path)/mpfr
<include>$(gmp_path)/gmpfrxx
<include>$(mpfr_path)
<include>$(mpfi_path)
<include>$(mpfi_path)/src
<include>$(tommath_path)
<include>../../..
<search>$(gmp_path)
<search>$(mpfr_path)
<search>$(mpfr_path)/build.vc10/lib/Win32/Debug
<search>$(tommath_path)
<search>$(mpfi_path)
<search>$(mpfi_path)/src
# We set these to make it easier to set up and test GMP and MPFR under Win32:
<toolset>msvc:<runtime-link>static
<toolset>msvc:<link>static
<toolset>intel-win:<runtime-link>static
<toolset>intel-win:<link>static
<toolset>msvc:<warnings>all
<toolset>gcc:<cxxflags>-Wall
<toolset>gcc:<cxxflags>-Wextra
<toolset>gcc:<cxxflags>-fext-numeric-literals # enable suffix Q for float128.
;
lib gmp ;
lib mpfr ;
lib mpfi ;
lib mpc ;
lib quadmath ;
lib tommath ;
lib f2c ;
actions mp_simple_run_action
{
$(>) > $(<)
}
rule mp-run-simple ( sources + : args * : input-files * : requirements * : target-name )
{
exe $(target-name)_exe : $(sources) : $(requirements) ;
explicit $(target-name)_exe ;
make $(target-name).output : $(target-name)_exe : @mp_simple_run_action ;
explicit $(target-name).output ;
alias $(target-name) : $(target-name).output ;
}
mp-run-simple has_gmp.cpp gmp : : :
<include>$(gmp_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx : has_gmp ;
mp-run-simple has_mpfr.cpp mpfr gmp : : :
<include>$(mpfr_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx <include>$(gmp_path) : has_mpfr ;
mp-run-simple has_mpfi.cpp mpfi mpfr gmp : : :
<include>$(mpfr_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx <include>$(gmp_path) : has_mpfi ;
mp-run-simple has_mpc.cpp mpc mpfr gmp : : :
<include>$(mpfr_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx <include>$(gmp_path) : has_mpc ;
mp-run-simple has_tommath.cpp tommath : : :
<include>$(tommath_path) : has_tommath ;
mp-run-simple has_float128.cpp quadmath : : : : has_float128 ;
exe has_intel_quad : has_intel_quad.cpp : <cxxflags>-Qoption,cpp,--extended_float_type ;
exe has_eigen : has_eigen.cpp ;
exe has_f2c : has_f2c.cpp f2c ;
obj has_is_constant_evaluated : has_is_constant_evaluated.cpp ;
obj has_constexpr_limits : has_constexpr_limits_cmd.cpp : <cxxflags>-fconstexpr-ops-limit=268435456 ;
# gcc8.1 g++.exe: error: unrecognized command line option '-fconstexpr-ops-limit=268435456'; did you mean '-fconstexpr-loop-limit='?
explicit has_gmp ;
explicit has_mpfr ;
explicit has_mpfi ;
explicit has_tommath ;
explicit has_float128 ;
explicit has_intel_quad ;
explicit has_mpc ;
explicit has_eigen ;
explicit has_is_constant_evaluated ;
explicit has_constexpr_limits ;
explicit has_f2c ;