Skip to content
This repository has been archived by the owner on Jan 30, 2023. It is now read-only.

Commit

Permalink
sage.misc.cython: Add NTL aliases, cache result of cython_aliases
Browse files Browse the repository at this point in the history
  • Loading branch information
Matthias Koeppe committed Feb 9, 2021
1 parent ce03e6b commit 32576b4
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 16 deletions.
4 changes: 2 additions & 2 deletions src/sage/env.py
Original file line number Diff line number Diff line change
Expand Up @@ -476,8 +476,8 @@ def uname_specific(name, value, alternative):

# NTL
aliases["NTL_CFLAGS"] = []
aliases["NTL_INCDIR"] = os.path.join(NTL_PREFIX, 'include')
aliases["NTL_LIBDIR"] = os.path.join(NTL_PREFIX, 'lib')
aliases["NTL_INCDIR"] = [os.path.join(NTL_PREFIX, 'include')] if NTL_PREFIX else []
aliases["NTL_LIBDIR"] = [os.path.join(NTL_PREFIX, 'lib')] if NTL_PREFIX else []
aliases["NTL_LIBRARIES"] = ['ntl']
aliases["NTL_LIBEXTRA"] = []

Expand Down
28 changes: 14 additions & 14 deletions src/sage/misc/cython.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,28 +34,28 @@
from sage.misc.cachefunc import cached_function

@cached_function
def _standard_libs_libdirs():
def _standard_libs_libdirs_incdirs_aliases():
r"""
Return the list of libraries and library directories.
EXAMPLES::
sage: from sage.misc.cython import _standard_libs_libdirs
sage: _standard_libs_libdirs()
sage: from sage.misc.cython import _standard_libs_libdirs_incdirs_aliases
sage: _standard_libs_libdirs_incdirs_aliases()
(['mpfr', 'gmp', 'gmpxx', 'pari', ...],
[...])
[...],
[...],
{...})
"""
cblas_pc = pkgconfig.parse(get_cblas_pc_module_name())
cblas_libs = list(cblas_pc['libraries'])
cblas_library_dirs = list(cblas_pc['library_dirs'])
cblas_include_dirs = list(cblas_pc['include_dirs'])
aliases = cython_aliases()
standard_libs = [
'mpfr', 'gmp', 'gmpxx', 'pari', 'm',
'ec', 'gsl',
] + cblas_libs + [
] + aliases["CBLAS_LIBRARIES"] + [
'ntl']
standard_libdirs = [os.path.join(SAGE_LOCAL, "lib")] + cblas_library_dirs
return standard_libs, standard_libdirs
standard_libdirs = [os.path.join(SAGE_LOCAL, "lib")] + aliases["CBLAS_LIBDIR"] + aliases["NTL_LIBDIR"]
standard_incdirs = sage_include_directories() + aliases["CBLAS_INCDIR"] + aliases["NTL_INCDIR"]
return standard_libs, standard_libdirs, standard_incdirs, aliases

################################################################
# If the user attaches a .spyx file and changes it, we have
Expand Down Expand Up @@ -277,7 +277,8 @@ def cython(filename, verbose=0, compile_message=False,

# Add current working directory to includes. This is needed because
# we cythonize from a different directory. See Trac #24764.
includes = [os.getcwd()] + sage_include_directories()
standard_libs, standard_libdirs, standard_includes, aliases = _standard_libs_libdirs_incdirs_aliases()
includes = [os.getcwd()] + standard_includes

# Now do the actual build, directly calling Cython and distutils
from Cython.Build import cythonize
Expand Down Expand Up @@ -321,7 +322,6 @@ def cython(filename, verbose=0, compile_message=False,
'-Wl,--image-base=0x{:x}'.format(image_base)
])

standard_libs, standard_libdirs = _standard_libs_libdirs()
ext = Extension(name,
sources=[pyxfile],
extra_compile_args=extra_compile_args,
Expand All @@ -337,7 +337,7 @@ def cython(filename, verbose=0, compile_message=False,
with restore_cwd(target_dir):
try:
ext, = cythonize([ext],
aliases=cython_aliases(),
aliases=aliases,
include_path=includes,
compiler_directives=directives,
quiet=(verbose <= 0),
Expand Down

0 comments on commit 32576b4

Please sign in to comment.