デバッグビルドの使用

Pythonパッケージのネイティブコードの開発では、デバッグビルドを使用したいと思うかもしれません。それには、-Dbuildtype=debugオプションをmeson setupに渡す必要があります。これは-Ddebug=true -Doptimization=0というオプションと同じものです。また、固定ビルドディレクトリで編集可能なビルドを設定するとよいでしょう。そうすれば、インストールされたデバッグビルドの共有ライブラリには、正しいパスが含まれます。そうしないと、meson-pythonが使用する一時ビルドディレクトリへのパスになってしまいます。その場合、IDEやその他のツールは、デバッグ中も正しいファイルの場所と行番号を表示できません。

次のpip呼び出しですべて行えます

$ pip install -e . --no-build-isolation \
    -Csetup-args=-Dbuildtype=debug \
    -Cbuild-dir=build-dbg

パッケージのこのデバッグビルドは、通常のPythonインタープリターでもデバッグ用Pythonインタープリターでも使用できます。デバッグ用Pythonインタープリターは必須ではありませんが、役立つ場合があります。ソースからビルドされるか、選択したパッケージマネージャーから入手できる可能性があります(通常はpython-dbgなどのパッケージ名です)。デバッグ用Pythonインタープリターを使用しても、パッケージ自体のデバッグビルドにはなりません。-Dbuildtype=debugまたはこれと同等のフラグを使用する必要があります。

警告

Conda環境内では、CFLAGSCXXFLAGSなどの環境変数は、通常、環境がアクティブ化されると設定されます。これらの環境変数には、-O2などの最適化フラグが含まれており、これによって-Dbuildtype=debugで暗示される最適化レベルが上書きされます。これを回避するには、これらの変数の設定を解除します

$ unset CFLAGS
$ unset CXXFLAGS

最後に、ビルドタイプをデフォルト値のreleaseからdebugに変更すると、meson-pythonによって(または、より正確には無効化されずに)NDEBUGマクロが定義されなくなります(デフォルトビルドオプションb_ndebugを参照)。