[Cmake-commits] [cmake-commits] king committed AddExternalProject.cmake 1.15 1.16
cmake-commits at cmake.org
cmake-commits at cmake.org
Mon Mar 30 11:37:37 EDT 2009
Update of /cvsroot/CMake/CMake/Modules
In directory public:/mounts/ram/cvs-serv29709/Modules
Modified Files:
AddExternalProject.cmake
Log Message:
ENH: Simpler AddExternalProject update step
This simplifies the implementation with add_external_project_step.
Index: AddExternalProject.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/AddExternalProject.cmake,v
retrieving revision 1.15
retrieving revision 1.16
diff -C 2 -d -r1.15 -r1.16
*** AddExternalProject.cmake 30 Mar 2009 15:37:03 -0000 1.15
--- AddExternalProject.cmake 30 Mar 2009 15:37:29 -0000 1.16
***************
*** 391,484 ****
sentinels_dir source_dir tmp_dir)
! get_target_property(cmd ${name} AEP_UPDATE_COMMAND)
! if(cmd STREQUAL "")
! # Explicit empty string means no update step for this project
! add_custom_command(
! OUTPUT ${sentinels_dir}/${name}-update
! COMMAND ${CMAKE_COMMAND} -E touch ${sentinels_dir}/${name}-update
! WORKING_DIRECTORY ${sentinels_dir}
! COMMENT "No update step for '${name}'"
! DEPENDS ${sentinels_dir}/${name}-download
! )
! return()
! else()
! if(cmd)
! add_custom_command(
! OUTPUT ${sentinels_dir}/${name}-update
! COMMAND ${cmd}
! COMMAND ${CMAKE_COMMAND} -E touch ${sentinels_dir}/${name}-update
! WORKING_DIRECTORY ${source_dir}/${name}
! COMMENT "Performing update step for '${name}'"
! DEPENDS ${sentinels_dir}/${name}-download
! VERBATIM
! )
! return()
! else()
! # No explicit UPDATE_COMMAND property. Look for other properties
! # indicating which update method to use in the logic below...
! endif()
! endif()
!
!
! get_target_property(cvs_repository ${name} AEP_CVS_REPOSITORY)
! if(cvs_repository)
if(NOT CVS_EXECUTABLE)
message(FATAL_ERROR "error: could not find cvs for update of ${name}")
endif()
-
- get_property(cvs_tag TARGET ${name} PROPERTY AEP_CVS_TAG)
-
- set(args -d ${cvs_repository} -q up -dP ${cvs_tag})
-
mkdir("${source_dir}/${name}")
! add_custom_command(
! OUTPUT ${sentinels_dir}/${name}-update
! COMMAND ${CVS_EXECUTABLE} ${args}
! WORKING_DIRECTORY ${source_dir}/${name}
! COMMENT "Performing update step (CVS update) for '${name}'"
! DEPENDS ${sentinels_dir}/${name}-download
! VERBATIM
! )
! # Since the update sentinel is not actually written:
! set_property(SOURCE ${sentinels_dir}/${name}-update
! PROPERTY SYMBOLIC 1)
! return()
! endif()
!
!
! get_target_property(svn_repository ${name} AEP_SVN_REPOSITORY)
! if(svn_repository)
if(NOT Subversion_SVN_EXECUTABLE)
message(FATAL_ERROR "error: could not find svn for update of ${name}")
endif()
-
- get_property(svn_tag TARGET ${name} PROPERTY AEP_SVN_TAG)
-
- set(args up ${svn_tag})
-
mkdir("${source_dir}/${name}")
! add_custom_command(
! OUTPUT ${sentinels_dir}/${name}-update
! COMMAND ${Subversion_SVN_EXECUTABLE} ${args}
! WORKING_DIRECTORY ${source_dir}/${name}
! COMMENT "Performing update step (SVN update) for '${name}'"
! DEPENDS ${sentinels_dir}/${name}-download
! VERBATIM
! )
! # Since the update sentinel is not actually written:
! set_property(SOURCE ${sentinels_dir}/${name}-update
! PROPERTY SYMBOLIC 1)
! return()
endif()
!
! add_custom_command(
! OUTPUT ${sentinels_dir}/${name}-update
! COMMAND ${CMAKE_COMMAND} -E touch ${sentinels_dir}/${name}-update
! WORKING_DIRECTORY ${sentinels_dir}
! COMMENT "No update step for '${name}'"
! DEPENDS ${sentinels_dir}/${name}-download
! VERBATIM
)
endfunction(add_external_project_update_command)
--- 391,431 ----
sentinels_dir source_dir tmp_dir)
+ get_property(cmd TARGET ${name} PROPERTY AEP_UPDATE_COMMAND)
+ get_property(cvs_repository TARGET ${name} PROPERTY AEP_CVS_REPOSITORY)
+ get_property(svn_repository TARGET ${name} PROPERTY AEP_SVN_REPOSITORY)
! set(work_dir)
! set(comment)
! set(symbolic)
! if(cmd)
! set(work_dir ${source_dir}/${name})
! elseif(cvs_repository)
if(NOT CVS_EXECUTABLE)
message(FATAL_ERROR "error: could not find cvs for update of ${name}")
endif()
mkdir("${source_dir}/${name}")
! set(work_dir ${source_dir}/${name})
! set(comment "Performing update step (CVS update) for '${name}'")
! get_property(cvs_tag TARGET ${name} PROPERTY AEP_CVS_TAG)
! set(cmd ${CVS_EXECUTABLE} -d ${cvs_repository} -q up -dP ${cvs_tag})
! set(symbolic 1)
! elseif(svn_repository)
if(NOT Subversion_SVN_EXECUTABLE)
message(FATAL_ERROR "error: could not find svn for update of ${name}")
endif()
mkdir("${source_dir}/${name}")
! set(work_dir ${source_dir}/${name})
! set(comment "Performing update step (SVN update) for '${name}'")
! get_property(svn_tag TARGET ${name} PROPERTY AEP_SVN_TAG)
! set(cmd ${Subversion_SVN_EXECUTABLE} up ${svn_tag})
! set(symbolic 1)
endif()
! add_external_project_step(${name} update
! COMMENT ${comment}
! COMMAND ${cmd}
! SYMBOLIC ${symbolic}
! WORKING_DIRECTORY ${work_dir}
! DEPENDEES download
)
endfunction(add_external_project_update_command)
More information about the Cmake-commits
mailing list