Connecting up --debug-symbols flag
This connects the calling of dsymutil and the retention of temporary files. Still need to connect compilation to flag.
This commit is contained in:
parent
74dd365a56
commit
d195f22522
@ -127,9 +127,10 @@ class Build
|
||||
formula.update_head_version
|
||||
|
||||
formula.brew(
|
||||
fetch: false,
|
||||
keep_tmp: args.keep_tmp?,
|
||||
interactive: args.interactive?,
|
||||
fetch: false,
|
||||
keep_tmp: args.keep_tmp?,
|
||||
debug_symbols: args.debug_symbols?,
|
||||
interactive: args.interactive?,
|
||||
) do
|
||||
with_env(
|
||||
# For head builds, HOMEBREW_FORMULA_PREFIX should include the commit,
|
||||
|
||||
@ -87,6 +87,9 @@ module Homebrew
|
||||
sig { returns(T::Boolean) }
|
||||
def keep_tmp?; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def debug_symbols?; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def overwrite?; end
|
||||
|
||||
|
||||
@ -91,6 +91,11 @@ module Homebrew
|
||||
[:switch, "--keep-tmp", {
|
||||
description: "Retain the temporary files created during installation.",
|
||||
}],
|
||||
[:switch, "--debug-symbols", {
|
||||
depends_on: "--build-from-source",
|
||||
description: "Generates debugging symbols during build. Source will be in temporary directory " \
|
||||
"which is retained. (see --keep-tmp)",
|
||||
}],
|
||||
[:switch, "--build-bottle", {
|
||||
description: "Prepare the formula for eventual bottling during installation, skipping any " \
|
||||
"post-install steps.",
|
||||
@ -232,6 +237,7 @@ module Homebrew
|
||||
git: args.git?,
|
||||
interactive: args.interactive?,
|
||||
keep_tmp: args.keep_tmp?,
|
||||
debug_symbols: args.debug_symbols?,
|
||||
force: args.force?,
|
||||
overwrite: args.overwrite?,
|
||||
debug: args.debug?,
|
||||
@ -247,6 +253,7 @@ module Homebrew
|
||||
build_from_source_formulae: args.build_from_source_formulae,
|
||||
interactive: args.interactive?,
|
||||
keep_tmp: args.keep_tmp?,
|
||||
debug_symbols: args.debug_symbols?,
|
||||
force: args.force?,
|
||||
debug: args.debug?,
|
||||
quiet: args.quiet?,
|
||||
|
||||
@ -57,6 +57,11 @@ module Homebrew
|
||||
[:switch, "--keep-tmp", {
|
||||
description: "Retain the temporary files created during installation.",
|
||||
}],
|
||||
[:switch, "--debug-symbols", {
|
||||
depends_on: "--build-from-source",
|
||||
description: "Generates debugging symbols during build. Source will be in temporary directory " \
|
||||
"which is retained. (see --keep-tmp)",
|
||||
}],
|
||||
[:switch, "--display-times", {
|
||||
env: :display_install_times,
|
||||
description: "Print install times for each formula at the end of the run.",
|
||||
@ -115,6 +120,7 @@ module Homebrew
|
||||
build_from_source_formulae: args.build_from_source_formulae,
|
||||
interactive: args.interactive?,
|
||||
keep_tmp: args.keep_tmp?,
|
||||
debug_symbols: args.debug_symbols?,
|
||||
force: args.force?,
|
||||
debug: args.debug?,
|
||||
quiet: args.quiet?,
|
||||
@ -132,6 +138,7 @@ module Homebrew
|
||||
build_from_source_formulae: args.build_from_source_formulae,
|
||||
interactive: args.interactive?,
|
||||
keep_tmp: args.keep_tmp?,
|
||||
debug_symbols: args.debug_symbols?,
|
||||
force: args.force?,
|
||||
debug: args.debug?,
|
||||
quiet: args.quiet?,
|
||||
|
||||
@ -68,6 +68,11 @@ module Homebrew
|
||||
[:switch, "--keep-tmp", {
|
||||
description: "Retain the temporary files created during installation.",
|
||||
}],
|
||||
[:switch, "--debug-symbols", {
|
||||
depends_on: "--build-from-source",
|
||||
description: "Generates debugging symbols during build. Source will be in temporary directory " \
|
||||
"which is retained. (see --keep-tmp)",
|
||||
}],
|
||||
[:switch, "--display-times", {
|
||||
env: :display_install_times,
|
||||
description: "Print install times for each package at the end of the run.",
|
||||
@ -185,6 +190,7 @@ module Homebrew
|
||||
build_from_source_formulae: args.build_from_source_formulae,
|
||||
interactive: args.interactive?,
|
||||
keep_tmp: args.keep_tmp?,
|
||||
debug_symbols: args.debug_symbols?,
|
||||
force: args.force?,
|
||||
debug: args.debug?,
|
||||
quiet: args.quiet?,
|
||||
@ -200,6 +206,7 @@ module Homebrew
|
||||
build_from_source_formulae: args.build_from_source_formulae,
|
||||
interactive: args.interactive?,
|
||||
keep_tmp: args.keep_tmp?,
|
||||
debug_symbols: args.debug_symbols?,
|
||||
force: args.force?,
|
||||
debug: args.debug?,
|
||||
quiet: args.quiet?,
|
||||
|
||||
@ -315,6 +315,9 @@ module SharedEnvExtension
|
||||
sig { void }
|
||||
def permit_arch_flags; end
|
||||
|
||||
sig { void }
|
||||
def debug_symbols; end
|
||||
|
||||
# @private
|
||||
sig { params(cc: T.any(Symbol, String)).returns(T::Boolean) }
|
||||
def compiler_any_clang?(cc = compiler)
|
||||
|
||||
@ -67,7 +67,7 @@ class Keg
|
||||
binary_executable_or_library_files.each do |file|
|
||||
odebug "Extracting symbols #{file}"
|
||||
|
||||
result = system_command("dsymutil", args: [file])
|
||||
result = system_command("dsymutil", args: [file], print_stderr: false)
|
||||
next if result.success?
|
||||
|
||||
# If it fails again, error out
|
||||
|
||||
@ -1273,11 +1273,11 @@ class Formula
|
||||
# Yields |self,staging| with current working directory set to the uncompressed tarball
|
||||
# where staging is a {Mktemp} staging context.
|
||||
# @private
|
||||
def brew(fetch: true, keep_tmp: false, interactive: false)
|
||||
def brew(fetch: true, keep_tmp: false, debug_symbols: false, interactive: false)
|
||||
@prefix_returns_versioned_prefix = true
|
||||
active_spec.fetch if fetch
|
||||
stage(interactive: interactive) do |staging|
|
||||
staging.retain! if keep_tmp
|
||||
staging.retain! if keep_tmp || debug_symbols
|
||||
|
||||
prepare_patches
|
||||
fetch_patches if fetch
|
||||
|
||||
@ -59,6 +59,7 @@ class FormulaInstaller
|
||||
git: false,
|
||||
interactive: false,
|
||||
keep_tmp: false,
|
||||
debug_symbols: false,
|
||||
cc: nil,
|
||||
options: Options.new,
|
||||
force: false,
|
||||
@ -72,8 +73,7 @@ class FormulaInstaller
|
||||
@force = force
|
||||
@overwrite = overwrite
|
||||
@keep_tmp = keep_tmp
|
||||
# Just for this proof of concept
|
||||
@debug_symbols = keep_tmp
|
||||
@debug_symbols = debug_symbols
|
||||
@link_keg = !formula.keg_only? || link_keg
|
||||
@show_header = show_header
|
||||
@ignore_deps = ignore_deps
|
||||
@ -691,6 +691,7 @@ class FormulaInstaller
|
||||
include_test_formulae: @include_test_formulae,
|
||||
build_from_source_formulae: @build_from_source_formulae,
|
||||
keep_tmp: keep_tmp?,
|
||||
debug_symbols: debug_symbols?,
|
||||
force: force?,
|
||||
debug: debug?,
|
||||
quiet: quiet?,
|
||||
@ -744,6 +745,7 @@ class FormulaInstaller
|
||||
include_test_formulae: @include_test_formulae,
|
||||
build_from_source_formulae: @build_from_source_formulae,
|
||||
keep_tmp: keep_tmp?,
|
||||
debug_symbols: debug_symbols?,
|
||||
force: force?,
|
||||
debug: debug?,
|
||||
quiet: quiet?,
|
||||
@ -877,6 +879,9 @@ class FormulaInstaller
|
||||
args << "--debug" if debug?
|
||||
args << "--cc=#{@cc}" if @cc
|
||||
args << "--keep-tmp" if keep_tmp?
|
||||
args << "--debug-symbols" if debug_symbols?
|
||||
# Avoids dependecy error on flag
|
||||
args << "--build-from-source" if build_from_source? && debug_symbols?
|
||||
|
||||
if @env.present?
|
||||
args << "--env=#{@env}"
|
||||
|
||||
@ -269,6 +269,7 @@ module Homebrew
|
||||
git: false,
|
||||
interactive: false,
|
||||
keep_tmp: false,
|
||||
debug_symbols: false,
|
||||
force: false,
|
||||
overwrite: false,
|
||||
debug: false,
|
||||
@ -293,6 +294,7 @@ module Homebrew
|
||||
git: git,
|
||||
interactive: interactive,
|
||||
keep_tmp: keep_tmp,
|
||||
debug_symbols: debug_symbols,
|
||||
force: force,
|
||||
overwrite: overwrite,
|
||||
debug: debug,
|
||||
|
||||
@ -16,6 +16,7 @@ module Homebrew
|
||||
build_from_source_formulae: [],
|
||||
interactive: false,
|
||||
keep_tmp: false,
|
||||
debug_symbols: false,
|
||||
force: false,
|
||||
debug: false,
|
||||
quiet: false,
|
||||
@ -48,6 +49,7 @@ module Homebrew
|
||||
git: git,
|
||||
interactive: interactive,
|
||||
keep_tmp: keep_tmp,
|
||||
debug_symbols: debug_symbols,
|
||||
force: force,
|
||||
debug: debug,
|
||||
quiet: quiet,
|
||||
|
||||
@ -24,6 +24,7 @@ module Homebrew
|
||||
build_from_source_formulae: [],
|
||||
interactive: false,
|
||||
keep_tmp: false,
|
||||
debug_symbols: false,
|
||||
force: false,
|
||||
debug: false,
|
||||
quiet: false,
|
||||
@ -61,6 +62,7 @@ module Homebrew
|
||||
build_from_source_formulae: build_from_source_formulae,
|
||||
interactive: interactive,
|
||||
keep_tmp: keep_tmp,
|
||||
debug_symbols: debug_symbols,
|
||||
force: force,
|
||||
debug: debug,
|
||||
quiet: quiet,
|
||||
@ -128,6 +130,7 @@ module Homebrew
|
||||
build_from_source_formulae: [],
|
||||
interactive: false,
|
||||
keep_tmp: false,
|
||||
debug_symbols: false,
|
||||
force: false,
|
||||
debug: false,
|
||||
quiet: false,
|
||||
@ -161,6 +164,7 @@ module Homebrew
|
||||
build_from_source_formulae: build_from_source_formulae,
|
||||
interactive: interactive,
|
||||
keep_tmp: keep_tmp,
|
||||
debug_symbols: debug_symbols,
|
||||
force: force,
|
||||
debug: debug,
|
||||
quiet: quiet,
|
||||
@ -254,6 +258,7 @@ module Homebrew
|
||||
build_from_source_formulae: [],
|
||||
interactive: false,
|
||||
keep_tmp: false,
|
||||
debug_symbols: false,
|
||||
force: false,
|
||||
debug: false,
|
||||
quiet: false,
|
||||
@ -339,6 +344,7 @@ module Homebrew
|
||||
build_from_source_formulae: build_from_source_formulae,
|
||||
interactive: interactive,
|
||||
keep_tmp: keep_tmp,
|
||||
debug_symbols: debug_symbols,
|
||||
force: force,
|
||||
debug: debug,
|
||||
quiet: quiet,
|
||||
@ -407,6 +413,7 @@ module Homebrew
|
||||
build_from_source_formulae: build_from_source_formulae + [formula.full_name],
|
||||
interactive: interactive,
|
||||
keep_tmp: keep_tmp,
|
||||
debug_symbols: debug_symbols,
|
||||
force: force,
|
||||
debug: debug,
|
||||
quiet: quiet,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user