[cmake-developers] install bug on windows

Eric Noulard eric.noulard at gmail.com
Mon Sep 20 12:54:51 EDT 2010


2010/9/20 Bill Hoffman <bill.hoffman at kitware.com>:
>
> Eric,
>
> This commit is breaking windows installs:
>
> commit 6a521f8604ee4e6a757109e731a36fdc5575f6c8
> Author: Eric NOULARD <eric.noulard at gmail.com>
> Date:   Mon Aug 23 17:38:33 2010 +0200
>
>    CPack   Enable better handling of absolute installed files
>
>    The idea of the patch is to let the install generator define
>    CPACK_ABSOLUTE_INSTALL_FILES then when CMake is installing
>    project he will concatenate the list of files and give
>    it to specific CPack Generator by defining CPACK_ABSOLUTE_INSTALL_FILES
>    to be the list of ALL files that were installed using absolute
> destination.
>    An example of use has been applied to RPM generator which now
>    tries to automatically build a relocatable package.
>
> It creates a cmake_install file like this:
>
> IF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL
> "Unspecified")
>  list(APPEND CPACK_ABSOLUTE_DESTINATION_FILES
>   "/usr/local\CTest.c")
> FILE(INSTALL DESTINATION "/usr/local" TYPE FILE FILES
> "C:/Users/hoffman/Max/tm/src/CTest.c")
> ENDIF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL
> "Unspecified")
>
> Which causes this error:
>
> 1>  -- Install configuration: "Debug"
> 1>  CMake Warning (dev) at cmake_install.cmake:31 (list):
> 1>    Syntax error in cmake code at
> 1>
> 1>      C:/work-c/T/CMake/cmake_install.cmake:32
> 1>
> 1>    when parsing string
> 1>
> 1>      /usr/local\CTest.conf
>
>
> Why do you convert the / to an output path?

I do not remember ... :-(

I'm looking into this just now, give half an hour and I'll come
with some answer.

> 6a521f86 (Eric NOULARD       2010-08-23 17:38:33 +0200  71)    os << dest <<
> cmSystemTools::ConvertToOutputPath("/");
> 6a521f86 (Eric NOULARD       2010-08-23 17:38:33 +0200  72)    if (rename &&
> *rename)
>
> All paths in the cmake_install file should be cmake paths as cmake is going
> to consume them.

Off course, you are right.

> All that said, I am not sure why no test failed from this ????

May be because there is no test with absolutely installed file
in the test suite?

I'll have a look too.
-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org


More information about the cmake-developers mailing list