On 13/01/14 15:34, Brad King wrote:
> This hunk:
>
> -if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
>
> removes the guard that avoids doing all the default-computing
> logic when there is already a value. In this hunk:
>
> +set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}" CACHE PATH "object code
> libraries (${_LIBDIR_DEFAULT})" FORCE)
>
> one should not FORCE the cache entry. Otherwise there is no way
> for the local users to change the setting for their build trees.
>
> Both of the above are incorrect and seem unrelated to the proposed
> change.
The problem comes when you change the CMAKE_INSTALL_PREFIX:
When you run cmake (with no -DCMAKE_INSTALL_PREFIX=... argument),
CMAKE_INSTALL_PREFIX is set to /usr/local, and the CMAKE_INSTALL_LIBDIR
is set to lib.
If later you want to change it to CMAKE_INSTALL_PREFIX to /usr, without
the removing the if(), the code is not called, and without the "FORCE",
the cached value is not updated.
But I also just realized that the variable is "CACHE PATH" for some
reason I thought it was "CACHE INTERNAL", that means that the user can
change it, and therefore the force is not a good idea.
How do you suggest to handle this?
> In this hunk:
>
> + if (${CMAKE_INSTALL_PREFIX} MATCHES "^/usr/?$")
>
> the left side should be quoted or just the plain variable name
> to ensure it works when the prefix value is an empty string.
Fixed in the topic.
Thanks,
Daniele
--
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