PageRenderTime 106ms CodeModel.GetById 60ms RepoModel.GetById 8ms app.codeStats 0ms

/indra/cmake/CMakeCopyIfDifferent.cmake

https://bitbucket.org/lindenlab/viewer-beta/
CMake | 41 lines | 24 code | 1 blank | 16 comment | 0 complexity | ac5ed037a63356ff0e24cb021a983799 MD5 | raw file
Possible License(s): LGPL-2.1
  1. # -*- cmake -*-
  2. # Taken from http://www.cmake.org/Wiki/CMakeCopyIfDifferent
  3. # Generates a rule to copy each source file from source directory to destination directory.
  4. #
  5. # Typical use -
  6. #
  7. # SET(SRC_FILES head1.h head2.h head3.h)
  8. # COPY_IF_DIFFERENT( /from_dir /to_dir IncludeTargets ${SRC_FILES})
  9. # ADD_TARGET(CopyIncludes ALL DEPENDS ${IncludeTargets})
  10. MACRO(COPY_IF_DIFFERENT FROM_DIR TO_DIR TARGETS)
  11. # Macro to implement copy_if_different for a list of files
  12. # Arguments -
  13. # FROM_DIR - this is the source directory
  14. # TO_DIR - this is the destination directory
  15. # TARGETS - A variable to receive a list of targets
  16. # FILES - names of the files to copy
  17. # TODO: add globing.
  18. SET(AddTargets "")
  19. FOREACH(SRC ${ARGN})
  20. GET_FILENAME_COMPONENT(SRCFILE ${SRC} NAME)
  21. IF("${FROM_DIR}" STREQUAL "")
  22. SET(FROM ${SRC})
  23. ELSE("${FROM_DIR}" STREQUAL "")
  24. SET(FROM ${FROM_DIR}/${SRC})
  25. ENDIF("${FROM_DIR}" STREQUAL "")
  26. IF("${TO_DIR}" STREQUAL "")
  27. SET(TO ${SRCFILE})
  28. ELSE("${TO_DIR}" STREQUAL "")
  29. SET(TO ${TO_DIR}/${SRCFILE})
  30. ENDIF("${TO_DIR}" STREQUAL "")
  31. ADD_CUSTOM_COMMAND(
  32. OUTPUT "${TO}"
  33. COMMAND ${CMAKE_COMMAND} -E copy_if_different ${FROM} ${TO}
  34. DEPENDS ${FROM}
  35. COMMENT "Copying ${SRCFILE} ${TO_DIR}"
  36. )
  37. SET(AddTargets ${AddTargets} ${TO})
  38. ENDFOREACH(SRC ${ARGN})
  39. SET(${TARGETS} ${AddTargets})
  40. ENDMACRO(COPY_IF_DIFFERENT FROM_DIR TO_DIR TARGETS)