summaryrefslogtreecommitdiffstats
path: root/Tests/ExternalProject
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'improve-file-download'Brad King2010-06-071-0/+8
|\ | | | | | | | | Conflicts: Modules/ExternalProject.cmake
| * Improve FILE(DOWNLOAD) and ExternalProject.David Cole2010-05-271-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge branch 'add-git-to-ExternalProject'Brad King2010-06-072-4/+84
|\ \ | | | | | | | | | | | | Conflicts: Modules/ExternalProject.cmake
| * | Add FindGit module.David Cole2010-06-031-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | Use relative path for git repo reference.David Cole2010-06-031-1/+1
| | | | | | | | | | | | | | | So it will work with git_EXECUTABLE='C:\cygwin\bin\git.exe' in a non-cygwin-based build.
| * | Fix ExternalProject test failures on dashboards.David Cole2010-06-021-3/+16
| | | | | | | | | | | | | | | | | | Double quote executable names that may have spaces in them. Do not run the new git portions of the test on machines that have git < version 1.6.5 on them.
| * | Add git support to ExternalProject.David Cole2010-06-022-2/+69
| |/ | | | | | | | | Requires at least version 1.6.5 of a git client for git submodule update --recursive use.
* | Add .zip and .tar.bz2 extraction to ExternalProject.David Cole2010-05-316-1/+64
|/ | | | | | | | | 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.
* Fix problem with ExternalProject test in in-source builds.David Cole2010-02-171-0/+11
|
* Use more verbose/descriptive names for the "public API" functions in the ↵David Cole2009-09-081-21/+29
| | | | 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.
* Add test step to ExternalProject builds. Rename SVN_TAG to SVN_REVISION ↵David Cole2009-09-031-4/+13
| | | | since it is a more accurate name.
* BUG: Exclude svn portions of ExternalProject test when: svn client version ↵David Cole2009-07-011-0/+26
| | | | 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.
* BUG: Avoid running the cvs portions of the ExternalProject test on ↵David Cole2009-06-291-2/+21
| | | | non-cygwin builds that are using cygwin cvs.exe.
* BUG: Downgrade svn repository to be created with an svn 1.2 installation ↵David Cole2009-06-262-11/+13
| | | | (rather than 1.4) so that it works (hopefully) with more svn clients in the wild. Change time stamps of test projects in CMakeLists.txt to reflect times available in newly created repository. Add UPDATE_COMMAND "" for checkouts that are tag-based or date-stamp-based to avoid unnecessary update steps.
* ENH: Do not unzip the local repositories unless CVS and SVN executables are ↵David Cole2009-06-261-26/+27
| | | | available. Add 'configure' step to the repository extraction 'projects' to print the version number of CVS and SVN in the dashboard test/build output.
* ENH: Revise the ExternalProject test to use local CVS and SVN repositories ↵David Cole2009-06-261-126/+87
| | | | to avoid network activity. Also: stop building KWStyle and kwsys as part of this test to reduce the amount of time spent running the test. Instead, build TutorialStep1 as retrieved from the new local repositories with various tags, date stamps and revision numbers.
* ENH: Add *.tgz files of cvs and svn repositories containing the ↵David Cole2009-06-252-0/+0
| | | | TutorialStep1 project to test cvs and svn capabilities of ExternalProject without requiring network activity.
* ENH: New ExternalProject.cmake module interfaceBrad King2009-06-241-63/+61
| | | | | | | | | | This creates new module ExternalProject.cmake to replace the prototype AddExternalProject.cmake module. The interface is more refined, more flexible, and better documented than the prototype. This also converts the ExternalProject test to use the new module. The old module will be removed (it was never in a CMake release) after projects using it have been converted to the new module.
* ENH: Allow lists in AddExternalProject argumentsBrad King2009-04-092-0/+8
| | | | | | | | | | | | | | | | | | The add_external_project function separates its arguments with ';' separators, so previously no command line argument could contain one. When specifying CMAKE_ARGS, some -D argument values may need to contain a semicolon to form lists in the external project cache. This adds add_external_project argument LIST_SEPARATOR to specify a list separator string. The separator is replaced by ';' in arguments to any command created to drive the external project. For example: add_external_project(... LIST_SEPARATOR :: CMAKE_ARGS -DSOME_LIST:STRING=A::B::C ...) passes "-DSOME_LIST:STRING=A;B;C" to CMake for the external project.
* ENH: Generalize AddExternalProject step creationBrad King2009-03-301-1/+8
| | | | | | This creates function 'add_external_project_step' to centralize creation of external project steps. Users may call it to add custom steps to external project builds.
* ENH: Add patch step for add_external_projectBrad King2009-03-182-1/+24
| | | | | | 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.
* ENH: Improve add_external_project interfaceBrad King2009-03-181-18/+16
| | | | | | | | | | | | | | | | This rewrites the keyword/argument parsing and handling in the AddExternalProject module to use arguments more literally: - The strict keyword-value pairing is gone in favor of keywords with arbitrary non-keyword values. This avoids requiring users to escape spaces and quotes in command lines. - Customized step command lines are now specified with a single keyword <step>_COMMAND instead of putting the arguments in a separate entry (previously called <step>_ARGS). - Build step custom commands now use VERBATIM mode so that arguments are correctly escaped on the command line during builds.
* ENH: Better recursive make in AddExternalProjectBrad King2009-03-041-8/+16
| | | | | | | This teaches AddExternalProject to run "$(MAKE)" for build and install steps of CMake-based external projects when using a Makefile generator. It allows the external project to participate in a parallel make invoked on the superproject.
* ENH: Re-work of fix committed yesterday for the Watcom WMake dashboard. Fix ↵David Cole2008-12-241-19/+2
| | | | it properly by using the SYMBOLIC source file property to indicate to WMake when the sentinel file is not actually written by the update step.
* BUG: Workaround for Watcom WMake not handling "always out of date" custom ↵David Cole2008-12-231-0/+19
| | | | commands to fix the failing ExternalProject test on the CMake nightly dashboard.
* BUG: One more conditional in the ExternalProject test to prevent build ↵David Cole2008-12-111-10/+32
| | | | errors of Tutorial Step5 on Win98 using Visual Studio 6 when the path length of its build tree exceeds 72 characters. Crazy, perhaps. But this fixes the last real dashboard failure of the ExternalProject test.
* BUG: Prevent KWStyle portion of ExternalProject test from configuring, ↵David Cole2008-12-101-20/+35
| | | | building, installing and testing on WATCOM dashboards. WATCOM STL support is still under development.
* COMP: No-op. White space only change to trigger a re-run of the ↵David Cole2008-12-051-1/+0
| | | | ExternalProject test on the QNX continuous dashboard to pick up the latest KWStyle changes.
* COMP: No-op. White space only change to trigger a re-run of the ↵David Cole2008-12-051-0/+1
| | | | ExternalProject test on the QNX continuous dashboard to pick up the latest KWStyle changes.
* COMP: No-op. White space only change to trigger a re-run of the ↵David Cole2008-12-051-1/+0
| | | | ExternalProject test on the QNX continuous dashboard to pick up the latest KWStyle changes.
* COMP: No-op. White space only change to trigger a re-run of the ↵David Cole2008-12-051-0/+1
| | | | ExternalProject test on the QNX continuous dashboard to pick up the latest KWStyle changes.
* ENH: Make it easier to use configure/make/make-install as the build steps ↵David Cole2008-12-051-24/+73
| | | | for an external project. Add capability of customizing the download step. Add tests of empty projects. Better comments and error checking in AddExternalProject.cmake. In tests, use KWStyle from CVSHEAD to see if QNX continuous can build the latest KWStyle. Make KWStyle test depend on all previous test external projects so it builds last to catch other issues before any KWStyle compile errors.
* ENH: Use a TryCheckout technique to decide whether or not to attempt ↵David Cole2008-12-042-6/+84
| | | | building the projects that depend on a cvs or svn download method.
* ENH: First draft of add_external_project functionality. Tweaks, dashboard ↵David Cole2008-12-045-0/+201
fixing, more tests and documentation certain to follow as it gets used by others...