[cmake-developers] Adding the OpenRAVE library module

Rosen Diankov rosen.diankov at gmail.com
Fri Apr 15 09:48:07 EDT 2011


>  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