This becomes tedious if you have, say several hundred declares ;) If  
you use a framework, you can use a single constant defined globally as:

     "@executable_path/../Frameworks/LibName.framework/LibName"

Then things will "just work" regardless if the framework is installed  
in the system domain, user domain (for debug builds), or in the  
application bundle (for release builds). I add checks to release  
builds to ensure the framework has actually been copied to the bundle  
however, to ensure I don't distribute a broken standalone app.

To get slightly back on topic, I'd recommend declares over a plugin  
whenever possible. Declares tend to be much easier to maintain and  
extend over time, especially if the library binaries are readily  
available.

Frank.
<http://developer.chaoticbox.com/>

On 30-Jul-07, at 6:19 PM, Dave Addey wrote:

> I do this in a dual way - using one location for debug, and another  
> for the
> built app:
>
>   #if DebugBuild
>     Const kHIDLib = "@executable_path/../../../libHIDUtilities.dylib"
>   #else
>     Const kHIDLib = "@executable_path/../Frameworks/ 
> libHIDUtilities.dylib"
>   #endif
>
>     Declare Function HIDGetFirstDeviceElement Lib kHIDLib 
> (inDevicePtr as
> integer, inElementTypeMask as integer) as integer
>
> When I have built the final app, I copy the dylib inside the bundle  
> and the
> non-debugbuild line above finds the dylib.  When I am running in  
> debug, the
> code above looks for the same dylib, *alongside* the debug app.   
> This means
> I don't have to build the app to test every time, and can still run  
> in RB's
> debug mode.
>
> Dave.
>
>> From: Norman Palardy <[EMAIL PROTECTED]>
>> Reply-To: REALbasic Plugins <realbasic- 
>> [EMAIL PROTECTED]>
>> Date: Mon, 30 Jul 2007 11:28:30 -0600
>> To: REALbasic Plugins <[email protected]>
>> Subject: Re: Incorporating existing C/C++ libraries into an RB  
>> Project. . .?
>>
>>
>> On 30-Jul-07, at 11:16 AM, Michael Williams wrote:
>>
>>> Gotcha,
>>>
>>> So you're recommending going the "dylib" route as opposed to the
>>> plugin route?  What kind of recommendations have you for actually
>>> distributing the "dylib"?  Someone mentioned actually placing the
>>> "dylib" in the RB package, I'm not terribly familiar with that
>>> process, nor how to reference a self-contained library.
>>>
>>> Michael
>>
>>
>> you can use a "special" name for a dylib in OS X that permits you to
>> locate it relative to the actual executable
>>
>> instead of
>>
>> Soft declare sub/function name lib "lib name" ....
>>
>> use
>>          Soft Declare Sub/function name Lib "@executable_path/../
>> Frameworks/lib name" ....
>>
>> and then in the OS X version you copy your dylib into the FrameWorks
>> folder in the package






_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to