[Pharo-project] Compiling and using the FT2Plugin
alain.plantec at yahoo.com
Sat Jun 4 04:34:48 EDT 2011
#configureFT2Plugin: is the place for #addExternalLibraries: but it only
works for FT2Plugin compiled as internal plugin.
To compile the FT2Plugin as external, you also have to use
#addExternalLibraries: #('freetype') but not sent from #configureFT2Plugin:.
It is because of cmake and where #configurePlugin:with: is sent from the
in the #generate method, #configurePlugin:with: is sent **BEFORE** the
'add_library' cmd production for cmake.
it is ok for internal plugin. but, if the plugin is external, then,
has to be invoked **AFTER** the 'add_library' cmd production for cmake.
I've implemented a #postConfigurePlugin:with:. same logic as
#configurePlugin:with: but sent from
the generate method after the 'add_library' cmd production.
vmGen config configurePlugin: plugin with: self.
ifTrue: [self cmd: 'add_library' params: name , ' STATIC
ifFalse: [self cmd: 'add_library' params: name , ' SHARED
vmGen config postConfigurePlugin: plugin with: self. "added post
I will open an issue and put all my stuffs there.
Le 02/06/2011 13:16, Igor Stasenko a écrit :
> Add following to
> CogFamilyUnixConfig>>configureFT2Plugin: gen
> "extra rules for FT2Plugin"
> | generator |
> generator := maker isExternal ifTrue: [ gen ]
> ifFalse: [ gen vmGenerator ].
> 'freetype' "freetype library"
> This will force maker to link against freetype library.
> (actually i think better would be to override the #addExternalLibraries:
> in CMakePluginGenerator
> which will add libraries to vm generator, if plugin is internal.
> So in configureXYZPlugin: , you can just write:
> gen addExternalLibraries: #( .. )
> without testing if plugin is internal or external.
>> as a second step, I will come back to the compiling of FT2Plugin as an
>> external plugin.
>> 02/06/2011 02:59, Schwab,Wilhelm K a écrit :
>>> Sig's answer leaves me doubting my suspicion, but I will toss it out
>>> anyway, and since you are building a vm, you can pretty easily run through
>>> the exercise.
>>> First, the question: what (full path) library is the vm trying to load?
>>> It really is a plugin, so some of my more common concerns (extra slashes in
>>> the path, so.Name instead of libName.so, etc., go away - or do they??).
>>> Sadly, I don't see the code I want to give you on this machine. Maybe my
>>> laptop will have some friendly symlinks to the tweaked files. In short, I
>>> think that any time the (particularly linux) vm translates a number to to a
>>> name or a name to a path, and the subsequent load fails, it should say
>>> something somewhere about what it tried to open/load. I have used syslog()
>>> to good effect. It's nice because the logs rotate, giving some time for the
>>> user to look for it and yet not clog the drive with old news.
>>> Ok; I'll shut up and see if I can find some code for you :)
>>> From: pharo-project-bounces at lists.gforge.inria.fr
>>> [pharo-project-bounces at lists.gforge.inria.fr] On Behalf Of Alain Plantec
>>> [alain.plantec at yahoo.com]
>>> Sent: Wednesday, June 01, 2011 2:00 PM
>>> To: pharo-project at lists.gforge.inria.fr
>>> Subject: Re: [Pharo-project] Compiling and using the FT2Plugin
>>> Le 01/06/2011 19:46, Igor Stasenko a écrit :
>>>> On 1 June 2011 19:20, Alain Plantec<alain.plantec at yahoo.com> wrote:
>>>>> Hi all,
>>>>> I try to build my own vm (ubuntu 10.04, virtualbox)
>>>>> Thanks to the **excellent** Mariano blog, I can compile, it runs ok
>>>>> the FT2Plugin
>>>>> I always have the following error message while trying to load fonts:
>>>>> libFT2Plugin.so: cannot open shared object file: No such file or
>>>>> I guess that it is because the plugin is unable to load libfreetype.so.
>>>>> does someone know what I am missing ?
>>>> i know. ;)
>>>> i wanna add a correct settings for building this plugin on all
>>>> platforms. so we can ship a vm with this plugin by default.
>>>> But i haven't time to do it yet. So, if you find a solution how to do
>>>> it for unix, i will capture your knowledge in corresponding config(s)
>>> ahhhhh! thanks Igor
>>> I'm not so stupid, its a problem :)
>>> ok, I will try
More information about the Pharo-dev