1 cmake_minimum_required(VERSION 2.8)
2 project(ExternalProjectTest NONE)
4 include(ExternalProject)
6 # Test ExternalProject, especially with checkouts from VCS
9 find_package(Subversion)
13 option(ExternalProjectTest_USE_FOLDERS "Enable folder grouping in IDEs." ON)
14 if(ExternalProjectTest_USE_FOLDERS)
15 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
17 set_property(GLOBAL PROPERTY USE_FOLDERS OFF)
20 set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER
21 "CMakePredefinedTargets-in-ExternalProjectTest")
23 set(base "${CMAKE_BINARY_DIR}/CMakeExternals")
24 set(binary_base "${base}/Build")
25 set_property(DIRECTORY PROPERTY EP_BASE ${base})
26 set_property(DIRECTORY PROPERTY EP_STEP_TARGETS configure build test)
28 add_custom_target(NonExternalProjectTarget
29 COMMAND ${CMAKE_COMMAND} -E echo NonExternalProjectTarget)
31 # Empty projects that test all the known ExternalProject_Add argument key words:
33 set(proj AAA-TestAlphabetization)
34 ExternalProject_Add(${proj}
41 set(proj ZZZ-TestAlphabetization)
42 ExternalProject_Add(${proj}
49 set(proj TargetNameSameAsFolder)
50 ExternalProject_Add(${proj}
56 set_property(TARGET ${proj} PROPERTY FOLDER "${proj}")
58 set(proj MinimalNoOpProject)
59 ExternalProject_Add(${proj}
66 set(proj EmptyNoOpProject)
67 ExternalProject_Add(${proj}
74 DEPENDS "MinimalNoOpProject" NonExternalProjectTarget
76 DOWNLOAD_NO_PROGRESS 1
79 STEP_TARGETS install update
91 set_property(TARGET ${proj} PROPERTY FOLDER "")
93 set(proj NoExtractLogDownload)
94 ExternalProject_Add(${proj}
95 URL ${CMAKE_CURRENT_SOURCE_DIR}/gitrepo.tgz
103 set(proj NoExtractBool)
104 ExternalProject_Add(${proj}
105 URL ${CMAKE_CURRENT_SOURCE_DIR}/gitrepo.tgz
106 DOWNLOAD_NO_EXTRACT 0
121 if(do_cvs_tests AND NOT UNIX)
122 if("${CVS_EXECUTABLE}" MATCHES "cygwin")
123 message(STATUS "No ExternalProject cvs tests with cygwin cvs.exe outside cygwin!")
129 # Unzip/untar the CVS repository in our source folder so that other
130 # projects below may use it to test CVS args of ExternalProject_Add
132 set(proj SetupLocalCVSRepository)
133 set(local_cvs_repo "${CMAKE_CURRENT_BINARY_DIR}/LocalRepositories/CVS")
134 ExternalProject_Add(${proj}
135 SOURCE_DIR ${local_cvs_repo}
136 URL ${CMAKE_CURRENT_SOURCE_DIR}/cvsrepo.tgz
137 URL_MD5 55fc85825ffdd9ed2597123c68b79f7e
139 CONFIGURE_COMMAND "${CVS_EXECUTABLE}" --version
142 set_property(TARGET ${proj}
143 PROPERTY FOLDER "SetupRepos/Local/Deeply/Nested/For/Testing")
145 # The MSYS cvs tool interprets "c:/" as a "machine:" name for SSH.
146 # Detect the MSYS cvs and convert the repo path to an MSYS path.
148 if(EXISTS "${CVS_EXECUTABLE}")
149 file(STRINGS "${CVS_EXECUTABLE}" cvs_is_msys LIMIT_COUNT 1 REGEX "[Mm][Ss][Yy][Ss]")
151 message(STATUS "'${CVS_EXECUTABLE}' is from MSYS (contains '${cvs_is_msys}')")
152 string(REGEX REPLACE "^([A-Za-z]):" "/\\1" local_cvs_repo "${local_cvs_repo}")
159 set(proj TutorialStep1-CVS-20090626)
160 ExternalProject_Add(${proj}
161 CVS_REPOSITORY "${local_cvs_repo}"
162 CVS_MODULE "TutorialStep1"
163 CVS_TAG "-D2009-06-26 16:50:00 UTC"
165 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
166 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
168 DEPENDS "SetupLocalCVSRepository"
170 set_property(TARGET ${proj} PROPERTY FOLDER "CVS")
174 set(proj TutorialStep1-CVS-testtag1)
175 ExternalProject_Add(${proj}
176 CVS_REPOSITORY "${local_cvs_repo}"
177 CVS_MODULE "TutorialStep1"
180 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
181 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
183 DEPENDS "SetupLocalCVSRepository"
185 set_property(TARGET ${proj} PROPERTY FOLDER "CVS")
187 # Live CVS / HEAD (no CVS_TAG):
189 set(proj TutorialStep1-CVS-HEAD)
190 ExternalProject_Add(${proj}
191 CVS_REPOSITORY "${local_cvs_repo}"
192 CVS_MODULE "TutorialStep1"
193 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
194 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
196 DEPENDS "SetupLocalCVSRepository"
197 DEPENDS "EmptyNoOpProject"
198 DEPENDS "TutorialStep1-CVS-20090626"
199 DEPENDS "TutorialStep1-CVS-testtag1"
201 set_property(TARGET ${proj} PROPERTY FOLDER "CVS")
209 if(Subversion_SVN_EXECUTABLE)
213 # Only do svn tests with svn >= version 1.2
216 if(Subversion_VERSION_SVN VERSION_LESS 1.2)
217 message(STATUS "No ExternalProject svn tests with svn client less than version 1.2")
222 # Only do svn tests in cygwin/cygwin or not-cygwin/not-cygwin arrangements:
225 if(CMAKE_CURRENT_BINARY_DIR MATCHES "cygdrive/" AND
226 NOT "${Subversion_SVN_EXECUTABLE}" MATCHES "cygwin")
227 message(STATUS "No ExternalProject svn tests with non-cygwin svn client in a /cygdrive based build")
233 # Unzip/untar the SVN repository in our source folder so that other
234 # projects below may use it to test SVN args of ExternalProject_Add
236 set(proj SetupLocalSVNRepository)
237 set(local_svn_repo "${CMAKE_CURRENT_BINARY_DIR}/LocalRepositories/SVN")
238 set(local_svn_repo_url "file:///${local_svn_repo}/TutorialStep1")
239 ExternalProject_Add(${proj}
240 SOURCE_DIR ${local_svn_repo}
241 URL ${CMAKE_CURRENT_SOURCE_DIR}/svnrepo.tgz
242 URL_MD5 2f468be4ed1fa96377fca0cc830819c4
244 CONFIGURE_COMMAND "${Subversion_SVN_EXECUTABLE}" --version
247 set_property(TARGET ${proj}
248 PROPERTY FOLDER "SetupRepos/Local/Deeply/Nested/For/Testing")
252 set(proj TutorialStep1-SVN-20090626)
253 ExternalProject_Add(${proj}
254 SVN_REPOSITORY "${local_svn_repo_url}"
255 SVN_REVISION "-r{2009-06-26 16:50:00 +0000}"
257 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
258 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
260 DEPENDS "SetupLocalSVNRepository"
262 set_property(TARGET ${proj} PROPERTY FOLDER "SVN")
264 # SVN by revision number:
266 set(proj TutorialStep1-SVN-r2)
267 ExternalProject_Add(${proj}
268 SVN_REPOSITORY "${local_svn_repo_url}"
271 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
272 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
274 DEPENDS "SetupLocalSVNRepository"
276 set_property(TARGET ${proj} PROPERTY FOLDER "SVN")
278 # Live SVN / trunk (no SVN_REVISION):
280 set(proj TutorialStep1-SVN-trunk)
281 ExternalProject_Add(${proj}
282 SVN_REPOSITORY "${local_svn_repo_url}"
283 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
284 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
286 DEPENDS "SetupLocalSVNRepository"
289 set_property(TARGET ${proj} PROPERTY FOLDER "SVN")
299 COMMAND "${GIT_EXECUTABLE}" --version
301 OUTPUT_STRIP_TRAILING_WHITESPACE
303 string(REGEX REPLACE "^git version (.+)$" "\\1" git_version "${ov}")
304 message(STATUS "git_version='${git_version}'")
306 if(git_version VERSION_LESS 1.6.5)
307 message(STATUS "No ExternalProject git tests with git client less than version 1.6.5")
314 set(local_git_repo "../../LocalRepositories/GIT")
316 # Unzip/untar the git repository in our source folder so that other
317 # projects below may use it to test git args of ExternalProject_Add
319 set(proj SetupLocalGITRepository)
320 ExternalProject_Add(${proj}
321 SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/LocalRepositories/GIT
322 URL ${CMAKE_CURRENT_SOURCE_DIR}/gitrepo.tgz
324 CONFIGURE_COMMAND "${GIT_EXECUTABLE}" --version
327 set_property(TARGET ${proj}
328 PROPERTY FOLDER "SetupRepos/Local/Deeply/Nested/For/Testing")
332 set(proj TutorialStep1-GIT-byhash)
333 ExternalProject_Add(${proj}
334 GIT_REPOSITORY "${local_git_repo}"
335 GIT_TAG d1970730310fe8bc07e73f15dc570071f9f9654a
337 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
338 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
340 DEPENDS "SetupLocalGITRepository"
342 set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
344 # git by explicit branch/tag name:
346 set(proj TutorialStep1-GIT-bytag)
347 ExternalProject_Add(${proj}
348 GIT_REPOSITORY "${local_git_repo}"
349 GIT_TAG "origin/master"
351 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
352 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
354 DEPENDS "SetupLocalGITRepository"
356 set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
358 # Live git / master (no GIT_TAG):
360 set(proj TutorialStep1-GIT-master)
361 ExternalProject_Add(${proj}
362 GIT_REPOSITORY "${local_git_repo}"
363 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
364 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
366 DEPENDS "SetupLocalGITRepository"
369 set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
371 # Live git / master (no GIT_TAG), but shallow
373 set(proj TutorialStep1-GIT-shallow-master)
374 ExternalProject_Add(${proj}
375 GIT_REPOSITORY "${local_git_repo}"
377 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
378 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
380 DEPENDS "SetupLocalGITRepository"
383 set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
385 # Live git / master (no GIT_TAG), but git config flags
387 # The `git clone --config` parameter has been introduced in Git 1.7.7
388 if(NOT git_version VERSION_LESS 1.7.7)
389 set(proj TutorialStep1-GIT-config)
390 ExternalProject_Add(${proj}
391 GIT_REPOSITORY "${local_git_repo}"
392 GIT_CONFIG core.eol=lf
394 "http.extraheader=AUTHORIZATION: bearer --unsupportedOption"
395 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
396 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
398 DEPENDS "SetupLocalGITRepository"
401 set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
404 # git by explicit branch/tag with empty submodule list
406 set(proj TutorialStep1-GIT-bytag-withsubmodules)
407 ExternalProject_Add(${proj}
408 GIT_REPOSITORY "${local_git_repo}"
409 GIT_TAG "origin/master"
412 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
413 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
415 DEPENDS "SetupLocalGITRepository"
417 set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
419 # Unzip/untar the git repository in our source folder so that other
420 # projects below may use it to test git args of ExternalProject_Add
422 set(proj SetupLocalGITRepositoryWithSubmodules)
423 ExternalProject_Add(${proj}
424 SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/LocalRepositories/GIT-with-submodules
425 URL ${CMAKE_CURRENT_SOURCE_DIR}/gitrepo-sub.tgz
427 CONFIGURE_COMMAND "${GIT_EXECUTABLE}" --version
430 set_property(TARGET ${proj}
431 PROPERTY FOLDER "SetupRepos/Local/Deeply/Nested/For/Testing")
433 set(local_git_repo "../../LocalRepositories/GIT-with-submodules")
435 set(proj TS1-GIT-all-GIT_SUBMODULES)
436 ExternalProject_Add(${proj}
437 GIT_REPOSITORY "${local_git_repo}"
438 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
439 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
444 DEPENDS "SetupLocalGITRepository"
445 "SetupLocalGITRepositoryWithSubmodules"
447 set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
449 set(proj TS1-GIT-all-GIT_SUBMODULES-via-CMP0097-OLD)
450 cmake_policy(SET CMP0097 OLD)
451 ExternalProject_Add(${proj}
452 GIT_REPOSITORY "${local_git_repo}"
454 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
455 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
460 DEPENDS "SetupLocalGITRepository"
461 "SetupLocalGITRepositoryWithSubmodules"
463 set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
465 set(proj TS1-GIT-no-GIT_SUBMODULES)
466 cmake_policy(SET CMP0097 NEW)
467 ExternalProject_Add(${proj}
468 GIT_REPOSITORY "${local_git_repo}"
470 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
471 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
476 DEPENDS "SetupLocalGITRepository"
477 "SetupLocalGITRepositoryWithSubmodules"
479 set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
481 set(proj TS1-GIT-some-GIT_SUBMODULES)
482 ExternalProject_Add(${proj}
483 GIT_REPOSITORY "${local_git_repo}"
484 GIT_SUBMODULES "m/m1"
485 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
486 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
491 DEPENDS "SetupLocalGITRepository"
492 "SetupLocalGITRepositoryWithSubmodules"
494 set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
496 # Unzip/untar the git repository in our source folder so that other
497 # projects below may use it to test git args of ExternalProject_Add
499 set(proj SetupLocalGITRepositoryWithRecursiveSubmodules)
500 ExternalProject_Add(${proj}
501 SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/LocalRepositories/GIT-with-recursive-submodules
502 URL ${CMAKE_CURRENT_SOURCE_DIR}/gitrepo-sub-rec.tgz
504 CONFIGURE_COMMAND "${GIT_EXECUTABLE}" --version
507 set_property(TARGET ${proj}
508 PROPERTY FOLDER "SetupRepos/Local/Deeply/Nested/For/Testing")
510 set(local_git_repo "../../LocalRepositories/GIT-with-recursive-submodules")
512 set(proj TS1-GIT-RECURSIVE_SUBMODULES-default)
513 ExternalProject_Add(${proj}
514 GIT_REPOSITORY "${local_git_repo}"
515 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
516 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
517 -DWITH_RECURSIVE:BOOL=ON
520 DEPENDS "SetupLocalGITRepository"
521 "SetupLocalGITRepositoryWithSubmodules"
522 "SetupLocalGITRepositoryWithRecursiveSubmodules"
524 set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
526 set(proj TS1-GIT-RECURSIVE_SUBMODULES-exclusive)
527 ExternalProject_Add(${proj}
528 GIT_REPOSITORY "${local_git_repo}"
529 GIT_SUBMODULES_RECURSE TRUE
530 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
531 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
532 -DWITH_RECURSIVE:BOOL=ON
535 DEPENDS "SetupLocalGITRepository"
536 "SetupLocalGITRepositoryWithSubmodules"
537 "SetupLocalGITRepositoryWithRecursiveSubmodules"
539 set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
541 set(proj TS1-GIT-RECURSIVE_SUBMODULES-off)
542 ExternalProject_Add(${proj}
543 GIT_REPOSITORY "${local_git_repo}"
544 GIT_SUBMODULES_RECURSE FALSE
545 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
546 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
547 -DWITH_RECURSIVE:BOOL=OFF
550 DEPENDS "SetupLocalGITRepository"
551 "SetupLocalGITRepositoryWithSubmodules"
552 "SetupLocalGITRepositoryWithRecursiveSubmodules"
554 set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
564 if(do_hg_tests AND NOT UNIX)
565 if("${HG_EXECUTABLE}" MATCHES "cygwin")
566 message(STATUS "No ExternalProject hg tests with cygwin hg outside cygwin!")
572 set(local_hg_repo "../../LocalRepositories/HG")
574 # Unzip/untar the hg repository in our source folder so that other
575 # projects below may use it to test hg args of ExternalProject_Add
577 set(proj SetupLocalHGRepository)
578 ExternalProject_Add(${proj}
579 SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/LocalRepositories/HG
580 URL ${CMAKE_CURRENT_SOURCE_DIR}/hgrepo.tgz
582 CONFIGURE_COMMAND "${HG_EXECUTABLE}" --version
585 set_property(TARGET ${proj}
586 PROPERTY FOLDER "SetupRepos/Local/Deeply/Nested/For/Testing")
591 set(proj TutorialStep1-HG-byhash)
592 ExternalProject_Add(${proj}
593 HG_REPOSITORY "${local_hg_repo}"
596 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
597 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
599 DEPENDS "SetupLocalHGRepository"
601 set_property(TARGET ${proj} PROPERTY FOLDER "HG")
603 # hg by explicit branch/tag name:
605 set(proj TutorialStep1-HG-bytag)
606 ExternalProject_Add(${proj}
607 HG_REPOSITORY "${local_hg_repo}"
610 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
611 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
613 DEPENDS "SetupLocalHGRepository"
615 set_property(TARGET ${proj} PROPERTY FOLDER "HG")
617 # Live hg / tip (no HG_TAG):
619 # Mercurial 2.1 does not distinguish an empty pull from a failed pull,
620 # so do not run the test with that version.
621 if(NOT "${HG_VERSION_STRING}" STREQUAL "2.1")
622 set(proj TutorialStep1-HG-tip)
623 ExternalProject_Add(${proj}
624 HG_REPOSITORY "${local_hg_repo}"
625 CMAKE_GENERATOR "${CMAKE_GENERATOR}"
626 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
628 DEPENDS "SetupLocalHGRepository"
631 set_property(TARGET ${proj} PROPERTY FOLDER "HG")
636 # Test the testable built/installed products:
641 # Do at least a smoke test of a built executable from each
642 # project's build directory...
647 add_test(TutorialStep1-CVS-20090626-BuildTreeTest
648 "${binary_base}/TutorialStep1-CVS-20090626/Tutorial" 4)
650 add_test(TutorialStep1-CVS-testtag1-BuildTreeTest
651 "${binary_base}/TutorialStep1-CVS-testtag1/Tutorial" 64)
653 add_test(TutorialStep1-CVS-HEAD-BuildTreeTest
654 "${binary_base}/TutorialStep1-CVS-HEAD/Tutorial" 81)
658 add_test(TutorialStep1-SVN-20090626-BuildTreeTest
659 "${binary_base}/TutorialStep1-SVN-20090626/Tutorial" 100)
661 add_test(TutorialStep1-SVN-r2-BuildTreeTest
662 "${binary_base}/TutorialStep1-SVN-r2/Tutorial" 99)
664 add_test(TutorialStep1-SVN-trunk-BuildTreeTest
665 "${binary_base}/TutorialStep1-SVN-trunk/Tutorial" 98)
669 add_test(TutorialStep1-GIT-byhash
670 "${binary_base}/TutorialStep1-GIT-byhash/Tutorial" 100)
672 add_test(TutorialStep1-GIT-bytag
673 "${binary_base}/TutorialStep1-GIT-bytag/Tutorial" 99)
675 add_test(TutorialStep1-GIT-bytag-withsubmodules
676 "${binary_base}/TutorialStep1-GIT-bytag-withsubmodules/Tutorial" 99)
678 add_test(TutorialStep1-GIT-shallow-master
679 "${binary_base}/TutorialStep1-GIT-shallow-master/Tutorial" 98)
681 add_test(TutorialStep1-GIT-master
682 "${binary_base}/TutorialStep1-GIT-master/Tutorial" 98)
684 if(NOT git_version VERSION_LESS 1.7.7)
685 add_test(TutorialStep1-GIT-config
686 "${binary_base}/TutorialStep1-GIT-config/Tutorial" 98)
691 message(STATUS "do_cvs_tests='${do_cvs_tests}'")
692 message(STATUS "do_svn_tests='${do_svn_tests}'")
693 message(STATUS "do_git_tests='${do_git_tests}' GIT_EXECUTABLE='${GIT_EXECUTABLE}'")
694 message(STATUS "do_hg_tests='${do_hg_tests}' HG_EXECUTABLE='${HG_EXECUTABLE}'")
697 # Test if log works when the first arguments of *_COMMAND is "COMMAND".
698 set(proj ExternalProject-no-log)
702 set(configure_cmd "")
706 ExternalProject_Add(${proj}
707 DOWNLOAD_COMMAND "${download_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "download"
708 PATCH_COMMAND "${patch_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "patch"
709 UPDATE_COMMAND "${update_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "update"
710 CONFIGURE_COMMAND "${configure_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "configure"
711 BUILD_COMMAND "${build_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "build"
712 INSTALL_COMMAND "${install_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "install"
715 set(proj ExternalProject-log)
716 ExternalProject_Add(${proj}
717 DOWNLOAD_COMMAND "${download_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "download"
718 PATCH_COMMAND "${patch_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "patch"
719 UPDATE_COMMAND "${update_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "update"
720 CONFIGURE_COMMAND "${configure_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "configure"
721 BUILD_COMMAND "${build_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "build"
722 INSTALL_COMMAND "${install_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "install"
731 set(proj ExternalProject-log-dir)
732 ExternalProject_Add(${proj}
733 DOWNLOAD_COMMAND "${download_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "download"
734 PATCH_COMMAND "${patch_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "patch"
735 UPDATE_COMMAND "${update_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "update"
736 CONFIGURE_COMMAND "${configure_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "configure"
737 BUILD_COMMAND "${build_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "build"
738 INSTALL_COMMAND "${install_cmd}" COMMAND "${CMAKE_COMMAND}" -E echo "install"
739 LOG_MERGED_STDOUTERR 1
740 LOG_DIR ${CMAKE_CURRENT_BINARY_DIR}/different_log