ninja -t clean has errors trying to clean Mac official build |
|||
Issue descriptionninja -t clean has errors trying to clean Mac official build After building 'chrome' target in an official Mac build with following gn args: is_official_build = true is_chrome_branded = true is_debug = false And then running: ninja -C out/gn-official -t clean The following errors are seen: ninja: error: remove(dump_syms.dSYM): Directory not empty ninja: error: remove(Google Chrome.app/Contents/Resources/com.google.Chrome.manifest): Directory not empty ninja: error: remove(Google Chrome Framework.framework/Resources/app_mode_loader.app): Directory not empty ninja: error: remove(Google Chrome Helper.dSYM): Directory not empty ninja: error: remove(Google Chrome Framework.framework/Frameworks/KeystoneRegistration.framework): Directory not empty ninja: error: remove(app_mode_loader.dSYM): Directory not empty ninja: error: remove(infoplist_strings_tool.dSYM): Directory not empty ninja: error: remove(proto_zero_plugin.dSYM): Directory not empty ninja: error: remove(tls_edit.dSYM): Directory not empty ninja: error: remove(character_data_generator.dSYM): Directory not empty ninja: error: remove(PepperFlash/PepperFlashPlayer.plugin): Directory not empty ninja: error: remove(bro.dSYM): Directory not empty ninja: error: remove(crashpad_handler.dSYM): Directory not empty ninja: error: remove(flatc.dSYM): Directory not empty ninja: error: remove(protoc.dSYM): Directory not empty ninja: error: remove(widevinecdmadapter.plugin.dSYM): Directory not empty ninja: error: remove(genmacro.dSYM): Directory not empty ninja: error: remove(genmodule.dSYM): Directory not empty ninja: error: remove(genperf.dSYM): Directory not empty ninja: error: remove(genstring.dSYM): Directory not empty ninja: error: remove(genversion.dSYM): Directory not empty ninja: error: remove(re2c.dSYM): Directory not empty ninja: error: remove(yasm.dSYM): Directory not empty ninja: error: remove(mkpeephole.dSYM): Directory not empty ninja: error: remove(mksnapshot.dSYM): Directory not empty Seems ninja doesn't know how to delete some non-empty dirs.
,
Nov 29 2016
mac triage: help us, thakis@, you're our only hope :)
,
Nov 29 2016
That happens for non-official builds too. -t clean removes files that are listed as outputs in the ninja files. If a build edge produces an output that's not listed as output, -t clean won't delete it. If one such file ends up in a directory that's a build output, ninja tries to delete that dir, but since it's non-empty that fails (arguably as it should: ninja shouldn't delete files it knows nothing about). I think this is harmless.
,
Nov 29 2016
Shouldn't all build edges list all outputs they produce? (i.e. the bug being about the outputs not listed as opposed to the ninja tools itself)
,
Nov 29 2016
Ideally yes. But for example for dSYM files you'd have to copy the knowledge which files dsymutil creates out of dysmutil and list them somewhere, and other tools have the equivalent issue. If you want to work on this, feel free, it's kind of useful. But it's also a larger project. |
|||
►
Sign in to add a comment |
|||
Comment 1 by ajha@chromium.org
, Nov 24 2016