Skip to content

Commit

Permalink
src/sage/meson.build.in: This is src/meson.build from PR Compile ever…
Browse files Browse the repository at this point in the history
…ything with meson (sagemath#36524 at 46bc6b4 (2023-12-31) squashed on 10.3.beta4
  • Loading branch information
Tobias Diez authored and mkoeppe committed Apr 27, 2024
1 parent 30ff10d commit 8cf680f
Showing 1 changed file with 150 additions and 0 deletions.
150 changes: 150 additions & 0 deletions src/sage/meson.build.in
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('.')

0 comments on commit 8cf680f

Please sign in to comment.