Cython
Mesonはバージョン0.59.0以降で、Cythonプログラムのネイティブサポートを提供します。つまり、通常の言語として含め、他のサポート言語と同様にターゲットを作成できます
lib = static_library(
'foo',
'foo.pyx',
)
通常、Cythonはpythonモジュールのextension_moduleメソッドと組み合わせるともっとも役立ちます
project('my project', 'cython')
py = import('python').find_installation()
dep_py = py.dependency()
py.extension_module(
'foo',
'foo.pyx',
dependencies : dep_py,
)
cython_args
引数を使用して、cython
CLIスクリプトで受け入れられる引数を渡すことができます
py.extension_module(
'foo-bounds'
'foo.pyx',
dependencies : dep_py,
cython_args : ['-Xboundscheck=False'],
)
C++中間サポート
(0.60.0の新機能)
これを制御するためのオプション、cython_language
が追加されました。これは'c'
または'cpp'
のいずれかです。
setuptools/distutilsに移行したユーザーには、2つの変更点があります。まず、mesonはインラインディレクティブ# distutils: language = c++
を無視します。 2つ目に、Mesonではターゲットごとにオプションを許可するだけです。つまり、CとC++に変換するcythonファイルを混在させる必要がある場合は、2つのターゲットが必要です
project('my project', 'cython')
cython_cpp_lib = static_library(
'helper_lib',
'foo_cpp.pyx', # will be transpiled to C++
override_options : ['cython_language=cpp'],
)
py.extension_module(
'foo',
'foo.pyx', # will be transpiled to C
link_with : [cython_cpp_lib],
dependencies : dep_py,
)
検索結果は次のとおりです