forked from sagemath/sage
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
src/sage/meson.build.in: This is src/meson.build from PR Compile ever…
…ything with meson (sagemath#36524 at 46bc6b4 (2023-12-31) squashed on 10.3.beta4
- Loading branch information
Showing
1 changed file
with
150 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
# Setup dependencies that are needed by many modules | ||
|
||
inc_numpy = run_command(py, | ||
[ | ||
'-c', | ||
''' | ||
import numpy | ||
print(numpy.get_include()) | ||
'''.strip() | ||
], | ||
check: true | ||
).stdout().strip() | ||
numpy = declare_dependency( | ||
include_directories: inc_numpy, | ||
) | ||
|
||
inc_cysignals = run_command(py, | ||
[ | ||
'-c', | ||
''' | ||
import cysignals | ||
print(cysignals.__file__.replace('__init__.py', '')) | ||
'''.strip() | ||
], | ||
check: true | ||
).stdout().strip() | ||
cysignals = declare_dependency( | ||
include_directories: inc_cysignals, | ||
) | ||
|
||
inc_gmpy2 = run_command(py, | ||
[ | ||
'-c', | ||
''' | ||
import gmpy2 | ||
print(gmpy2.__file__.replace('__init__.py', '')) | ||
'''.strip() | ||
], | ||
check: true | ||
).stdout().strip() | ||
gmpy2 = declare_dependency( | ||
include_directories: inc_gmpy2, | ||
) | ||
gmp = dependency('gmp', required: true) | ||
|
||
inc_cypari2 = run_command(py, | ||
[ | ||
'-c', | ||
''' | ||
import cypari2 | ||
print(cypari2.__file__.replace('__init__.py', '')) | ||
'''.strip() | ||
], | ||
check: true | ||
).stdout().strip() | ||
cypari2 = declare_dependency( | ||
include_directories: inc_cypari2, | ||
) | ||
pari = cc.find_library('pari') | ||
|
||
mpfr = cc.find_library('mpfr') | ||
|
||
# Cannot be found by pkg-config | ||
flint = cc.find_library('flint') | ||
|
||
cblas = dependency('cblas') | ||
gsl = dependency('gsl', fallback: ['gsl', 'gsl_dep'], version : '>=2.5', required: true) | ||
gd = cc.find_library('gd') | ||
iml = cc.find_library('iml') | ||
m = cc.find_library('m') | ||
m4ri = cc.find_library('m4ri') | ||
m4rie = cc.find_library('m4rie') | ||
mtx = cc.find_library('mtx', required: false) | ||
png = cc.find_library('png') | ||
zlib = cc.find_library('z') | ||
intl = cc.find_library('intl', required: false) | ||
curl = cc.find_library('curl') | ||
# Cannot be found via pkg-config | ||
ec = cc.find_library('ec') | ||
ecm = cc.find_library('ecm') | ||
# Cannot be found via pkg-config | ||
glpk = cc.find_library('glpk') | ||
ppl = cc.find_library('ppl') | ||
gmpxx = cc.find_library('gmpxx') | ||
readline = cc.find_library('readline') | ||
lfunction = cc.find_library('Lfunction', required: false) | ||
fflas = cc.find_library('fflas') | ||
givaro = cc.find_library('givaro') | ||
linbox = cc.find_library('linbox') | ||
braiding = cc.find_library('braiding') | ||
gc = cc.find_library('gc') | ||
homfly = cc.find_library('homfly') | ||
mpc = cc.find_library('mpc') | ||
mpfi = cc.find_library('mpfi') | ||
mpc = cc.find_library('mpc') | ||
# Cannot be found via pkg-config | ||
gap = cc.find_library('gap') | ||
|
||
singular = dependency('Singular') | ||
|
||
maxima = find_program('maxima', required: true) | ||
|
||
# Cannot be found via pkg-config | ||
ntl = cc.find_library('ntl', required: true) | ||
|
||
# It's strange but cython cannot find its own include files | ||
# so we find them ourselves, and add them to the include path | ||
inc_cython = run_command(py, | ||
[ | ||
'-c', | ||
''' | ||
import Cython | ||
print(Cython.__file__.replace('__init__.py', '')) | ||
'''.strip() | ||
], | ||
check: true | ||
).stdout().strip() | ||
add_project_arguments('-I', inc_cython + 'Includes', language : 'cython') | ||
|
||
# Meson currently ignores include_directories for Cython modules, so we | ||
# have to add them manually. | ||
# https://github.com/mesonbuild/meson/issues/9562 | ||
add_project_arguments('-I', meson.current_source_dir(), language : 'cython') | ||
|
||
# Add global compiler flags | ||
add_project_arguments('-X auto_pickle=False', language : 'cython') | ||
add_project_arguments('-X autotestdict=False', language : 'cython') | ||
add_project_arguments('-X binding=False', language : 'cython') | ||
add_project_arguments('-X c_api_binop_methods=True', language : 'cython') | ||
add_project_arguments('-X cdivision=True', language : 'cython') | ||
add_project_arguments('-X cpow=True', language : 'cython') | ||
add_project_arguments('-X embedsignature=True', language : 'cython') | ||
add_project_arguments('--embed-positions', language : 'cython') | ||
add_project_arguments('-X fast_getattr=True', language : 'cython') | ||
#add_project_arguments('-X language_level="3"', language : 'cython') | ||
add_project_arguments('-X legacy_implicit_noexcept=True', language : 'cython') | ||
add_project_arguments('-X preliminary_late_includes_cy28=True', language : 'cython') | ||
|
||
inc_cpython = include_directories('sage/cpython') | ||
inc_rings = include_directories('sage/rings') | ||
inc_rings_finite = include_directories('sage/rings/finite_rings') | ||
inc_flint = include_directories('sage/libs/flint') | ||
inc_gsl = include_directories('sage/libs/gsl') | ||
inc_ntl = include_directories('sage/libs/ntl') | ||
inc_arb = include_directories('sage/libs/arb') | ||
inc_data_structures = include_directories('sage/data_structures') | ||
inc_ext = include_directories('sage/ext') | ||
inc_interpreters = include_directories('sage/ext/interpreters') | ||
inc_partn_ref2 = include_directories('sage/groups/perm_gps/partn_ref2') | ||
inc_src = include_directories('.') |