Convert(
            this IObjCopyToolSettings settings,
            Bam.Core.StringArray commandLine)
        {
            var objCopy = (settings as Bam.Core.Settings).Module as ObjCopyModule;

            switch (settings.Mode)
            {
            case EObjCopyToolMode.OnlyKeepDebug:
                commandLine.Add(System.String.Format("--only-keep-debug {0} {1}",
                                                     objCopy.SourceModule.GeneratedPaths[objCopy.SourceKey].Parse(),
                                                     objCopy.GeneratedPaths[ObjCopyModule.Key].Parse()));
                break;

            case EObjCopyToolMode.AddGNUDebugLink:
                commandLine.Add(System.String.Format("--add-gnu-debuglink={0} {1}",
                                                     objCopy.GeneratedPaths[ObjCopyModule.Key].Parse(),
                                                     objCopy.SourceModule.GeneratedPaths[objCopy.SourceKey].Parse()));
                break;

            default:
                throw new Bam.Core.Exception("Unrecognized objcopy mode, {0}", settings.Mode.ToString());
            }
            if (settings.Verbose)
            {
                commandLine.Add("-v");
            }
        }
 Defaults(
     this IObjCopyToolSettings settings,
     Bam.Core.Module module)
 {
     settings.Mode    = EObjCopyToolMode.NA;
     settings.Verbose = true;
 }