1. 19 Oct, 2018 2 commits
    • Wouter Klouwen's avatar
      ExternalProject: option LOG_MERGED_STDOUTERR to combine stdout and stderr · 7ddc9e35
      Wouter Klouwen authored
      In some circumstances the user of ExternalProject may not desire the
      split log files for stdout and stderr. In particular with a project has
      many errors it can be difficult to correlate the output error with the
      command that it resulted from.
      This commit adds the LOG_MERGED_STDOUTERR option that when enabled
      outputs into a unified <name>-<step>.log for each step. If disabled it
      will default to the previous behaviour of <name>-<step>-out.log and
    • Wouter Klouwen's avatar
      ExternalProject: add LOG_DIR option that allows overriding of log location · b6f6cac3
      Wouter Klouwen authored
      In some situations it can be helpful to separate out the location of the
      log files from the location of the stamp files. For instance if you have
      a continuous integration that exposes the location where log files are
      This commit adds an option that allows a user to override the default
      behaviour of putting the log files in STAMP_DIR called LOG_DIR. The
      previous behaviour of putting the log files into the STAMP_DIR applies
      if LOG_DIR is not specified.
  2. 12 Jul, 2017 1 commit
  3. 27 Feb, 2017 1 commit
  4. 09 Nov, 2016 1 commit
  5. 27 Apr, 2016 1 commit
  6. 25 Sep, 2015 1 commit
  7. 08 Jun, 2015 1 commit
  8. 20 May, 2015 1 commit
  9. 22 Oct, 2014 1 commit
  10. 03 Jul, 2014 1 commit
    • Rolf Eike Beer's avatar
      Tests: split the ExternalProject test · 92af3664
      Rolf Eike Beer authored
      Move the subtests that test with local projects into their own test. The reason
      is that on slower or crowded machines the test may reach the limit of 25
      minutes and therefore fail while it would pass if it was given enough time.
      The split is roughly 3:1 with regard to the execution time, with the new
      ExternalProjectLocal test being the faster one.
  11. 01 Jul, 2014 1 commit
  12. 17 Mar, 2014 1 commit
  13. 28 Jan, 2014 1 commit
  14. 16 Jan, 2013 1 commit
    • Brad King's avatar
      ExternalProject: Allow DEPENDS on normal targets (#13849) · c0f1af92
      Brad King authored
      The ExternalProject_Add DEPENDS option adds two types of dependencies.
      It adds a target-level build order dependency between the external
      project target and the named targets.  It also adds a file-level
      dependency on the "done" stamp file of the named external project
      targets.  Targets not created by ExternalProject_Add have no such stamp
      file and no _EP_STAMP_DIR property.  Prior to commit d14c0243 (Refactor
      repeated code into function, 2012-04-26) we unconditionally accepted an
      empty stamp dir and generated a dependency on a non-existent file.
      After that commit we generate an error that no stamp dir is set.
      Skip the file-level dependency when the named dependency is not an
      external project target in order to allow this use case.  Teach the
      ExternalProject test to cover the case.
  15. 03 Nov, 2012 1 commit
  16. 11 Sep, 2012 1 commit
  17. 16 Aug, 2012 1 commit
    • Brad King's avatar
      ExternalProject: Add Mercurial (hg) repository support · 91053cdf
      Brad King authored
      Add options HG_REPOSITORY and HG_TAG to specify an external project
      hosted in a Mercurial repository.  Teach ExternalProject to clone the
      repository and update from it.  Extend the ExternalProject test to try a
      Mercurial repository when hg is available.
  18. 13 Aug, 2012 1 commit
    • Kitware Robot's avatar
      Remove CMake-language block-end command arguments · 9db31162
      Kitware Robot authored
      Ancient versions of CMake required else(), endif(), and similar block
      termination commands to have arguments matching the command starting the
      block.  This is no longer the preferred style.
      Run the following shell code:
      for c in else endif endforeach endfunction endmacro endwhile; do
          echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/'
      done >convert.sed &&
      git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
      egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
      egrep -z -v 'Tests/CMakeTests/While-Endwhile-' |
      xargs -0 sed -i -f convert.sed &&
      rm convert.sed
  19. 02 Mar, 2012 1 commit
    • Brad King's avatar
      Fix MSYS CVS local test repo path format (#13001) · e3336025
      Brad King authored
      The MSYS cvs tool interprets "c:/" as a "machine:" name for SSH.  Detect
      the MSYS cvs by looking for the string "msys" in the executable file
      itself.  Then convert the repo path to an MSYS path such as "/c/...".
      Fix both the CTest.UpdateCVS and ExternalProject tests that use local
      CVS repositories.
  20. 05 Dec, 2011 1 commit
    • Rolf Eike Beer's avatar
      Tests: ExternalProject: Remove unnecessary 'svn --version' call · f529ddce
      Rolf Eike Beer authored
      This test will fail to get a proper version number if running on a (e.g.
      German) localized system because the regular expression used to match the
      Subversion version output does not match. Instead of duplicating code just
      remove the local test altogether and use the version that FindSubversion.cmake
      already detects.
  21. 09 Nov, 2011 1 commit
    • David Cole's avatar
      Tests: Nudge MFC test to pass on VS 6 dashboards (#11213) · 537020f9
      David Cole authored
      InstallRequiredSystemLibraries does not install any dlls when
      used with VS 6 dashboards. Modify the ValidateBuild script to
      expect only 1 file when building with VS 6.
      Using "-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>" does not work when
      <INSTALL_DIR> evaluates to a long enough string. However, using
      "-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>" does work, even with
      the longer strings. So: make sure to include the ":PATH" when using
      this construct with ExternalProject calls so that they may install
      to the proper location on VS 6 builds. All existing calls that match
      "CMAKE_INSTALL_PREFIX.*INSTALL_DIR" include the ":PATH" after this
      By the way: https://twitter.com/DLRdave/status/134339505397309440
  22. 11 Apr, 2011 1 commit
    • David Cole's avatar
      ExternalProject: Add SVN_TRUST_CERT argument · 3a5a402a
      David Cole authored
      Which adds --non-interactive and --trust-server-cert to the svn
      checkout and update command lines. This allows ExternalProject
      clients to pull from an https:// based svn server even though
      the server may not have a valid or trusted certificate.
      Caveat emptor: I would NOT recommend using this except as a
      short-term work-around. Rather, the server should have a valid,
      trusted certificate, or the client should be using "http" instead
      of "https".
  23. 07 Jan, 2011 1 commit
  24. 02 Oct, 2010 1 commit
    • David Cole's avatar
      New USE_FOLDERS property OFF by default. (#3796) · fd3249e1
      David Cole authored
      Visual Studio Express editions do not support solution folders,
      so default behavior should be as if USE_FOLDERS global property
      is OFF.
      Also, allow folder names to be the same as target names: internally,
      use a prefix to distinguish folder GUIDs from target GUIDs. Add
      a target and folder with the same name in the ExternalProject
      test to exercise this code.
      For CMake itself, provide a new option CMAKE_USE_FOLDERS that
      defaults to ON so that Visual Studio users get a nicely organized
      CMake project. Express edition users will have to turn off the
      CMAKE_USE_FOLDERS option in order to build CMake in the VS Express
  25. 03 Sep, 2010 1 commit
    • David Cole's avatar
      Add FOLDER target property, for IDEs (#3796) · e6ac0aac
      David Cole authored
      This work was started from a patch by Thomas Schiffer.
      Thanks, Thomas!
      See the newly added documentation of the FOLDER target
      property for details.
      Also added global properties, USE_FOLDERS and
      PREDEFINED_TARGETS_FOLDER. See new docs here, too.
      By default, the FOLDER target property is used to organize
      targets into folders in IDEs that have support for such
      This commit adds "solution folder" support to the Visual
      Studio generators. Currently works with versions 7 through
      Also, use the new FOLDER property in the ExternalProject
      test and in the CMake project itself.
  26. 23 Aug, 2010 1 commit
    • David Cole's avatar
      Add STEP_TARGETS to ExternalProject module. · ef9dd49d
      David Cole authored
      This commit introduces the ability to add custom targets
      that correspond to individual ExternalProject steps.
      The main motivation behind this new feature is to drive
      sub-project based dashboard steps as external projects
      with separate targets for update, configure, build and
      test output. This makes it easy to construct a ctest -S
      script to drive such a dashboard.
      With no STEP_TARGETS defined, there are no additional
      custom targets introduced, to minimize the chatter in
      the target name space. Clients may define STEP_TARGETS
      on a per-ExternalProject_Add basis, or at the directory
      level by setting the EP_STEP_TARGETS directory property.
  27. 21 Jun, 2010 1 commit
    • Brad King's avatar
      ExternalProject: Add LOG_* options to hide step output · 012c9863
      Brad King authored
      Optionally hide the output of each external project build step by
      wrapping its command in a launcher script.  Make output available in log
      files instead.  This simplifies the output of external project builds.
  28. 03 Jun, 2010 2 commits
    • David Cole's avatar
      Add FindGit module. · 29383b4b
      David Cole authored
      Use it from ExternalProject and the ExternalProject test's
      CMakeLists file rather than having duplicate find_program calls.
      Add logic so that we do not try to use *.cmd variants of git
      programs when using the MSYS Makefiles generator. Should fix
      the last remaining dashboard issue with the new ExternalProject
      git support additions.
      Also, correct minor problem regarding placement of the local git
      repo during test execution. On clean builds, it was being placed
      incorrectly because of the ../.. relative reference. Use an absolute
      path to place the local git repo in the proper directory, and only
      use the relative reference when referring to it.
    • David Cole's avatar
      Use relative path for git repo reference. · d569b48b
      David Cole authored
      So it will work with git_EXECUTABLE='C:\cygwin\bin\git.exe' in a
      non-cygwin-based build.
  29. 02 Jun, 2010 2 commits
  30. 31 May, 2010 1 commit
    • David Cole's avatar
      Add .zip and .tar.bz2 extraction to ExternalProject. · 2deba1b9
      David Cole authored
      Add archives of these file types and add to the test
      cases covered in the ExternalProject test.
      Also add an "Example" directory in the Tests/ExternalProject
      directory containing the canonical simplest example of
      ExternalProject usage.
  31. 27 May, 2010 1 commit
    • David Cole's avatar
      Improve FILE(DOWNLOAD) and ExternalProject. · f67139ae
      David Cole authored
      Improve FILE(DOWNLOAD ...):
      - Add percent complete progress output to the FILE DOWNLOAD
        command. This progress output is off by default to
        preserve existing behavior. To turn it on, pass
        SHOW_PROGRESS as an argument.
      - Add EXPECTED_MD5 argument. Verify that the downloaded
        file has the expected md5 sum after download is complete.
      - Add documentation for SHOW_PROGRESS and EXPECTED_MD5.
        When the destination file exists already and has the
        expected md5 sum, then do not bother re-downloading
        the file. ("Short circuit" return.)
        Also, add a test that checks for the status output
        indicating that the short circuit behavior is actually
        occurring. Use a binary file for the test so that the
        md5 sum is guaranteed to be the same on all platforms
        regardless of "shifting text file line ending" issues.
      Improve ExternalProject:
      - Add argument URL_MD5.
      - Add verify step that compares md5 sum of .tar.gz file
        before extracting it.
      - Add md5 check to download step, too, to prevent
        unnecessary downloads.
      - Emit a warning message when a file is not verified.
        Indicate that the file may be corrupt or that no
        checksum was specified.
  32. 05 Mar, 2010 1 commit
    • Brad King's avatar
      CMake 2.8.1-rc4 · 6dde1543
      Brad King authored
      This commit cherry-picks and squashes the following commits:
        46858720 "FortranCInterface: Fix PathScale detection..." (2010-02-16)
        b39fe940 "Fix problem with ExternalProject test..." (2010-02-17)
        70290e1f "Add support for QtDeclartive module" (2010-02-17)
        282ba895 "Clarify CMAKE_MODULE_PATH documentation" (2010-02-18)
        4eba05de "Suppress GNU flag -fPIC on Windows" (2010-02-19)
        57efb4a4 "BUG: We shouldn't be setting the HideWindow..." (2010-02-19)
  33. 17 Feb, 2010 1 commit
  34. 08 Sep, 2009 1 commit
    • David Cole's avatar
      Use more verbose/descriptive names for the "public API" functions in the... · 002ae925
      David Cole authored
      Use more verbose/descriptive names for the "public API" functions in the ExternalProject.cmake module. Follow the cmake function naming convention, using a ModuleFileName_ prefix. Locate stamp files under a CMAKE_CFG_INTDIR subdir of the stamp dir so that debug and release builds have separate stamp files for Visual Studio builds. If no CMAKE_GENERATOR argument is given to ExternalProject_Add, default to using the parent project's cmake generator.
  35. 03 Sep, 2009 1 commit
  36. 01 Jul, 2009 1 commit
    • David Cole's avatar
      BUG: Exclude svn portions of ExternalProject test when: svn client version is... · 44878e7b
      David Cole authored
      BUG: Exclude svn portions of ExternalProject test when: svn client version is less than 1.2 or cygwin/non-cygwin mismatch detected -- avoids ExternalProject test failures on dash5 and dash22-cygwin. Also, non-code change: allow cvslock through Windows firewall to prevent ExternalProject test failure on dash1vista32.
  37. 29 Jun, 2009 1 commit