summaryrefslogtreecommitdiffstats
path: root/Tests/ExternalProject
Commit message (Collapse)AuthorAgeFilesLines
* ExternalProject: option LOG_MERGED_STDOUTERR to combine stdout and stderrWouter Klouwen2018-10-191-0/+1
| | | | | | | | | | | | 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 <name>-<step>-err.log.
* ExternalProject: add LOG_DIR option that allows overriding of log locationWouter Klouwen2018-10-191-0/+17
| | | | | | | | | | | | 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 stored. 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.
* ExternalProject: only append `COMMAND` if actually adding a commandBen Boeckel2017-02-271-0/+10
| | | | Fixes #16544.
* ExternalProject: Allow passing config flags to git cloneChristian Fetzer2016-11-091-0/+17
| | | | | | | Add a `GIT_CONFIG` parameter that allows to specify `--config` flags that are passed to the git clone command. This can be used to specify for example `core.autocrlf=true`. The `--config` parameter is supported since Git 1.7.7.
* ExternalProject: Add option to perform a shallow Git clone (#15291)Brad King2016-04-271-0/+17
| | | | Inspired-by: Ilya Kulakov <kulakov.ilya@gmail.com>
* Replace http://www.cmake.org URLs with https://cmake.orgBrad King2015-09-251-1/+1
| | | | | | | The latter is now the preferred URL for visiting cmake.org with a browser. Convert using the shell code: git ls-files -z | xargs -0 sed -i 's|http://www\.cmake|https://cmake|g'
* ExternalProject: Add unit tests for GIT_SUBMODULES argumentDaniele E. Domenichelli2015-06-082-0/+60
|
* ExternalProject: Fix log when the first arg of commands is "COMMAND" (#15567)Daniele E. Domenichelli2015-05-201-0/+35
|
* Tests/ExternalProject: Skip Windows hg tests with cygwin hgBrad King2014-10-221-0/+7
| | | | | The cygwin hg client is a text file with a '#!/bin/python" line. This cannot run on Windows.
* Tests: split the ExternalProject testRolf Eike Beer2014-07-0310-226/+2
| | | | | | | | 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.
* ExternalProject test: remove unused fileRolf Eike Beer2014-07-011-54/+0
|
* ExternalProject: Add option to disable download progress (#14807)Brad King2014-03-171-0/+1
| | | | | Add a DOWNLOAD_NO_PROGRESS option to disable progress reports while downloading source tarballs.
* ExternalProject: Add option GIT_SUBMODULESGereon Kremer2014-01-281-0/+16
| | | | | This option allows to filter the submodules that are checked out. Add a simple testcase for GIT_SUBMODULES option passing an empty list.
* ExternalProject: Allow DEPENDS on normal targets (#13849)Brad King2013-01-161-1/+3
| | | | | | | | | | | | | | | | 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.
* ExternalProject: Do smoke tests for Git Tutorial builds.Matt McCormick2012-11-031-0/+11
|
* ExternalProject: Generalize URL_MD5 option to URL_HASHBrad King2012-09-111-1/+1
| | | | Add support for SHA algorithms.
* ExternalProject: Add Mercurial (hg) repository supportBrad King2012-08-162-2/+73
| | | | | | | 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.
* Remove CMake-language block-end command argumentsKitware Robot2012-08-131-2/+2
| | | | | | | | | | | | | | | | | 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
* Fix MSYS CVS local test repo path format (#13001)Brad King2012-03-021-0/+12
| | | | | | | | 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.
* Tests: ExternalProject: Remove unnecessary 'svn --version' callRolf Eike Beer2011-12-051-7/+0
| | | | | | | | 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.
* Tests: Nudge MFC test to pass on VS 6 dashboards (#11213)David Cole2011-11-091-1/+1
| | | | | | | | | | | | | | | | | 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 commit. By the way: https://twitter.com/DLRdave/status/134339505397309440
* ExternalProject: Add SVN_TRUST_CERT argumentDavid Cole2011-04-111-0/+3
| | | | | | | | | | | | 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".
* ExternalProject: Replace location tags in CMAKE_CACHE_ARGSDavid Cole2011-01-071-1/+2
| | | | | | When we added CMAKE_CACHE_ARGS, we did not try it with any <SOURCE_DIR> or <INSTALL_DIR> references. This commit fixes that accidental omission.
* Merge topic 'vs-project-groups'Brad King2010-10-051-0/+16
|\ | | | | | | | | fd3249e New USE_FOLDERS property OFF by default. (#3796)
| * New USE_FOLDERS property OFF by default. (#3796)David Cole2010-10-021-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 IDE.
* | Merge topic 'vs-project-groups'Brad King2010-09-081-0/+45
|\ \ | |/ | | | | | | e6ac0aa Add FOLDER target property, for IDEs (#3796)
| * Add FOLDER target property, for IDEs (#3796)David Cole2010-09-031-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 organization. This commit adds "solution folder" support to the Visual Studio generators. Currently works with versions 7 through 10. Also, use the new FOLDER property in the ExternalProject test and in the CMake project itself.
* | Add STEP_TARGETS to ExternalProject module.David Cole2010-08-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | ExternalProject: Add LOG_* options to hide step outputBrad King2010-06-211-0/+6
|/ | | | | | 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.
* 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.