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