[Cmake-commits] [cmake-commits] king committed AddExternalProject.cmake 1.9 1.10

cmake-commits at cmake.org cmake-commits at cmake.org
Wed Mar 18 11:01:02 EDT 2009


Update of /cvsroot/CMake/CMake/Modules
In directory public:/mounts/ram/cvs-serv15041/Modules

Modified Files:
	AddExternalProject.cmake 
Log Message:
ENH: Add patch step for add_external_project

The patch step runs parallel to the update step since it does not make
sense to have both.  Configuration of the step requires specification of
a PATCH_COMMAND argument to add_external_project.


Index: AddExternalProject.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/AddExternalProject.cmake,v
retrieving revision 1.9
retrieving revision 1.10
diff -C 2 -d -r1.9 -r1.10
*** AddExternalProject.cmake	18 Mar 2009 15:00:27 -0000	1.9
--- AddExternalProject.cmake	18 Mar 2009 15:00:55 -0000	1.10
***************
*** 449,452 ****
--- 449,481 ----
  
  
+ function(add_external_project_patch_command name)
+   get_external_project_directories(base_dir build_dir downloads_dir install_dir
+     sentinels_dir source_dir tmp_dir)
+ 
+   get_target_property(cmd ${name} AEP_PATCH_COMMAND)
+   if(cmd)
+     add_custom_command(
+       OUTPUT ${sentinels_dir}/${name}-patch
+       COMMAND ${cmd}
+       COMMAND ${CMAKE_COMMAND} -E touch ${sentinels_dir}/${name}-patch
+       WORKING_DIRECTORY ${source_dir}/${name}
+       COMMENT "Performing patch step for '${name}'"
+       DEPENDS ${sentinels_dir}/${name}-download
+       VERBATIM
+       )
+     return()
+   endif()
+ 
+   add_custom_command(
+     OUTPUT ${sentinels_dir}/${name}-patch
+     COMMAND ${CMAKE_COMMAND} -E touch ${sentinels_dir}/${name}-patch
+     WORKING_DIRECTORY ${sentinels_dir}
+     COMMENT "No patch step for '${name}'"
+     DEPENDS ${sentinels_dir}/${name}-download
+     VERBATIM
+     )
+ endfunction(add_external_project_patch_command)
+ 
+ 
  function(add_external_project_configure_command name)
    get_external_project_directories(base_dir build_dir downloads_dir install_dir
***************
*** 465,468 ****
--- 494,498 ----
      COMMAND ${CMAKE_COMMAND} -E touch ${sentinels_dir}/${name}-working_dir
      DEPENDS ${sentinels_dir}/${name}-update
+             ${sentinels_dir}/${name}-patch
        ${file_deps}
      VERBATIM
***************
*** 636,639 ****
--- 666,670 ----
      INSTALL_ARGS
      INSTALL_COMMAND
+     PATCH_COMMAND
      SVN_REPOSITORY
      SVN_TAG
***************
*** 722,725 ****
--- 753,757 ----
    add_external_project_download_command(${name})
    add_external_project_update_command(${name})
+   add_external_project_patch_command(${name})
    add_external_project_configure_command(${name})
    add_external_project_build_command(${name})



More information about the Cmake-commits mailing list