This is a followup to http://www.cmake.org/pipermail/cmake/2011-April/044095.html:
On 04/28/2011 01:51 PM, John R. Cary wrote: >/ This is in reference to />/ />/ iter.cary$ cmake --version />/ cmake version 2.8.3 />/ iter.cary$ uname -a />/ Linux iter.txcorp.com 2.6.29.4-167.fc11.x86_64 #1 SMP Wed May 27 />/ 17:27:08 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux />/ />/ />/ We have a situation where a package needs to be />/ rebuilt because some dependency is rebuilt. In />/ this case, trilinos needs rebuilding because it />/ depends on openmpi and the version of opempi gets />/ updated. />/ />/ Typically, these installations are in a common area, />/ but by different people. So one night Joe triggers />/ a build a trilinos. Then the next night a new version />/ of openmpi is available, so Mary triggers a build of />/ openmpi and then trilinos. />/ />/ In this situation, Mary's installation of trilinos />/ fails, because cmake's installation does not overwrite />/ some files: />/ />/ -- Installing: />/ /usr/local/contrib/trilinos-10.2.0-ser/include/Teuchos_DLLExportMacro.h />/ -- Up-to-date: />/ /usr/local/contrib/trilinos-10.2.0-ser/include/Teuchos_AbstractFactory.hpp />/ CMake Error at packages/teuchos/src/cmake_install.cmake:54 (FILE): />/ file INSTALL cannot set permissions on />/ />/ "/usr/local/contrib/trilinos-10.2.0-ser/include/Teuchos_AbstractFactory.hpp" />/ Call Stack (most recent call first): />/ packages/teuchos/cmake_install.cmake:48 (INCLUDE) />/ cmake_install.cmake:41 (INCLUDE) />/ />/ but then apparently tries to set the permissions anyway. But />/ since it did not overwrite, Mary does not own the files, and />/ so she cannot set the perms. The result being that the installation />/ errors out as above, possibly not completing, but at the very />/ least returning an error code that must be chased down. />/ />/ It seems to me that one should overinstall, even if the />/ file is there, if one is going to try to set permissions />/ afterwards. Is there a way to force such overinstallation />/ in cmake? Or perhaps not error out on a perm change if the />/ exising perms are okay? />/ />/ Thx....John Cary / You might try "make install CMAKE_INSTALL_ALWAYS=1", cf. [1]. Regards, Michael [1]http://www.cmake.org/Wiki/CMake_Useful_Variables Except that now I am at $ cmake --version cmake version 2.8.6 $ uname -a Linux zippy.txcorp.com 2.6.32-71.el6.x86_64 #1 SMP Fri May 20 03:51:51 BST 2011 x86_64 x86_64 x86_64 GNU/Linux $ gcc --version gcc (GCC) 4.6.2 Using CMAKE_INSTALL_ALWAYS=1 works for files, but if there is a directory installed by a previous user, it does not: file INSTALL cannot set permissions on "/internal/txphysics-r1533-ser/tests/txeedldata-tests/accepted_output" Call Stack (most recent call first): tests/cmake_install.cmake:45 (INCLUDE) cmake_install.cmake:87 (INCLUDE) make: *** [install] Error 1 (/internal/txphysics-r1533-ser/tests/txeedldata-tests/accepted_output is a directory.) It seems that even with CMAKE_INSTALL_ALWAYS=1, previously installed directories are not removed before the new installation. Is there a way to make this happen? Thx.....John -- 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://www.cmake.org/mailman/listinfo/cmake
