| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Instead of "manually" added captions use the Sphinx option of
`code-block` directive.
|
|
|
|
|
| |
When mention execitable names use Sphinx semantic role `:program`
instead of ``executable`` or **executable**.
|
|\
| |
| |
| |
| |
| |
| | |
2eb30a7036 add_subdirectory: Add SYSTEM option
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7399
|
| |
| |
| |
| |
| | |
Fixes: #22401
Signed-off-by: Da Quexian <daquexian566@gmail.com>
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
48b380c961 FetchContent: Ignore EXACT for redirected find_package() calls
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7665
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When FetchContent_MakeAvailable() populates a dependency for which
find_package() integration is enabled, all future calls to find_package()
MUST succeed using the contents of the redirection directory. The
generated config version file was not handling calls where the EXACT
keyword was given, resulting in such calls rejecting the redirection
directory's contents and continuing its search. It is not allowed to do
that. Fix the generated file to also set PACKAGE_VERSION_EXACT to
true so that calls with EXACT now accept it, as was originally intended.
Fixes: #23950
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
d9a6e0ffc8 FetchContent: Fix unsetting wrong variable name after provider returns
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7663
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The unset() command was using __cmake_contentNameLower before that
variable was restored from the __cmake_fcCurrentVarsStack. That means
if there had been a nested call to FetchContent_MakeAvailable(), the wrong
variable name would have been cleared (the nested name instead of the
one from the current call). That would have left the variable set upon return,
blocking the dependency provider from seeing any further calls to
FetchContent_MakeAvailable() in the current variable scope or below for the
current dependency.
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
629d106c5e Help: Fix typo in FetchContent example, extras should read extra
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: hinell <al.neodim@gmail.com>
Merge-request: !7657
|
| | |
| | |
| | |
| | |
| | | |
Amends 29e31e2825a (Packages: Integrate FetchContent and
find_package(), 2022-04-28)
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
daa2a6cda6 Help: Fix wrong casing of GTest in FetchContent integration example
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7644
|
| | | |
|
|/ /
| |
| |
| |
| |
| | |
The protobuf example would raise a "Policy CMP0077" warning and
protobuf tests would still be built, e.g. setting the variable is
ignored in latest CMake. Set an INTERNAL cache variable instead so
that CMP0077 warnings won't be triggered.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The CMAKE_VERIFY_INTERFACE_HEADER_SETS variable is intended to
be under the control of the user. It doesn't discriminate between
header sets defined in the main project and those defined by
dependencies brought into the build directly via FetchContent.
Developers will usually only be interested in verifying the main project's
header sets, not those from dependencies.
Make the variable effectively only enable header set verification of the
main project by turning it off during FetchContent_MakeAvailable() calls.
The user still has variables like CMAKE_PROJECT_INCLUDE and
CMAKE_PROJECT_<projectName>_INCLUDE available to them if they
want to enable verification of all or specific dependencies respectively.
Fixes: #23808
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In c2044fdf3f (FetchContent: Respect the CMP0135 policy setting,
2022-06-02), the URL keyword was wrongly assumed to only have
a single value. Multiple URL values are allowed if they are all
non-local. Rework the logic to remove that incorrect assumption
and handle both single and multi-value URL combinations.
Fixes: #23792
|
|/
|
|
| |
This avoids the need for changing policy settings, which would then
propagate through to projects brought into the build via FetchContent.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
f19b48e0b8 FetchContent: Honor CMAKE_FIND_PACKAGE_TARGETS_GLOBAL
1305bade56 Help: Add missing version directive for find_package() GLOBAL keyword
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7347
|
| |
| |
| | |
Fixes: #23606
|
|/
|
|
|
|
|
|
| |
The guide previously only focused on the find_package() command,
with a bias towards libraries. FetchContent was not mentioned at all.
Reorganise and update the existing content. Add new sections to cover
providing dependencies with FetchContent and dependency providers.
Improve discoverability of the guide by mentioning it at the beginning
of the find_package(), FetchContent and dependency provider docs.
|
|
|
| |
Fixes: #23560
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
2aa83fa15b Dependency providers: Add find_package and FetchContent support
8a28368feb FetchContent: Don't discard non-empty SOURCE_DIR and BINARY_DIR
8ce9bb8a0c FetchContent: Don't leak internal variables
74a6ddc339 cmFindPackageCommand: Handle Makefile variable definitions more robustly
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Gerhard Olsson <gerhard.nospam@gmail.com>
Merge-request: !7276
|
| |
| |
| | |
Fixes: #22619
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
| |
The config used can be part of the path to the sub-build. On some
platforms, there are restrictions on the length of paths or file names.
Use Debug rather than Release because the former is shorter.
When CMAKE_CONFIGURATION_TYPES is left at its default, this also
makes the path the same as the previous default before 10865c8e5f
(FetchContent: Hard-code a config for the sub-build, 2022-05-01) .
|
|\
| |
| |
| |
| |
| |
| |
| | |
10865c8e5f FetchContent: Hard-code a config for the sub-build
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7228
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the main project overrides CMAKE_CONFIGURATION_TYPES such
that there is no Debug configuration, some multi-config generators
can fail because they might assume Debug by default (Visual Studio
might do this). Always specify the configuration for multi-config
generators so that we don't rely on any such defaults.
Fixes: #23177
|
|/
|
|
|
|
|
|
| |
Allow FetchContent_MakeAvailable() to try a call to
find_package() first, or redirect a find_package() call to
FetchContent_MakeAvailable(). The user can set variables
to control which of these are allowed or tried by default.
Fixes: #21687
|
|
|
|
|
|
|
| |
This brings the patch step into line with all the others which already
had their own `USES_TERMINAL_<step>` keyword. All steps (including
patch) already have their own `LOG_<step>` keyword too, so the lack of
`USES_TERMINAL_PATCH` was inconsistent.
|
| |
|
|
|
|
|
|
|
| |
CMAKE_TLS_VERIFY, CMAKE_TLS_CAINFO, CMAKE_NETRC and
CMAKE_NETRC_FILE are now passed through to the underlying
ExternalProject sub-build. Previously, they were silently ignored.
Fixes: #22144
|
|
|
|
|
|
|
|
|
|
|
|
| |
FetchContent_MakeAvailable() should be strongly preferred over
the direct use of FetchContent_Populate(). The latter was the only
method available before CMake 3.14, but the former is simpler and
offers more functionality. Restructure the docs and improve the
wording to steer the reader toward `FetchContent_MakeAvailable()`
as the preferred approach.
Also take the opportunity to pull out the variables that influence
behavior into their own section. They were easily missed when
buried in the docs for the FetchContent_Populate() command.
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
57d442e182 Revert ExternalProject and FetchContent refactoring
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5898
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Refactoring of the ExternalProject and FetchContent modules moved
the commands into CMake scripts. This broke custom commands that
used shell redirection or special build tool variables of the form
$(MakeVar). Undo the sequence of commits that performed this
refactoring and follow-up fixes associated with it.
The following commits are reverted by this change:
4f3d1abbb4 (ExternalProject: Refactor pre-configure steps to support
no-target uses, 2021-02-05)
17e5516e60 (FetchContent: Invoke steps directly and avoid a separate
sub-build, 2021-01-29)
bd876f3849 (FetchContent: Restore patch command support,
2021-02-18)
404cddb7bb (ExternalProject: Fix misuse of IS_NEWER_THAN in
timestamp checks, 2021-02-21)
b0da671243 (FetchContent: Don't update timestamps if files don't
change, 2021-02-18)
Fixes: #21892
|
| |
| |
| |
| | |
Fixes: #21841
Co-Authored-By: Craig Scott <craig.scott@crascit.com>
|
|/
|
| |
Fixes: #21859
|
|
|
|
|
|
|
|
|
|
|
|
| |
The cost of setting up and executing a separate sub-build to do the
download, update and patch steps required for FetchContent population
can be significant with some platforms and CMake generators. Avoid the
sub-build altogether by invoking the step scripts directly.
Previously, if no generator was set (e.g. population was being done in
script mode), a generator needed to be available on the default PATH.
Since we no longer use a sub-build, this restriction is also now gone.
Fixes: #21703
|
|
|
|
|
|
|
|
|
|
|
| |
The git version should not change while CMake is running. When
using FetchContent with many dependencies, the repeated calls
to get the git version every time ExternalProject is used can be
measurable on some platforms. This commit queries that version
only once and then caches it in a global property for the rest of that
run. The git version can still safely change between runs because it
is not cached, only the GIT_EXECUTABLE location is cached.
Relates: #21703
|
|\
| |
| |
| |
| |
| |
| | |
51595e5f01 FetchContent: Relative SOURCE_DIR override cannot be a hard error
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5641
|
| |
| |
| | |
Fixes: #21624
|
|/
|
|
| |
Issue: #19715
|
|
|
| |
Fixes: #21208
|
|
|
| |
Fixes: #21123
|
|
|
|
|
|
|
| |
Run the `Utilities/Sphinx/update_versions.py` script to add initial
markup to every top-level document and find module.
Issue: #19715
|
|
|
|
|
| |
This was missed when the initial support was added in
commit 0aea435aa1 (ExternalProject: Provide choice of
git update strategies, 2020-02-12)
|
|
|
|
| |
Fixes: #20579
|