templates/Rakefile in newcocoa-0.0.1 vs templates/Rakefile in newcocoa-0.0.2

- old
+ new

@@ -10,10 +10,11 @@ APPNAME = "<%=appname%>" TARGET = "#{APPNAME}.app" VERSION = "rev#{`svn info`[/Revision: (\d+)/, 1]}" RESOURCES = ['*.rb', '*.lproj', 'Credits.*', '*.icns'] PKGINC = [TARGET, 'README', 'html', 'client'] +LOCALENIB = ['Japanese.lproj/Main.nib'] PUBLISH = 'yourname@yourhost:path' BUNDLEID = "rubyapp.#{APPNAME}" CLEAN.include ['**/.*.sw?', '*.dmg', TARGET, 'image', 'a.out'] @@ -21,11 +22,11 @@ # Tasks task :default => [:test] desc 'Create Application Budle and Run it.' task :test => [TARGET] do - sh %{open #{TARGET}} + sh %{open '#{TARGET}'} end desc 'Create .dmg file for Publish' task :package => [:clean, 'pkg', TARGET] do name = "#{APPNAME}.#{VERSION}" @@ -55,27 +56,39 @@ scp CHANGES #{PUBLISH}/pkg scp -r html/* #{PUBLISH} } end +desc 'Make Localized nib from English.lproj and Lang.lproj/nib.strings' +rule(/.nib$/ => [proc {|tn| File.dirname(tn) + '/nib.strings' }]) do |t| + p t.name + lproj = File.dirname(t.name) + target = File.basename(t.name) + sh %{ + rm -rf #{t.name} + nibtool -d #{lproj}/nib.strings -w #{t.name} English.lproj/#{target} + } +end + # File tasks -file TARGET => [:clean, APPNAME] do +desc 'Make executable Application Bundle' +file TARGET => [:clean, APPNAME] + LOCALENIB do sh %{ mkdir -p "#{APPNAME}.app/Contents/MacOS" mkdir "#{APPNAME}.app/Contents/Resources" cp -rp #{RESOURCES.join(' ')} "#{APPNAME}.app/Contents/Resources" - cp #{APPNAME} "#{APPNAME}.app/Contents/MacOS" + cp '#{APPNAME}' "#{APPNAME}.app/Contents/MacOS" echo -n "APPL????" > "#{APPNAME}.app/Contents/PkgInfo" echo -n #{VERSION} > "#{APPNAME}.app/Contents/Resources/VERSION" } File.open("#{APPNAME}.app/Contents/Info.plist", "w") do |f| f.puts ERB.new(File.read("Info.plist.erb")).result end end file APPNAME => ['main.m'] do # Universal Binary - sh %{gcc -arch ppc -arch i386 -Wall -lobjc -framework RubyCocoa main.m -o #{APPNAME}} + sh %{gcc -arch ppc -arch i386 -Wall -lobjc -framework RubyCocoa main.m -o '#{APPNAME}'} end directory 'pkg'