| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Exposed by CMP0054 warnings.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added new USES_TERMINAL option to the ExternalProject_Add_Step
function. This option passes USES_TERMINAL to the underlying
add_custom_command call so that the Ninja console pool is used.
Also, corresponding new USES_TERMINAL_<step> options were added
to the ExternalProject_Add function.
Justification: if using Ninja with a CMake superbuild, it's often
desirable to limit the superbuild to ONE sub-Ninja process at a
time to avoid oversubscribing the CPU. Using the console pool also
makes it easy to monitor the progress of the sub-Ninja process.
Independent USES_TERMINAL_<step> arguments are passed to
ExternalProject_Add instead of one USES_TERMINAL argument that
controls everything. Users may wish to run some steps in parallel
but not others (e.g. parallelize configure but not build).
|
|
|
|
|
|
|
|
|
|
|
| |
Honor the GIT_SUBMODULES option added by commit v3.0.0-rc1~92^2
(ExternalProject: Add option GIT_SUBMODULES, 2014-01-09) during the
'git submodule init' step to avoid initalizing all modules since we
are only going to update the specified subset anyway. This will
be useful for project repositories that have many submodules
(e.g. https://github.com/boostorg/boost).
Reviewed-by: Daniele E. Domenichelli <daniele.domenichelli@iit.it>
|
| |
|
|
|
|
|
| |
Mention the SOURCE_DIR that we checked and found empty or missing
so that the user can see the full path to what we expected to find.
|
|
|
|
|
| |
Respect INTERFACE library property whitelist. Check that a target has
type "UTILITY" before querying other properties.
|
| |
|
|
|
|
|
|
| |
Use file(GENERATE) to write the logging wrapper scripts to evaluate
generator expressions. Use a per-config script names in case the
content varies by configuration.
|
|
|
|
|
|
| |
Use file(GENERATE) to write the initial cache file so that we can
evaluate generator expressions. Use a per-config initial cache file
name in case the content varies by configuration.
|
|
|
|
|
|
| |
The `binary_dir` variable is never set, so this is invalid. Instead, use
"." which all the other build commands use anyways. Also only set the
--config option if it is meaningful.
|
|
|
|
|
|
| |
This allows the developer to specify the byproducts relative to the
binary directory without the need to set the binary directory location
explicitly.
|
|
|
|
| |
ARGV# could be defined from a parent scope.
|
|
|
|
|
|
|
| |
Within an existing build tree, if the stamp for a step already exists
when one activates the ALWAYS option, we still want it to always build.
Remove the step stamp file during CMake configuration to ensure it does
not exist when the ALWAYS option is enabled.
|
|\
| |
| |
| |
| | |
a300d0ff ExternalProject: avoid CMP0054 warnings
|
| |
| |
| |
| | |
Found where ${command} is "make" which is a local variable.
|
|/
|
|
| |
message() already adds a newline.
|
|
|
|
|
|
|
|
|
|
|
| |
If this option is enabled, the test step is created with the
EXCLUDE_FROM_MAIN option, and if TEST_BEFORE_INSTALL is enabled, the
install step does not depend on the test step.
This means that the test step is never executed, unless the test target
is explicitly created by calling ExternalProject_Add_StepTarget, or by
passing it with the STEP_TARGETS option, or with the EP_STEP_TARGETS
directory property.
|
|
|
|
|
|
|
| |
The external project's build process may generate byproducts on which
other rules in the driving project's build later depend. Provide a way
for the driving project to specify what byproducts it expects to be made
available by the custom commands that drive the external project.
|
|\
| |
| |
| |
| |
| |
| |
| | |
3c497f11 Help: Add notes for topic 'ExternalProject_UPDATE_DISCONNECTED'
aba5cec6 ExternalProject: Add unit tests for UPDATE_DISCONNECTED
3f606fa7 ExternalProject: Add UPDATE_DISCONNECTED option
c0b749cf ExternalProject: Always add a command to a step
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If UPDATE_DISCONNECTED is set, the update step is not executed
automatically when building the main target. The update step can still
be added as a step target and called manually. This is useful if you
want to allow to build the project when you are disconnected from the
network (you might still need the network for the download step).
This is disabled by default.
The directory property EP_UPDATE_DISCONNECTED can be used to change
the default value for all the external projects in the current
directory and its subdirectories.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Some generators (i.e. Xcode) will not generate a file level target if
no command is set, and therefore the dependencies on this target will
be broken.
This patch sets an empty echo command that does nothing to avoid this
issue.
|
|\ \
| |/
|/|
| |
| | |
ee7405a6 ExternalProject: Restore logic to not download already-existing file
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The change in commit v3.1.0-rc1~85^2 (ExternalProject: Fix download
retry logic, 2014-09-13) dropped the file(DOWNLOAD) EXPECTED_HASH
argument. This prevents file(DOWNLOAD) from skipping the download if
the output file already exists with the proper hash. Restore this check
with explicit code in the download script.
Reported-by: Ruslan Baratov <ruslan_baratov@yahoo.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The ExternalProject_Add_StepDependencies function add some dependencies
for some external project step.
The syntax is:
ExternalProject_Add_Step_Dependencies(<name> <step> [target1 [target2 [...]]])
This function takes care to set both target and file level dependencies,
and will ensure that parallel builds will not break.
It should be used instead of add_dependencies() when adding a dependency
for some of the step targets generated by ExternalProject. See also:
http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/8680/focus=8926
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When adding step targets using ExternalProject_Add_StepTargets, the
STEP_TARGETS argument or the EP_STEP_TARGETS property, ExternalProject
sets all the dependencies for the main project to that target. Due to
this, the update target cannot be used without downloading and building
all the dependencies.
In order to be able to add step targets that do not depend on other
external projects, this patch adds:
* An optional "NO_DEPENDS" argument to the
ExternalProject_Add_StepTargets function. If this argument is set,
then no dependencies are set for the target (file dependencies will
still be set).
* A new argument INDEPENDENT_STEP_TARGETS to the ExternalProject_Add
function and a new directory property EP_INDEPENDENT_STEP_TARGETS that
behave like STEP_TARGETS and EP_STEP_TARGETS, but cause the
ExternalProject_Add_StepTargets to be called with the NO_DEPENDS
argument.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This argument allows to set default arguments that are written in the
initial cache file, but that are not forced, and therefore allows the
user to change these values later (CMAKE_ARGS and CMAKE_CACHE_ARGS
always overwrite the values).
Also add some documentation to explain the differences between these 3
arguments.
Extend ExternalProjectLocal test to cover CMAKE_CACHE_DEFAULT_ARGS.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Convert ExternalProject module documentation to use explicit markup
blocks for each command. Enumerate command options with definition
lists instead of a literal block. This will allow more detail to be
added later. Also fix the logic that parses options out of the
documentation to be aware of the new layout.
|
|/
|
|
|
|
|
| |
Use a bracket comment to hold the documentation instead of a block of
line comments. This will make further updates easier. Also fix the
logic that parses options out of the documentation to be aware of the
new layout.
|
|\
| |
| |
| |
| |
| |
| | |
fa7d47ac Tests: Fix CMP0054 warnings
3b5ea54a CheckPrototypeDefinition: Avoid if() auto-dereference
c9b301cd ExternalProject: Fix CMP0054 warning in _ep_parse_arguments
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix the CMP0054 warning:
CMake Warning (dev) at .../Modules/ExternalProject.cmake:242 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.
Quoted keywords like "COMMAND" will no longer be interpreted as keywords
when the policy is set to NEW. Since the policy is not set the OLD
behavior will be used.
Call Stack (most recent call first):
.../Modules/ExternalProject.cmake:1938 (_ep_parse_arguments)
CMakeLists.txt:5 (ExternalProject_Add)
by avoiding a reference to "${key}" or "COMMAND" in quotes.
|
|\ \
| |/
|/|
| |
| | |
30a94eec ExternalProject: Fix download retry logic
|
| |
| |
| |
| |
| |
| |
| | |
Do not check file's hash in download script. If hash will not match
command ``file(DOWNLOAD ...)`` will fail with FATAL_ERROR, ``cmake -P``
will exit with unsuccessful code, and the build will stop. Leave hash
checking to the existing implementation in the verify step.
|
|\ \
| |/
|/|
| |
| |
| |
| |
| |
| | |
be6a555d Tests: Test setting a generator platform in a toolchain file
d506fee8 Tests: Use -A option to pass generator platform selection
11c9ddd6 ExternalProject: Use -A option to pass generator platform
29bd843e CTest: Use -A option to pass generator platform selection
eb7d8156 cmake: Add -A option to specify a generator platform
|
| |
| |
| |
| | |
This is less verbose than defining CMAKE_GENERATOR_PLATFORM.
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
09c8ad99 enable_language: Initialize system-specific generator info only once
09ab207c Tests: Add generator platform support
6944997b ExternalProject: Propagate the generator platform
8d332091 CTest: Add options to set generator platform
b97736a2 VS: Implement CMAKE_GENERATOR_PLATFORM for VS >= 8
0f1f1271 CMake: Add CMAKE_GENERATOR_PLATFORM option
4f7d0c42 Help: Document CMAKE_VS_PLATFORM_NAME variable
68d4280a VS: Refactor internal default platform name selection
ad2a4776 cmGlobalVisualStudio10Generator: Re-order some methods
03b7b6cd cmGlobalGenerator: Call SetGeneratorToolset even for empty toolset
|
| |
| |
| |
| |
| |
| |
| |
| | |
When the CMAKE_GENERATOR option is given to ExternalProject_Add, look
also for option CMAKE_GENERATOR_PLATFORM 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_PLATFORM (since we already use its
CMAKE_GENERATOR).
|
|\ \
| |/
|/|
| |
| | |
9f49ac3d ExternalProject: Avoid infinite loop on file download hash mismatch
|
| |
| |
| |
| |
| |
| | |
When the loop was added by commit v3.0.0-rc1~103^2~3 (ExternalProject:
Reattempt download when verification fails, 2015-01-15), we forgot to
actually increment the loop counter. Add the increment line.
|
| |
| |
| |
| | |
Show the explicit '-r' that is required.
|
| |
| |
| |
| |
| |
| |
| | |
Add .7z, .tar.xz, and .txz file extensions.
Inspired-by: Joke de Buhr <joke@seiken.de>
Inspired-by: David Cole <DLRdave@aol.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Also fix .bz2 extension to be .tar.bz2 since we only support compressed
tarballs and not plain compressed files.
Suggested-by: Nils Gladitz <nilsgladitz@gmail.com>
Suggested-by: Rolf Eike Beer <eike@sf-mail.de>
|
| |
| |
| |
| | |
This is useful when using the USE_FOLDERS global property
|
| |
| |
| |
| | |
This is useful for using CDash subprojects.
|
|\ \
| |/
| |
| |
| | |
420280f3 ExternalProject: Fix path to cmake in verify script
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
The matches have already been calculated and can simply be taken from
CMAKE_MATCH_n variables. This avoids multiple compilations of the same or very
similar regular expressions.
|
| |
| |
| |
| |
| | |
This keeps the VCS packages out from FeatureSummary output, unless
the INCLUDE_QUIET_PACKAGES is used.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When adding a new external project, the "all" target will depend on
this.
This option allows one to add an external project will not be executed
when the "all" target is executed.
The reason for this is that an external project could be useful, for
example, only for running tests, and therefore not necessary during
the build.
|
| |
| |
| |
| |
| |
| |
| | |
When adding a new step using ExternalProject_Add_Step, the main target
will depend on this step.
This option allows one to add a step that will not be executed when the
main target for the external project is executed.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ExternalProject handles git remote branches by commit hash. Due to
this, the git repository ends in detached states, and local commits
are discarded.
Use "git rebase" for remote branches instead of "git checkout". If
there are uncommitted changes, use "git stash save/pop" to save changes
and restore them after the rebase. If any of these operations fails,
try to restore the original status and exit with a fatal error, asking
the user to resolve the conflicts manually.
This also makes the behaviour of ExternalProject using git more similar
to the svn version, and probably more likely to what the user expects
by setting GIT_TAG to a branch.
|