Alexander Neundorf wrote:

> All install variables which are at cmake time somewhere below
> CMAKE_INSTALL_PREFIX are treated as relative to CMAKE_INSTALL_PREFIX.
> This is what the @PAKCAGE_INIT@ macro together with the @PACKAGE_FOO_DIR@
> variables does.

Could your set_and_check macro be extended to warn in cases where a symlink 
is crossed?

eg:

File /lib64/cmake/foo/FooConfig.cmake
contains set(Foo_Bar_Dir "../../../lib/libfoobar.so")

set and check walks up the path and checks at each step if it is a symlink. 
When it is at lib64/ which is a symlink and there is another '..', emit a 
warning? Similarly when climbing back up the path (eg if lib in the example 
above is a symlink). That should at least warn no matter which way around it 
is, right? 

It's something that would need to be an option to cmsys::CollapseFullPath 
maybe. I'm still just brainstorming here really.

> Well, if you have a symlink, you don't know whether the symlink is the
> correct location or the target of the symlink is the correct destination.
>

If you cross a symlink while processing a relative path, then something must 
have gone wrong. It's at least worth a warning. Or am I missing something?

Thanks,

Steve.


--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Reply via email to