[Cmake-commits] [cmake-commits] king committed AddExternalProject.cmake 1.11 1.12
cmake-commits at cmake.org
cmake-commits at cmake.org
Mon Mar 30 11:35:29 EDT 2009
Update of /cvsroot/CMake/CMake/Modules
In directory public:/mounts/ram/cvs-serv29353/Modules
Modified Files:
AddExternalProject.cmake
Log Message:
ENH: Teach AddExternalProject a 'complete' step
This separates creation of the project completion sentinel file from the
'install' step to allow more steps to be added in between later.
Index: AddExternalProject.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/AddExternalProject.cmake,v
retrieving revision 1.11
retrieving revision 1.12
diff -C 2 -d -r1.11 -r1.12
*** AddExternalProject.cmake 18 Mar 2009 15:01:25 -0000 1.11
--- AddExternalProject.cmake 30 Mar 2009 15:35:22 -0000 1.12
***************
*** 585,589 ****
OUTPUT ${sentinels_dir}/${name}-install
COMMAND ${CMAKE_COMMAND} -E touch ${sentinels_dir}/${name}-install
- COMMAND ${CMAKE_COMMAND} -E touch ${sentinels_dir}/${name}-complete
WORKING_DIRECTORY ${working_dir}
COMMENT "No install step for '${name}'"
--- 585,588 ----
***************
*** 598,602 ****
COMMAND ${cmd}
COMMAND ${CMAKE_COMMAND} -E touch ${sentinels_dir}/${name}-install
- COMMAND ${CMAKE_COMMAND} -E touch ${sentinels_dir}/${name}-complete
WORKING_DIRECTORY ${working_dir}
COMMENT "Performing install step for '${name}'"
--- 597,600 ----
***************
*** 693,702 ****
! # Add a custom target for the external project and make its DEPENDS
! # the output of the final build step:
! #
! add_custom_target(${name} ALL
DEPENDS ${sentinels_dir}/${name}-install
! )
set_target_properties(${name} PROPERTIES AEP_IS_EXTERNAL_PROJECT 1)
add_dependencies(${name} CMakeExternals)
--- 691,709 ----
! # Add a custom target for the external project. The 'complete' step
! # depends on all other steps and creates a 'done' mark. A dependent
! # external project's 'configure' step depends on the 'done' mark so
! # that it rebuilds when this project rebuilds. It is important that
! # 'done' is not the output of any custom command so that CMake does
! # not propagate build rules to other external project targets.
! add_custom_target(${name} ALL DEPENDS ${sentinels_dir}/${name}-complete)
! add_custom_command(
! OUTPUT ${sentinels_dir}/${name}-complete
! COMMENT "Completed '${name}'"
! COMMAND ${CMAKE_COMMAND} -E touch ${sentinels_dir}/${name}-complete
! COMMAND ${CMAKE_COMMAND} -E touch ${sentinels_dir}/${name}-done
DEPENDS ${sentinels_dir}/${name}-install
! VERBATIM
! )
set_target_properties(${name} PROPERTIES AEP_IS_EXTERNAL_PROJECT 1)
add_dependencies(${name} CMakeExternals)
***************
*** 723,727 ****
if(NOT arg STREQUAL "")
add_dependencies(${name} ${arg})
! set_property(TARGET ${name} APPEND PROPERTY AEP_FILE_DEPENDS "${sentinels_dir}/${arg}-complete")
else()
message(AUTHOR_WARNING "empty DEPENDS value in add_external_project")
--- 730,734 ----
if(NOT arg STREQUAL "")
add_dependencies(${name} ${arg})
! set_property(TARGET ${name} APPEND PROPERTY AEP_FILE_DEPENDS "${sentinels_dir}/${arg}-done")
else()
message(AUTHOR_WARNING "empty DEPENDS value in add_external_project")
More information about the Cmake-commits
mailing list