[CMake] Only install file if it does not exist?
Eric Noulard
eric.noulard at gmail.com
Wed Sep 9 03:20:56 EDT 2009
2009/9/9 Bob Tanner <tanner at real-time.com>:
> I must be missing something simple?
>
> During "make install" I only want to install a set of files if the do not
> exist in destination.
>
> MACRO (COPY_IF_DOES_NOT_EXIST SOURCE DESTINATION)
> ADD_CUSTOM_COMMAND (
> TARGET COPY
> IF (NOT EXISTS ${DESTINATION})
> COMMAND ${CMAKE_COMMAND} -E copy ${SOURCE}
> ${DESTINATION}
> ENDIF (NOT EXISTS ${DESTINATION})
> )
>
> ADD_CUSTOM_TARGET (
> COPY ALL
> COMMENT "Copy file: ${SOURCE} ${DESTINATION}"
> )
>
> ENDMACRO (COPY_IF_DOES_NOT_EXIST SOURCE DESTINATION)
>
> Works the first time, but if I delete the destination file a make install
> won't install it again.
With your current macro the file is "installed" at CMake run time and
not during "make install".
You may check that fact if you rerun cmake the file is copied again.
You should look at the install(SCRIPT or install(CODE command
in order to execute CMake script at "install time".
--
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org
More information about the CMake
mailing list