[cmake-developers] install bug on windows

Bill Hoffman bill.hoffman at kitware.com
Mon Sep 20 11:32:49 EDT 2010


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?

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.


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

-Bill




More information about the cmake-developers mailing list