[Cmake-commits] [cmake-commits] king committed CMakeLists.txt 1.13 1.14 Step1Patch.cmake NONE 1.1

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


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

Modified Files:
	CMakeLists.txt 
Added Files:
	Step1Patch.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: CMakeLists.txt
===================================================================
RCS file: /cvsroot/CMake/CMake/Tests/ExternalProject/CMakeLists.txt,v
retrieving revision 1.13
retrieving revision 1.14
diff -C 2 -d -r1.13 -r1.14
*** CMakeLists.txt	18 Mar 2009 15:00:30 -0000	1.13
--- CMakeLists.txt	18 Mar 2009 15:00:59 -0000	1.14
***************
*** 91,94 ****
--- 91,95 ----
    INSTALL_ARGS ""
    INSTALL_COMMAND ""
+   PATCH_COMMAND ""
    SVN_REPOSITORY ""
    SVN_TAG ""
***************
*** 117,120 ****
--- 118,122 ----
  add_external_project(${proj}
    TAR "${CMAKE_CURRENT_SOURCE_DIR}/Step1.tar"
+   PATCH_COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/Step1Patch.cmake
    CMAKE_GENERATOR "${CMAKE_GENERATOR}"
    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${prefix}
***************
*** 264,268 ****
  
  add_test(TutorialStep1-LocalTAR-BuildTreeTest
!   "${build_dir}/TutorialStep1-LocalTAR/Tutorial" 36)
  
  add_test(TutorialStep1-LocalNoDirTAR-BuildTreeTest
--- 266,270 ----
  
  add_test(TutorialStep1-LocalTAR-BuildTreeTest
!   "${build_dir}/TutorialStep1-LocalTAR/EP-Tutorial" 36)
  
  add_test(TutorialStep1-LocalNoDirTAR-BuildTreeTest

--- NEW FILE: Step1Patch.cmake ---
# Verify the current working directory.
if(NOT EXISTS CMakeLists.txt)
  message(FATAL_ERROR "File does not exist:\n  ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt")
endif()
if(NOT EXISTS tutorial.cxx)
  message(FATAL_ERROR "File does not exist:\n  ${CMAKE_CURRENT_SOURCE_DIR}/tutorial.cxx")
endif()

# Check if the patch is already applied.
file(STRINGS CMakeLists.txt prop_line REGEX "^set_property")
if(prop_line)
  message(STATUS "Patch already applied!")
  return()
endif()

# Apply the patch.
file(APPEND CMakeLists.txt "
# Patch by ExternalProject test:
set_property(TARGET Tutorial PROPERTY OUTPUT_NAME EP-Tutorial)
")
message(STATUS "Patched ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt")



More information about the Cmake-commits mailing list