Mesonへの引数の受け渡し¶
meson-python
は、Python wheel に含めるファイルをビルドするために meson setup
, ninja
, および meson install
コマンドを、Python sdist に含めるファイルを収集するために meson dist
コマンドを呼び出します。これらのコマンドの動作を変更するために、引数を渡すことができます。詳細は、Mesonドキュメントとninjaドキュメントを参照してください。
meson
および ninja
のコマンドライン引数は、pyproject.toml
内のツール固有の設定で、tool.meson-python.args
テーブルの setup
, compile
, install
, および dist
キーに対する文字列のリストとして指定できます。例:
[tool.meson-python.args]
setup = ['-Doption=false', '-Dfeature=enabled', '-Dvalue=42']
compile = ['-j4']
install = ['--tags=bindings']
dist = ['--include-subprojects']
または、Pythonビルドフロントエンドによって渡される構成設定で、setup-args
, compile-args
, install-args
, および dist-args
構成設定 として指定できます。Pythonビルドフロントエンドを介して指定された構成設定は、pyproject.toml
で指定されたものよりも優先され、上書きするために使用できます。
meson-python
は、一部のデフォルトのMesonオプションを、Python wheel のビルドにより適切な 設定 で上書きします。 pyproject.toml
を介して、または Python ビルドフロントエンド構成設定を介して指定されたユーザーオプションは、meson-python
のデフォルトを上書きします。
Windowsでビルドする場合、meson-python
は meson compile
ラッパーを介して ninja
コマンドを呼び出します。$PATH
で GCC コンパイラーまたは LLVM コンパイラーが見つからない場合、これにより Visual Studio 環境がアクティブになり、ninja
で MSVC コンパイラーを使用できるようになります。 Visual Studio 環境を無条件にアクティブにするには、meson setup
に --vsenv
オプションを渡します。この例を参照してください。 meson compile
ラッパーを使用する場合、コンパイルコマンドのユーザー提供オプションは、--ninja-args
オプションを介して渡されます。これにより、動作がビルドの開始方法に依存しないことが保証されます。詳細については、Mesonドキュメントを参照してください。
例¶
デフォルトライブラリを静的に設定する¶
バイナリwheelをビルドするときに、デフォルトのライブラリタイプを静的に設定します。
このオプションをプロジェクトの pyproject.toml
に永続的に設定するには
[tool.meson-python.args]
setup = ['--default-library=static']
このオプションをビルド時に一時的に設定するには
$ python -m build -Csetup-args="--default-library=static" .
$ python -m pip wheel --config-settings=setup-args="--default-library=static" .
wheelに含めるビルドターゲットを選択する¶
meson install
の --tags
コマンドラインオプションを介して、Meson インストールタグを使用して、インストール可能なファイルの一部のみをPython wheelに含めることができます。--tags
が指定されている場合、指定されたタグのいずれかを持つファイルのみがインストールされます。
Mesonは、一部のファイルに事前定義されたタグを設定します。カスタムインストールタグは、ターゲット定義関数に渡される install_tag
キーワード引数を使用して設定できます。この例では、runtime
または python-runtime
でタグ付けされたターゲットのみがPython wheelに含まれています。
このオプションをプロジェクトの pyproject.toml
に永続的に設定するには
[tool.meson-python.args]
install = ['--tags=runtime,python-runtime']
このオプションをビルド時に一時的に設定するには
$ python -m build -Cinstall-args="--tags=runtime,python-runtime" .
$ python -m pip wheel --config-settings=install-args="--tags=runtime,python-runtime" .
ビルド最適化レベルを設定する¶
バイナリwheelをビルドする場合のデフォルトのコンパイル最適化レベルは、現在 2 に設定されています。これは、meson setup
コマンドに -Doptimization
引数を渡すことで上書きできます。
このオプションをプロジェクトの pyproject.toml
に永続的に設定するには
[tool.meson-python.args]
setup = ['-Doptimization=3']
このオプションをビルド時に一時的に設定するには
$ python -m build -Csetup-args="-Doptimization=3" .
$ python -m pip wheel --config-settings=setup-args="-Doptimization=3" .
WindowsでMSVCコンパイラーの使用を強制する¶
MSVCコンパイラーは $PATH
にインストールされていません。 ninja
がこれらのコンパイラーを使用できるようにするには、Visual Studio 環境をアクティブ化する必要があります。これは meson compile
によって処理されますが、GCC コンパイラーまたは LLVM コンパイラーが $PATH
で見つからない場合に限ります。 meson setup
に --vsenv
オプションを渡すと、Visual Studio 環境のアクティブ化が強制され、アクティブ化に失敗するとエラーが生成されます。
このオプションは他のプラットフォームでは効果がないため、プロジェクトをMSVCでコンパイルする必要がある場合は、プロジェクトの pyproject.toml
にこのオプションを永続的に設定することを検討できます。
[tool.meson-python.args]
setup = ['--vsenv']
このオプションをビルド時に一時的に設定するには
$ python -m build -Csetup-args="--vsenv" .
$ python -m pip wheel --config-settings=setup-args="--vsenv" .