RubyCocoa : EmbedRubyCocoa

Most recent edit on 2007-11-22 06:16:42 by LaurentSansonetti

Deletions:
dartrsit



Edited on 2007-11-15 14:19:28 by TrvivArric

Additions:
dartrsit



Edited on 2007-10-01 07:47:25 by LaurentSansonetti

Additions:
Distributing the RubyCocoa Framework
Distributing the Ruby Libraries and Gems
Distributing the Ruby Runtime Library


Deletions:
Distributing the Dependencies

Ruby Libraries and Gems





Edited on 2007-10-01 07:44:51 by LaurentSansonetti

Additions:

Ruby Libraries and Gems





Edited on 2007-10-01 07:43:16 by LaurentSansonetti

Additions:
standalonify won't embed the Ruby runtime library, libruby.1.dylib, but it's possible to do it, by following for example the steps below:
  • Explicitly link against your specific version of libruby.1.dylib, by drag-and-dropping it in your Xcode project. Making sure the library is also in the project directory may help.
  • Modify your target build so that the library will be copied inside your application bundle. An easy way is to add it to the already-existing Copy Bundle Resources phase. The library will therefore be copied in the Resources directory of your application bundle.
  • Add a new Run Script Build Phase that will call the install_name_tool program on your application binary, to force the link against your embedded version of libruby.1.dylib at runtime. Here is an example that uses /usr/bin/env ruby as its shell:
%%(ruby)
require 'pathname'
exec = File.join(ENV['TARGET_BUILD_DIR'], ENV['EXECUTABLE_PATH'])
old = Pathname.new('/usr/lib/libruby.1.dylib').realpath
new = '@executable_path/../Resources/libruby.1.dylib'
system("install_name_tool -change '#{old}' '#{new}' '#{exec}'") or exit 1




Edited on 2007-05-21 14:13:58 by LaurentSansonetti

Additions:
RubyCocoa ships with a tool called standaloneify.rb, in framework/tool, that will embed the Ruby libraries and gems your application depends on. Usage is simple:

Deletions:
RubyCocoa ships with a tool called standaloneify.rb, in framework/tool, that will embed everything your application depends on. Usage is simple:



Edited on 2007-05-21 12:58:58 by LaurentSansonetti

Additions:
As you can imagine, in order to address this you will have to customize the build of your application target to explicitly copy the required Ruby files and libraries inside the Resources folder of your application. And you could also have to do more complicated stuff to handle the gems.
RubyCocoa ships with a tool called standaloneify.rb, in framework/tool, that will embed everything your application depends on. Usage is simple:
$ ruby standalonify.rb -d MyStandaloneProg.app MyBuiltinProg.app


Deletions:
Also, your application could depend on a special version of the Ruby interpreter that might not be present in the deployment environment.
As you can imagine in order to address this you will have to customize the build of your application target to explicitly copy the required Ruby files and libraries inside the Resources folder of your application.
Another way to do this is to use the standaloneify.rb tool, that will embed everything needed inside your application (your Ruby interpreter, the libraries and gems).




Edited on 2007-05-21 11:42:28 by LaurentSansonetti

Additions:
Distributing the Dependencies


Deletions:
Dependencies




Edited on 2007-05-21 10:12:56 by LaurentSansonetti

Additions:
Dependencies
If your application uses RubyGems, you might also want to distribute it as well as the necessary gems. You application may also depend on a third-party Ruby library.
Also, your application could depend on a special version of the Ruby interpreter that might not be present in the deployment environment.
As you can imagine in order to address this you will have to customize the build of your application target to explicitly copy the required Ruby files and libraries inside the Resources folder of your application.
Another way to do this is to use the standaloneify.rb tool, that will embed everything needed inside your application (your Ruby interpreter, the libraries and gems).


Deletions:
If your application uses RubyGems, you might also want to distribute it as well as the necessary gems. explain how
standaloneify.rb can pull the ruby/gems and the rubycocoa framework (could make this an Xcode run script build phase)




Edited on 2007-05-21 10:01:50 by LaurentSansonetti

Additions:
If your application uses RubyGems, you might also want to distribute it as well as the necessary gems. explain how

Deletions:
If your application uses RubyGems, you might also want to distribute the gems with it. explain how



Edited on 2007-05-21 09:56:03 by LaurentSansonetti

Additions:
~- Add a new Copy Files Phase to the appropriate target.
  • Set the destination to Frameworks.
  • Drag RubyCocoa.framework into the new copy files group.

    Deletions:
    ~- Add a new ((Copy Files Phase)) to the appropriate target.
  • Set the destination to ((Frameworks)).
  • Drag RubyCocoa.framework into the new copy files group.



    Edited on 2007-05-21 09:53:55 by LaurentSansonetti

    Additions:
    If your application uses RubyGems, you might also want to distribute the gems with it. explain how
standaloneify.rb can pull the ruby/gems and the rubycocoa framework (could make this an Xcode run script build phase)


Deletions:
standaloneify.rb can pull in ruby/gems and the rubycocoa framework (could make this an Xcode run script build phase)



Edited on 2007-05-21 09:36:02 by LaurentSansonetti

Additions:
You might want to distribute RubyCocoa with your application to not force your users to systematically install RubyCocoa on their machine in order to use your application.
RubyCocoa by default builds as an embeddable framework. It means that you can simply copy it inside your application bundle. You can do this fairly easily:
  • Add a new ((Copy Files Phase)) to the appropriate target.
  • Set the destination to ((Frameworks)).
  • Drag RubyCocoa.framework into the new copy files group.

    Deletions:
    To copy the RubyCocoa framework into your application bundle from Xcode; add a copy files build phase to the appropriate target, set the destination to 'Frameworks' and drag the RubyCocoa framework into the new copy files group.



    Edited on 2007-05-19 22:57:33 by JeanPierre [minor cleanup]

    Additions:
    To copy the RubyCocoa framework into your application bundle from Xcode; add a copy files build phase to the appropriate target, set the destination to 'Frameworks' and drag the RubyCocoa framework into the new copy files group.

    Deletions:
    from xcode to copy the RubyCocoa framework into your application bundle, add a copy files build phase to the target, set the destination to 'Frameworks', drag the RubyCocoa framework into the new copy files group



    Oldest known version of this page was edited on 2007-05-18 20:55:57 by JeanPierre [placeholder text to get things started]
    Page view:
    standaloneify.rb can pull in ruby/gems and the rubycocoa framework (could make this an Xcode run script build phase)

from xcode to copy the RubyCocoa framework into your application bundle, add a copy files build phase to the target, set the destination to 'Frameworks', drag the RubyCocoa framework into the new copy files group
© 2001-2007 The RubyCocoa Project. Powered by Wikka Wakka Wiki 1.1.6.3
SourceForge.net Logo
Page was generated in 2.5907 seconds