디버그 플래그 세트로 homebrew에서 패키지 (clisp)를 빌드하는 방법 디버그 정보를 포함하는 패키지를 빌드하도록

brew –with-debug-flag-set 패키지 스타일 명령이있어 brew가 디버그 정보를 포함하는 패키지를 빌드하도록 할 수 있습니까?

구체적으로, resp에서 분해가 작동하도록 clisp를 이런 식으로 빌드하고 싶습니다.

나는 라인을 따라 무언가를 상상한다.

brew install clisp --with-debug

또는 그런 것.



답변

Mike McQuaid (Homebrew의 선두 관리자)에 따르면 이것은 불가능합니다.


답변

추출 공식은 .rb내부에 컴파일 옵션이 포함 된 Ruby ( ) 파일입니다. Homebrew brew install|reinstall에서는 수식 이름 대신 URL을 지정할 있으므로 컴파일 플래그를 수식 의 온라인 사본추가하고 gist.github.com 과 같은 서비스에서 호스팅 할 수 있습니다 .

다음은 재정의 된 컴파일 옵션이있는 루비 파일의 예입니다.

def install
   args = std_cmake_args

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

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

std_cmake_argsHomebrew의 interneal에 정의 된는 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문제 해결이 완료되면 표준 기술을 사용하여 비 디버그 버전을 다시 설치해야합니다. 그렇지 않으면 수동으로 업데이트 될 때까지 컴퓨터에 디버그 버전의 라이브러리가 있습니다. 🙂


답변