[cmake-developers] Adding the OpenRAVE library module

Rosen Diankov rosen.diankov at gmail.com
Fri Apr 15 10:06:27 EDT 2011


After thinking about it, it really doesn't make sense for static
libraries to be part of the exports.
rosen,

2011/4/15 Rosen Diankov <rosen.diankov at gmail.com>:
>>  set_property(TARGET mysharedlib PROPERTY LINK_INTERFACE_LIBRARIES "")
>
> but wouldn't that also affect how the libraries are linked? for
> example, libopenrave target links to boost. and any module using
> libopenrave should still use boost. however the static libraries
> libopenrave links to like crlibm don't need to be handled this way.
> From what i understood in the documentation, I would have to set
> LINK_INTERFACE_LIBRARIES to all the non-static install libraries
> right?
>
> for the registry, the name could just be the version string right?
>
> so i would have
>
> "0.3.0" = "C:\Program Files\OpenRAVE-0.3"
>
> where the configuration file is in:
>
> C:\Program Files\OpenRAVE-0.3\lib\cmake\openrave-0.3
>
> thanks!
> rosen,
>
> 2011/4/15 Brad King <brad.king at kitware.com>:
>> On 04/15/2011 08:49 AM, Rosen Diankov wrote:
>>> thanks for the answers! for now i'm not sure if i want to spend time
>>> tweaking the LINK_INTERFACE_LIBRARIES property, it's getting a little
>>> too complicated just to get exports working right.
>>
>> It's probably just one line right after add_library(mysharedlib):
>>
>>  set_property(TARGET mysharedlib PROPERTY LINK_INTERFACE_LIBRARIES "")
>>
>> Exporting targets is really the way to go.  It is much nicer for apps.
>>
>>> since we're not doing any find_library(OpenRAVE) calls, does that mean
>>> it is ok to use OpenRAVE_LIBRARY in my current setup? What would you
>>> recommend?
>>
>> The config file doesn't actually have to set a variable at all for any
>> specific library if it uses imported targets.  The application can
>> just name the library.  If you have several libraries that are typically
>> used together then it might be convenient to list them in a variable
>> like OpenRAVE_LIBRARIES.
>>
>>> As for the registry, I just checked my windows and i have this key
>>> HKEY_LOCAL_MACHINE\\Software\\Kitware\\CMake 2.8.4
>>
>> This is created by the installer of a specific CMake version and is
>> related to CMake itself.
>>
>>> however the cmake documentation says to put package specific stuff into:
>>>
>>> HKEY_LOCAL_MACHINE\\Software\\Kitware\\CMake\\Packages\\OpenRAVE
>>>
>>> where version is ignored. Is this correct?
>>
>> Yes.  Your package does not care what version of cmake will be
>> looking for it.
>>
>>> i am just be setting the prefix to be read as the default key right?
>>
>> It should be a named value under the key.  The name of the value is
>> arbitrary.  It is up to you to ensure that it doesn't conflict if
>> multiple versions of your package are installed, so choose a name
>> accordingly.  It could even be something fancy like a hash of the
>> install destination path, but that requires some non-trivial installer
>> logic.
>>
>> -Brad
>>
>



More information about the cmake-developers mailing list