diff --git a/src/recipe.cr b/src/recipe.cr index 1ca558c..69922aa 100644 --- a/src/recipe.cr +++ b/src/recipe.cr @@ -299,21 +299,22 @@ class Package::Recipe private def do_strip @context.info "Stripping binaries" - @context.prefixes.each do |prefix| - directory = "#{fake_root_directory}/#{prefix}/lib" + FileUtils.find_files(fake_root_directory) do |path| + file_output = `file #{path}` + strip_opt = nil : String? - unless Dir.exists? directory - next + if file_output.match /ELF.*executable.*not stripped/ + strip_opt = "--strip-all" + elsif file_output.match /ELF.*shared object.*not stripped/ + strip_opt = "--strip-unneeded" + elsif file_output.match /current ar archive/ + strip_opt = "--strip-debug" end - FileUtils.find_files(directory) do |path| - file_output = `file #{path}` + if strip_opt + @context.detail "stripping #{path}" - if file_output.match /not stripped/ - @context.detail "stripping #{path}" - - Process.run "strip", [path] - end + Process.run "strip", [strip_opt, path] end end end