デバッグフラグを設定してhomebrewでパッケージ(clisp)をビルドするにはどうすればよいですか


1

brewでデバッグ情報を含むパッケージをビルドするために使用できるbrew --with-debug-flag-setパッケージスタイルコマンドはありますか?

具体的には、replで逆アセンブルが機能するように、この方法でclispを構築したいと思います。

私は次のような線に沿って何かを想像します:

brew install clisp --with-debug

または何か。

回答:


1

Mike McQuaid(Homebrewのメインメンテナー)によると、これは不可能です。


直接ではありませんが、コンパイルフラグで許可する必要があります。別の返信に基本的な例を追加しました。:)
tresf

1

抽出式は、.rb内部にコンパイルオプションを含むRuby()ファイルです。Homebrew brew install|reinstallでは、式名の代わりにURLを指定できるため、コンパイルフラグを式のオンラインコピー追加して、gist.github.comなどのサービスでホストできます。

コンパイルオプションがオーバーライドされたサンプルのrubyファイルを次に示します。

def install
   args = std_cmake_args

   # OVERRIDE: Force cmake to use debug flags
   args << "-DCMAKE_BUILD_TYPE=Debug"

   system "cmake", ".", *args
end

std_cmake_args、Homebrewのformula.rb内部で定義されているのは、すべてのHomebrew cmakeフォーミュラの内部変数であり、cmake追加の引数を追加する前に各ビルドに適切なデフォルトを提供します。

この例ではを使用しますcmake。各プロジェクトには独自のコンパイラツールがあるため、コンパイルフラグを追加するためのテクニックが異なる可能性があります。たとえば、cmakeデバッグフラグを使用するように指示するには、args << "-DCMAKE_BUILD_TYPE=Debug"

これらの変更が.rbファイルに加えられ、オンラインでホストされる--build-from-sourceコマンドラインオプションを使用して、新しいオプションでパッケージを再インストールできます。

brew reinstall --build-from-source https://<path to formula>.rb
  1. 警告:を使用する場合gist.github.com、「未加工」バージョンが必要なURLであることに注意してください。そうでない場合は、ページのHTML(コードプレビューなど)をインストールしようとしますが、動作しません。:)

  2. 警告:これにより、指定されたパッケージがデバッグフラグ付きでHomebrewディレクトリに再インストールされるため、古い「リリース」または「最適化された」ビルドは使用できなくなります。brew installトラブルシューティングが完了したら、標準の手法を使用して非デバッグバージョンを再インストールすることを忘れないでください。そうしないと、手動で更新されるまで、コンピューターにライブラリのデバッグバージョンがあります。:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.