summaryrefslogtreecommitdiffstats
path: root/Tests/ExternalProject
Commit message (Collapse)AuthorAgeFilesLines
* Tests: Bump CMake minimum required in tests to 3.5Brad King2023-03-012-2/+2
| | | | | | | | | | | | | | | | | | | CMake 3.27 deprecates compatibility with CMake < 3.5. Update tests that do not cover older interfaces to avoid the deprecation warning. Follow the pattern from: * commit 7b07ccdd2b (Tests/*Only: Update cmake_minimum_required versions, 2020-06-15, v3.19.0-rc1~629^2~1) * commit 72e7c45e98 (Tests: Bump CMake minimum required in tests to 2.8.12, 2020-12-22, v3.20.0-rc1~224^2) * commit f6b4db365a (Tests: bump cmake_minimum_required version to 2.8.12, 2021-04-04, v3.21.0-rc1~372^2) Also remove explicit `cmake_policy` settings made redundant by the version.
* Tests: handle a case when hg executable is brokenmakise-homura2022-06-281-1/+5
| | | | | | OS Elbrus 6.0-rc1 to rc3 have hg executable broken because of python2 and python3 module directories conflict. Here, we avoid hg related tests if such case is detected.
* Tests: Add cache entries to control ExternalProject test VCS toolsBrad King2022-02-071-84/+51
| | | | | | Add undocumented `CMake_TEST_ExternalProject_*` cache entries to explicitly enable or disable these tests. If not set, compute defaults as before. Also consolidate the VCS default heuristics.
* Add deprecation warnings for policies CMP0097 and belowBrad King2022-02-031-0/+2
| | | | | | | The OLD behaviors of all policies are deprecated, but only by documentation. Add an explicit deprecation diagnostic for policies introduced in CMake 3.16 and below to encourage projects to port away from setting policies to OLD.
* Tests: Use the CVS :local: access method for local directoriesWilliam R. Dieter2021-01-281-3/+3
| | | | | | | | | | | | | Windows absolute paths start with a drive letter, followed by the path. Without an explicit access method specification, CVS treats the drive letter as a host name. This changes explicitly adds `:local:` to local directory repository paths used in tests to avoid this confusion. See the CVS Manual [1] for more information. [1] https://www.gnu.org/software/trans-coord/manual/cvs/cvs.html#Repository Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
* Tests: Generate simpler ExternalProject sample Git repositoriesBrad King2021-01-255-7/+136
| | | | | | | | | | The `gitrepo.tgz` repository contains a project that enables both C and CXX languages and builds source code. This take a long time to repeat over and over, particularly on Visual Studio and Xcode generators. Add and use a script to generate a new test repository that has a much simpler project. Issue: #20733
* Tests: FindGit already provides the git version, re-use itCraig Scott2021-01-191-8/+2
|
* Tests: Bump CMake minimum required in tests to 2.8.12Chuck Atkins2020-12-232-2/+2
| | | | | | | Since 3.19, CMake generates a deprecation warning when using a minimum version less than 2.8.12. This eliminates those warnings generated during tests, which are typically hidden from the user and developer but are being generated nonetheless.
* ExternalProject: Use CMP0114 NEW behavior with Xcode "new build system"Brad King2020-09-181-0/+3
| | | | | | | The ExternalProject module cannot be implemented in the Xcode "new build system" without using CMP0114's NEW behavior. When configuring for that build system, warn if the policy is not set to NEW and use NEW behavior anyway.
* ExternalProject: allow `DOWNLOAD_NO_EXTRACT OFF`Ben Boeckel2020-04-021-0/+9
| | | | Fixes: #20531
* ExternalProject: Quote each git --config option to handle spacesCraig Scott2020-02-151-1/+3
| | | Fixes: #20354
* Tests: Add missing ExternalProject smoke testsCraig Scott2020-02-151-0/+8
|
* ExternalProject: Option to turn off recursive update of git submodulesCharis Marangos2019-10-242-0/+60
| | | | Fixes: #19832
* ExternalProject: Support not initializing any submodulesRobert Maynard2019-07-241-2/+19
| | | | Fixes #15592
* 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.