[CMake] Setting the installation order of a script

Michael Hertling mhertling at online.de
Fri Jul 15 10:55:25 EDT 2011


On 07/14/2011 02:34 PM, David Cole wrote:
> The only way to guarantee that your install SCRIPT and CODE segments
> run last is to put them in their own subdirectory, and add it last.
> 
> i.e. :
> dir3/CMakeLists.txt:
> INSTALL (SCRIPT setpermissions.cmake)
> 
> CMakeLists.txt:
> ADD_SUBDIRECTORY(dir1)
> ADD_SUBDIRECTORY(dir2)
> # last, so it's install rules run after all other install rules
> ADD_SUBDIRECTORY(dir3)

If I understand correctly, this is exactly what's *not* guaranteed:

"Rules specified by calls to this command within a source directory are
executed in order during installation. The order across directories is
not defined." (documentation of INSTALL() command)

Perhaps, the CMake manual could be clarified in this regard since the
INSTALL() commands' order of execution is sometimes quite important.

Regards,

Michael

> On Thu, Jul 14, 2011 at 4:51 AM, Mathias Tausig
> <mathias.tausig at a-cert.at> wrote:
>> Hy!
>>
>> My CMakeLists.txt in the top directory looks like this:
>>
>> ADD_SUBDIRECTORY(dir1)
>> ADD_SUBDIRECTORY(dir2)
>> INSTALL (SCRIPT setpermissions.cmake)
>>
>> setpermissions.cmake changes some file-owner permissions of the stuff
>> that has been installed from dir1 and dir2. The problem is: if I execute
>> "make install", setpermissions is run previous to the installation from
>> the subdirectories.
>> Is there some way to make the script from the last line wait, until
>> everything else has been installed?
>> I am using cmake-2.8.3 under linux.
>>
>> cheer
>> Mathias


More information about the CMake mailing list