| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This option only has an effect if at least one of the other LOG_<step>
options is enabled. If an error occurs for a step which has logging to
file enabled, that step's output will be printed to the console. For
cases where a large amount of output is recorded, just the end of that
output may be printed to the console.
|
|
|
|
|
|
| |
Most steps support the logging into a file but the patch command is a
notable exception. This commit adds the LOG_PATCH options that acts as
the other LOG_* options.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* The code snippets in the docs consist of CMake code mixed
with syntax definition punctuation like < > [ ] ... Therefore
a pure CMake lexer is inadequate. Here it is replaced by a
CMake syntax definition parser.
* Fixed syntax definition snippets in FindPkgConfig.cmake to
make best use of syntax highlighting. This source file is the
hardest to support because it contains comparison operators
<= = >=, which need special attention to avoid confusion
with the placeholder indicators <...>.
* Fixed syntax in execute_process.rst (there were unbalanced
brackets).
* Disabled syntax highlighting for long string examples in
cmake-language.7.rst.
* No highlighting of removed syntax in CMP0049
* To inspect the outcome of this patch, see e.g. the pages
* manual/cmake-buildsystem.7.html
* module/ExternalProject.html
* module/FindPkgConfig.html
which are particularly rich in complex code snippets.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since in some situations, ExternalProject module may be included in
a sub-directory, functions will be available in the global scope but
local variables like "_ep_keywords_<keyword>" will not be defined, this
commit checks and reports an error indicating that the ExternalProject
module must be explicitly included before using any of the ExternalProject_*
functions that require the module's inclusion within the current scope
or above.
Co-authored-by: Pablo Hernandez <pablo.hernandez@kitware.com>
Co-authored-by: Craig Scott <craig.scott@crascit.com>
|
|\
| |
| |
| |
| |
| |
| | |
7ad5165c67 ExternalProject: Fix cache generation when args end with "-NOTFOUND"
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2127
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Generalize the fix in commit v3.11.0-rc4~8^2 (ExternalProject: Fix cache
generation when last args ends with "-NOTFOUND", 2018-03-10) to work for
any argument rather than just the last one.
ExternalProject can now successfully generate the cache file when any
(not only the last one) cache variable associated with either
`CMAKE_CACHE_ARGS` or `CMAKE_DEFAULT_CACHE_ARGS` configure step option
is set to a `<value>` ending with `-NOTFOUND`.
|
|/
|
|
|
|
|
|
| |
The previous documentation suggested
ALGO=MD5=d7a3dc7757a35df3dbb890f7dee0976b
for example.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
3c413e2a GENERATOR_IS_MULTI_CONFIG: Use for multi-config checks in Modules
c267ea1c GENERATOR_IS_MULTI_CONFIG: Use for multi-config checks in Tests
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1627
|
| | |
|
|/
|
|
| |
Some are user-facing. Others are source comments.
|
| |
|
|
|
|
|
|
|
|
| |
When the `CMAKE_GENERATOR` option is given to `ExternalProject_Add`,
look also for option `CMAKE_GENERATOR_INSTANCE` to pass on to cmake as a
cache definition. When no `CMAKE_GENERATOR` option is given explicitly
then use the current project's `CMAKE_GENERATOR_INSTANCE` (since we
already use its CMAKE_GENERATOR).
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
d45aa38a Add dev notes for topic 'curl_netrc_options'
60c272b6 ExternalProject: Add support for NETRC and NETRC_FILE suboption
754e39dd Add testcases for file(DOWNLOAD|UPLOAD) netrc options
5d67e902 file(DOWNLOAD|UPLOAD): Add 'NETRC' and 'NETRC_FILE' suboption
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ruslan Baratov <ruslan_baratov@yahoo.com>
Merge-request: !1376
|
| | |
|
|/
|
|
|
|
|
|
| |
The implementation of this module doesn't expect such dereferences
to happen, but can when a project sets a variable called `x`.
Set `CMP0054` explicitly to get its NEW behavior.
Fixes: #17335
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The known keywords for each function are obtained by scraping the
documentation for lines matching a particular regular expression. In
commit 8842a027 (ExternalProject: Improve documentation, 2017-07-09),
the docs were overhauled and the COMMAND docs subsequently matched the
regular expression when they shouldn't have. This made COMMAND appear as
a true keyword, which thwarted the special handling logic elsewhere for
the intended use of COMMAND arguments.
This commit contains a workaround for issue #17229 to force a dependency
of the patch step on the update step to ensure a predictable step order.
Fixes: #17198
|
|
|
|
|
|
|
|
|
|
|
| |
- Added clearer structure by grouping the options into logical sections.
- Expanded the details for many of the options.
- Added Examples section to show how to use the various commands.
- Specifically highlighted that the contents of SOURCE_DIR may be lost
if a download method is also provided.
- Updated argument-matching regex to be more robust and account for the
varying leading spaces before keywords in the docs.
- Updated tests to account for slightly changed error messages.
|
|
|
|
|
|
|
| |
Automate with:
find Modules -type f -print0 | xargs -0 perl -i -0pe \
's/set\(([a-zA-Z0-9_\$\{\}]+)(\s+)"\$\{\1\}([^"])/string(APPEND \1\2"\3/g'
|
|
|
|
|
|
|
|
|
| |
Fix the case when the tag name to be checked out also happens to match a
path name. Unfortunately we cannot do this for Git versions prior to
1.8.5 because they do not "do what I mean" to checkout remote branches
when the `--` argument is given.
Fixes: #16678
|
|\
| |
| |
| |
| |
| |
| | |
6f3838c0 ExternalProject: Fix regression in GIT_TAG with remote branch name
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !649
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The change in commit v3.8.0-rc2~7^2 (ExternalProject: Run `git
checkout` with `--` to clarify arguments, 2017-02-24) broke the case of
`GIT_TAG some-remote-branch` because an explicit `--` means that the
preceding argument is a tree-ish instead of a branch. Revert the change
and leave a comment.
Fixes: #16763
|
| |\ |
|
| | |
| | |
| | |
| | | |
Fixes #16544.
|
|\ \ \
| |/ /
|/| /
| |/
| | |
a9fa6a2c ExternalProject: Run `git checkout` with `--` to clarify arguments
|
| |
| |
| |
| |
| |
| |
| | |
Fix the case when the tag name to be checked out also happens to match a
path name.
Fixes: #16678
|
| |
| |
| |
| |
| |
| | |
It does not actually configure the project to install to the given
location. That must be done by passing the `<INSTALL_DIR>` placeholder
to the external project configuration step.
|
|/
|
|
|
| |
It is for the install step of the external project and does not
affect installation of the calling project.
|
|
|
|
|
|
|
|
|
|
| |
Refactoring in commit v3.6.0-rc1~47^2 (ExternalProject: Re-implement
download logic as a dedicated script, 2016-05-19) accidentally made the
download hash check case-sensitive. The hash comparison is done in hex
strings, so restore case-insensitive comparison since the case of the
hex digits does not matter.
Fixes: #16568
|
|
|
|
|
|
|
|
|
| |
Callers of `_ep_get_build_command` do not initialize the output variable
they pass and expect the function to unconditionally set it. Revise the
function to not check its own output variable. Otherwise if a `cmd`
variable happens to be set when `ExternalProject_Add` is called then it
will be erroneously used as the default `BUILD`, `TEST`, and `INSTALL`
command.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
f636d1e7 Help: Add notes for topic 'add-SHA-3'
cb5dba8e Tests: Add SHA-3 algorithm coverage to CPack checksum test
a9fa6099 ExternalProject: Add support for SHA-3 algorithms
b4ffd26f ExternalData: Add support for SHA-3 algorithms
60939702 file: Add support for SHA-3 algorithms
92f95aed string: Add support for SHA-3 algorithms
c326209f cmCryptoHash: Add support for SHA-3 algorithms
979e8ba6 Help: De-duplicate and spell out supported hash algorithms
7a79f7e3 librhash: Activate SHA-3 implementation
87584b5e Merge branch 'upstream-librhash' into add-SHA-3
7fcbd47e librhash 2016-11-06 (de79828d)
c50c32a3 librhash: Update import script to add SHA-3 implementation
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When `UPDATE_DISCONNECTED` is enabled the post-update steps
unconditionally depend on a `skip-update` step instead of `update`.
Make `skip-update` available whenever `UPDATE_DISCONNECTED` is enabled,
whether there is a real update step or not.
Closes: #16428
|
|/
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| |
| | |
e89fbfaf ExternalProject: support GIT_PROGRESS argument
64aa29b7 ExternalProject: fix typo
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, the configure command generated by ExternalProject was not
accessible prior to actually adding the targets. This makes the CMake
configure command accessible with just a call to _ep_parse_arguments.
Future work will leverage this to support custom environment settings on
a per-project basis.
|
|\ \
| |/
|/|
| |
| |
| | |
615f3ed2 ExternalProject: make SOURCE_SUBDIR directly appendable
fdce782b ExternalProject: error out only if the property is unset
|
| |
| |
| |
| |
| | |
This allows it to be used in expansions without being conditional based
on its value.
|
| |
| |
| |
| |
| | |
Property values may be empty; instead make sure they exist and allow for
empty values.
|
|/
|
|
|
|
|
|
|
|
| |
Fix passing a list to the CMAKE_CACHE_ARGS and CMAKE_CACHE_DEFAULT_ARGS
options of ExternalProject_Add.
Following commit v3.7.0-rc1~273^2~1 (prefer list(APPEND) over
string(APPEND) where appropriate, 2016-08-08), the semicolon list
separator after the first list element was missing in the generated
cache.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Per-source copyright/license notice headers that spell out copyright holder
names and years are hard to maintain and often out-of-date or plain wrong.
Precise contributor information is already maintained automatically by the
version control tool. Ultimately it is the receiver of a file who is
responsible for determining its licensing status, and per-source notices are
merely a convenience. Therefore it is simpler and more accurate for
each source to have a generic notice of the license name and references to
more detailed information on copyright holders and full license terms.
Our `Copyright.txt` file now contains a list of Contributors whose names
appeared source-level copyright notices. It also references version control
history for more precise information. Therefore we no longer need to spell
out the list of Contributors in each source file notice.
Replace CMake per-source copyright/license notice headers with a short
description of the license and links to `Copyright.txt` and online information
available from "https://cmake.org/licensing". The online URL also handles
cases of modules being copied out of our source into other projects, so we
can drop our notices about replacing links with full license text.
Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
of the replacements mechanically. Manually fix up shebang lines and trailing
newlines in a few files. Manually update the notices in a few files that the
script does not handle.
|
| |
|
| |
|
|\
| |
| |
| |
| | |
a8345d65 ExternalProject: Add SOURCE_SUBDIR option
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add a new SOURCE_SUBDIR option to ExternalProject_Add that allows
specifying the location of the CMakeLists.txt to use as the project root
relative to the SOURCE_DIR.
This is helpful for projects that have unusual layouts, or projects that
provide both a superbuild and project-only build depending on which
CMakeLists.txt is used.
Fixes: #15118
|