[CMake] Wanted : Macro to copy files if touched

John Biddiscombe biddisco at cscs.ch
Fri Jan 13 10:49:29 EST 2006


Thanks,

I've never used cmake -E - how does one call this from inside  CMake 
script. Are you implying that I simply create a custom rule and use 
cmake -E as the command for the copy?

JB

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> John Biddiscombe wrote:
>   
>> Hello all,
>>
>> I have a directory with some text files in that I need to copy to my 
>> build tree, currently I copy them like this
>>
>> FILE(MAKE_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}/resources )
>> FOREACH(file ${FILES_TO_BE_COPIED} )
>>   GET_FILENAME_COMPONENT(name ${file} NAME)
>>   IF (NOT EXISTS ${EXECUTABLE_OUTPUT_PATH}/resources/${name} )
>>     CONFIGURE_FILE( ${file} ${EXECUTABLE_OUTPUT_PATH}/resources COPYONLY)
>>   ENDIF (NOT EXISTS ${EXECUTABLE_OUTPUT_PATH}/resources/${name} )
>> ENDFOREACH(file) 
>>
>> which copies them only if they are not already there. I'm making a lot 
>> of tweaks to them at the moment and I'd like to copy them if they're not 
>> there or if the time in the source tree is is newer than the previously 
>> copied version.
>>     
>
> I suggest using cmake -E copy_if_different to copy the file if they are
> different
>
> fsousa at neptuno ~ $ cmake -E
> CMake Error: cmake version 2.3-20060113
> Usage: cmake -E [command] [arguments ...]
> Available commands:
>   chdir dir cmd [args]... - run command in a given directory
>   copy file destination   - copy file to destination (either file or
> directory)
>   copy_if_different in-file out-file   - copy file if input has changed
>   copy_directory source destination    - copy directory 'source' content
> to directory 'destination'
>   compare_files file1 file2 - check if file1 is same as file2
>   echo [string]...        - displays arguments as text
>   remove file1 file2 ...  - remove the file(s)
>   tar [cxt][vfz] file.tar file/dir1 file/dir2 ... - create a tar.
>   time command [args] ... - run command and return elapsed time
>   create_symlink old new  - create a symbolic link new -> old
>
>
>
>   
>> Before I start writing a new macro, if anyone has already got a snippet 
>> which does this, I'd love to use it. I'm guessing I'd need to set up a 
>> custom rule, add dependencies etc, I'm sure there must be examples out 
>> there.
>>
>> thanks
>>
>> JB
>>
>>     
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.2 (GNU/Linux)
>
> iD8DBQFDx7IEbQdNYqwwwCwRAtHAAJwJPrs1NUln2uTppRii5Ue6lKQjoQCePGvv
> cs98GdV2iabjpaZtC9NekF0=
> =fUWW
> -----END PGP SIGNATURE-----
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
>   


-- 
John Biddiscombe,                            email:biddisco @ cscs.ch
http://www.cscs.ch/about/BJohn.php
CSCS, Swiss National Supercomputing Centre  | Tel:  +41 (91) 610.82.07
Via Cantonale, 6928 Manno, Switzerland      | Fax:  +41 (91) 610.82.82




More information about the CMake mailing list