mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-08-25 21:17:03 +00:00
Building Cappuccino apps with rake now automatically nib2cibs all .nibs and .xibs in the project.
Reviewed by me.
This commit is contained in:
+1
-1
@@ -14,7 +14,7 @@ spec = Gem::Specification.new do |s|
|
||||
s.platform = Gem::Platform::RUBY
|
||||
s.author = '280 North, Inc.'
|
||||
s.email = 'feedback @nospam@ 280north.com'
|
||||
s.homepage = 'cappuccino.org'
|
||||
s.homepage = 'http://cappuccino.org/'
|
||||
s.summary = "Objective-J extensions to Rake."
|
||||
s.name = 'objective-j'
|
||||
s.version = "0.7.0"
|
||||
|
||||
@@ -56,3 +56,51 @@ def file_d(*args, &block)
|
||||
|
||||
file fileTask.name => fileDirectory
|
||||
end
|
||||
|
||||
def copy_resources(files, destination, &block)
|
||||
|
||||
copied_resources = []
|
||||
|
||||
files.each do |resource|
|
||||
baselength = File.basename(resource).length
|
||||
|
||||
if File.directory? resource
|
||||
FileList[resource + '/**/*'].each do |subresource|
|
||||
if File.file? subresource
|
||||
|
||||
copied_resource = File.join(destination, subresource[(resource.length - baselength) .. -1])
|
||||
|
||||
custom_resource = true
|
||||
custom_resource = block.call(subresource, copied_resource) if block_given?
|
||||
|
||||
if custom_resource == true
|
||||
file_d copied_resource => [subresource] do
|
||||
cp_r(subresource, copied_resource)
|
||||
end
|
||||
|
||||
copied_resources << copied_resource
|
||||
elsif custom_resource
|
||||
copied_resources << custom_resource
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
copied_resource = File.join(destination, File.basename(resource))
|
||||
|
||||
custom_resource = true
|
||||
custom_resource = block.call(resource, copied_resource) if block_given?
|
||||
|
||||
if custom_resource == true
|
||||
file_d copied_resource => [resource] do
|
||||
cp_r(resource, copied_resource)
|
||||
end
|
||||
|
||||
copied_resources << copied_resource
|
||||
elsif custom_resource
|
||||
copied_resources << custom_resource
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return copied_resources
|
||||
end
|
||||
|
||||
@@ -189,6 +189,7 @@ module ObjectiveJ
|
||||
|
||||
required_attribute :summary
|
||||
required_attribute :identifier
|
||||
required_attribute :nib2cib_flags, []
|
||||
required_attribute :platforms, [Platform::ObjJ]
|
||||
required_attribute :type, Bundle::Type::Application
|
||||
|
||||
@@ -217,6 +218,7 @@ module ObjectiveJ
|
||||
# attribute_alias_singular :executable, :executables
|
||||
attribute_alias_singular :author, :authors
|
||||
attribute_alias_singular :flag, :flags
|
||||
attribute_alias_singular :nib2cib_flag, :nib2cib_flags
|
||||
attribute_alias_singular :platform, :platforms
|
||||
# attribute_alias_singular :require_path, :require_paths
|
||||
# attribute_alias_singular :test_file, :test_files
|
||||
@@ -367,20 +369,35 @@ module ObjectiveJ
|
||||
def define
|
||||
|
||||
validate
|
||||
|
||||
|
||||
resources_path = File.join(build_path, 'Resources')
|
||||
copied_resources = []
|
||||
|
||||
# create file tasks for copied resources
|
||||
resources.each do |resource|
|
||||
copied_resources = copy_resources resources, resources_path do |resource, copied_resource|
|
||||
extname = File.extname(copied_resource)
|
||||
|
||||
copied_resource = File.join(resources_path, File.basename(resource))
|
||||
if extname == '.xib' || extname == '.nib'
|
||||
copied_resource = File.join(File.dirname(copied_resource), File.basename(copied_resource, extname)) + '.cib'
|
||||
|
||||
file_d copied_resource => [resource] do
|
||||
cp_r(resource, resources_path)
|
||||
file_d copied_resource => [resource] do
|
||||
IO.popen("nib2cib #{resource} #{copied_resource} #{nib2cib_flags.join(' ') || ''}") do |nib2cib|
|
||||
nib2cib.sync = true
|
||||
|
||||
while str = nib2cib.gets
|
||||
puts str
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
copied_resource
|
||||
else
|
||||
extensionless = File.join(File.dirname(copied_resource), File.basename(copied_resource, extname))
|
||||
|
||||
if extname == '.cib' and (File.exists?(extensionless + '.xib') or File.exists?(extensionless + '.nib'))
|
||||
false
|
||||
else
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
copied_resources << copied_resource
|
||||
end
|
||||
|
||||
info_plist_path = build_path + '/Info.plist'
|
||||
|
||||
Reference in New Issue
Block a user