1. 30 Apr, 2014 1 commit
    • Brad King's avatar
      ExternalProject: Fix path to cmake in verify script · 420280f3
      Brad King authored
      In commit v3.0.0-rc1~103^2~3 (ExternalProject: Reattempt download when
      verification fails, 2014-01-15) a reference to ${CMAKE_COMMAND} was
      added to generate a reference to the CMake command in a cmake script.
      Escape the '$' so that the literal variable reference appears in the
      script instead of writing the path to the current cmake.  This is
      necessary when the path to CMake contains spaces or other characters
      special to CMake syntax.
      420280f3
  2. 28 Jan, 2014 1 commit
  3. 15 Jan, 2014 1 commit
    • Matt McCormick's avatar
      ExternalProject: Reattempt download when verification fails. · b5e2265f
      Matt McCormick authored
      When downloading an URL with ExternalProject, reattempt the download three
      times if the file hash verification fails.
      
      The re-attempt is limited to non-local URL's.  The same download CMake script
      is re-used after removing any file that resulted from the previous download
      attempt.  Up to three re-attempts are performed.
      b5e2265f
  4. 19 Nov, 2013 1 commit
    • Brad King's avatar
      ExternalProject: Format module documentation · 01ecd24f
      Brad King authored
      Manually revise the .rst format of the documentation.  Use inline
      literal quotes appropriately in paragraph text.  Move the :: literal
      block openers to the end of the preceding paragraphs.  Convert the
      command signature documentation and examples to cmake code-block
      directives.
      01ecd24f
  5. 15 Oct, 2013 3 commits
  6. 16 Jul, 2013 1 commit
    • Brad King's avatar
      VS: Avoid leaking child process output back to IDE (#14266) · 45d2966d
      Brad King authored
      The VS IDE sets the environment variable VS_UNICODE_OUTPUT when
      executing build rules in order to tell MS tools to report output through
      a back door instead of through stdout/stderr.  Unset this variable so
      that CMake can capture or properly redirect all output from processes it
      runs even when running inside a VS IDE build environment.
      
      This generalizes the special cases fixed by commit 80d045b0 (When
      GetPrerequisites.cmake runs dumpbin while running inside the VS IDE...,
      2008-05-01) and commit 44aff73d (ExternalProject: Avoid bleed-through
      output when logging, 2011-01-06), so drop special handling of
      VS_UNICODE_OUTPUT in those instances.
      45d2966d
  7. 08 Jul, 2013 1 commit
    • Brad King's avatar
      ExternalProject: Document multiple COMMAND lines · 93c11657
      Brad King authored
      We support multiple commands per external project step by using
      the COMMAND keyword.  Document this behavior and show an example.
      While at it, document that shell operators and current working
      directory behavior is not defined.
      93c11657
  8. 06 May, 2013 1 commit
  9. 26 Mar, 2013 1 commit
  10. 07 Feb, 2013 1 commit
    • Brad King's avatar
      ExternalProject: Propagate the generator toolset · daae0d2f
      Brad King authored
      When the CMAKE_GENERATOR option is given to ExternalProject_Add, look
      also for option CMAKE_GENERATOR_TOOLSET to select the value of the cmake
      "-T" command-line flag.  When no CMAKE_GENERATOR option is given
      explicitly then use the current project's CMAKE_GENERATOR_TOOLSET (since
      we already use its CMAKE_GENERATOR).
      daae0d2f
  11. 31 Jan, 2013 1 commit
  12. 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.
      c0f1af92
  13. 13 Nov, 2012 1 commit
  14. 03 Nov, 2012 1 commit
    • Matt McCormick's avatar
      ExternalProject: Only run 'git fetch' when required. · d0758290
      Matt McCormick authored
      In the current default update step for Git under the ExternalProject_Add
      command, a 'git fetch' is always performed, followed by a 'git checkout' and
      'git submodule update --recursive'.  However, a 'git fetch' can be time
      consuming and requires a network connection.
      
      To save time, we look at the current checked out hash, and only perform the
      fetch if required.  This is performed in a CMake script so we can handle
      the conditional logic in a cross platform manner.
      d0758290
  15. 19 Sep, 2012 1 commit
  16. 18 Sep, 2012 1 commit
  17. 14 Sep, 2012 1 commit
    • Brad King's avatar
      Rename SSL terminology to TLS · 131d91a1
      Brad King authored
      TLS has superseded SSL so rename the recently added file(DOWNLOAD) and
      ExternalProject options using the newer terminology.  Drop "CURLOPT"
      from names because curl is an implementation detail.
      131d91a1
  18. 12 Sep, 2012 1 commit
    • Bill Hoffman's avatar
      Add SSL_VERIFYPEER and CAINFO file options to ExternalProject_Add. · c2664610
      Bill Hoffman authored
      This commit adds the ability to turn on and off ssl certificate
      authority checking.  It also adds the ability to specify a
      certificate authority information file.  This can be done
      by setting global cmake variables CMAKE_CURLOPT_CAINFO_FILE
      and or CMAKE_CURLOPT_SSL_VERIFYPEER in the project calling
      ExternalProject_Add, or by passing those options to individual
      ExternalProject_Add calls.
      c2664610
  19. 11 Sep, 2012 1 commit
  20. 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.
      91053cdf
  21. 13 Aug, 2012 1 commit
    • Kitware Robot's avatar
      Remove CMake-language block-end command arguments · 9db31162
      Kitware Robot authored and Brad King's avatar Brad King committed
      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
      9db31162
  22. 21 May, 2012 1 commit
  23. 28 Apr, 2012 2 commits
  24. 25 Apr, 2012 1 commit
    • David Cole's avatar
      ExternalProject: Avoid unnecessary git clones (#12564) · 987c017f
      David Cole authored
      In the case of git, only track the repository in the
      repository info dependency tracking file. Not the tag.
      
      The download step should only re-run if the repository changes.
      The download step should NOT re-run if the tag changes.
      
      The update step is an 'always' re-running step, and so should
      already re-run, unless it's been eliminated by use of
      
        UPDATE_COMMAND ""
      987c017f
  25. 22 Apr, 2012 1 commit
    • David Cole's avatar
      ExternalProject: Add missing COMMAND keyword · 64818c10
      David Cole authored
      Commit f67139ae added running a verify script in between running
      the download and extract scripts. Since then, it has always been
      missing the COMMAND keyword added in this commit.
      
      It worked anyway (semi-accidentally) by running a command line like:
      
        cmake -P script1.cmake cmake -P script2.cmake
      
      CMake, when running -P scripts on the command line, runs them in order,
      and apparently ignores spurious arguments in between (the middle "cmake"
      in the above example) and so, all appeared to work as intended.
      
      This commit adds the missing keyword and the commands that run are
      now two separate sequential cmake invocations like:
      
        cmake -P script1.cmake
        cmake -P script2.cmake
      
      ...which was the original intent of commit f67139ae
      64818c10
  26. 02 Feb, 2012 1 commit
  27. 10 Jan, 2012 2 commits
    • Brad King's avatar
      ExternalProject: Update copyright year · 4ac6ba2b
      Brad King authored
      4ac6ba2b
    • Brad King's avatar
      ExternalProject: Fix git.cmd version detection · 8cb8ccc5
      Brad King authored
      When GIT_EXECUTABLE points at ".../Git/cmd/git.cmd" in an msysGit
      installation we previously failed to detect the version number in a
      subtle case.  The "git.cmd" assumes 'chcp' is in PATH.  It is typically
      available at "C:\Windows\System32\chcp.com".  On 64-bit Windows the File
      System Redirector maps this location to "C:\Windows\SysWOW64\chcp.com"
      for 32-bit processes.  However, some Windows installations fail to
      provide chcp.com at this path.  Whenever git.cmd runs in a 32-bit
      command shell, as it does under a 32-bit CMake binary, it reports
      
       'chcp' is not recognized as an internal or external command,
        operable program or batch file.
      
      on stderr.  Capture stderr separately so it does not affect parsing
      of the version number.
      
      See also msysGit issue 358:
      
        http://code.google.com/p/msysgit/issues/detail?id=358
      
      Note that FindGit prefers "git.cmd" over "git.exe" because it sets up
      the proper HOME environment variable necessary for Git ssh connections
      to work the same as they do from the Git bash prompt.
      8cb8ccc5
  28. 18 Apr, 2011 1 commit
    • David Cole's avatar
      ExternalProject: Always use --non-interactive with svn · 12a36993
      David Cole authored
      The previous commit added --non-interactive as a "side effect"
      of turning on SVN_TRUST_CERT. While reviewing that commit, we
      decided all ExternalProject svn usage should be non-interactive.
      
      That way, if there's any sort of problem, svn will return an
      error right away rather than hang forever waiting for input...
      12a36993
  29. 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".
      3a5a402a
  30. 04 Mar, 2011 1 commit
  31. 07 Jan, 2011 1 commit
  32. 06 Jan, 2011 1 commit
    • David Cole's avatar
      ExternalProject: Avoid bleed-through output when logging. · 44aff73d
      David Cole authored
      Unset VS_UNICODE_OUTPUT when executing a command whose output
      is being logged to a file. Previously, running Microsoft tools
      in sub-processes of Visual Studio would send their output to
      the Visual Studio output pipe named by this environment variable.
      
      Unsetting it forces the output back to the normal stdout and stderr
      channels where cmake can intercept it and direct it to the
      appropriate log files.
      44aff73d
  33. 13 Dec, 2010 1 commit
  34. 11 Dec, 2010 1 commit
    • Marcus D. Hanwell's avatar
      Escape file write expansion, and build up lists. · b316087c
      Marcus D. Hanwell authored
      Escaped the @var@ in the file writes - this was being expanded at file
      write and so not causing a reconfigure at the right time. I also took
      care of build up lists of lists in the variables, especially important
      for things like MPI_EXTRA_LIBRARY. Added some error checking, and use
      the tmp_dir for initial cache file.
      b316087c
  35. 10 Dec, 2010 1 commit
    • Marcus D. Hanwell's avatar
      Added CMAKE_CACHE_ARGS to ExternalProject. · 68cd3fe0
      Marcus D. Hanwell authored
      On Windows the limit for command line arguments is 8192 characters, and
      this was limiting longer paths with some of our more nested projects
      such as Library. Placing the -D arguments into CMAKE_CACHE_ARGS will
      write out an initial cache file, that will be passed to CMake with a -C
      argument as the initial cache.
      
      By forcing the cache variables we preserve the existing behavior with
      -D, to change the values of cache variables in our inner projects.
      68cd3fe0
  36. 12 Nov, 2010 1 commit