summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2024-03-13 14:56:59 (GMT)
committerKitware Robot <kwrobot@kitware.com>2024-03-13 14:57:07 (GMT)
commit886333da388c6c66d3073d73665118c55f693eaf (patch)
tree201ac40edd92291b93595f58106e46f05d962a10
parent3d67b5a4e594252f00bd02e6767c34df10801367 (diff)
parent3a739d4dcb460a2c23b78649d477f6a91b825de6 (diff)
downloadCMake-886333da388c6c66d3073d73665118c55f693eaf.zip
CMake-886333da388c6c66d3073d73665118c55f693eaf.tar.gz
CMake-886333da388c6c66d3073d73665118c55f693eaf.tar.bz2
Merge topic 'export-find_dependency-calls' into release-3.29
3a739d4dcb EXPORT_PACKAGE_DEPENDENCIES: Add experimental feature gate Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !9336
-rw-r--r--Help/command/export.rst8
-rw-r--r--Help/command/install.rst4
-rw-r--r--Help/dev/experimental.rst25
-rw-r--r--Help/prop_tgt/EXPORT_FIND_PACKAGE_NAME.rst4
-rw-r--r--Help/release/3.29.rst20
-rw-r--r--Help/variable/CMAKE_EXPORT_FIND_PACKAGE_NAME.rst4
-rw-r--r--Source/cmExperimental.cxx9
-rw-r--r--Source/cmExperimental.h1
-rw-r--r--Source/cmExportCommand.cxx17
-rw-r--r--Source/cmInstallCommand.cxx8
-rw-r--r--Tests/ExportImport/Export/CMakeLists.txt1
-rw-r--r--Tests/RunCMake/export/FindDependencyExport-stderr.txt6
-rw-r--r--Tests/RunCMake/export/FindDependencyExport.cmake1
-rw-r--r--Tests/RunCMake/export/FindDependencyExportFetchContent-stderr.txt6
-rw-r--r--Tests/RunCMake/export/FindDependencyExportFetchContent.cmake1
-rw-r--r--Tests/RunCMake/export/FindDependencyExportGate-result.txt1
-rw-r--r--Tests/RunCMake/export/FindDependencyExportGate-stderr.txt4
-rw-r--r--Tests/RunCMake/export/FindDependencyExportGate.cmake1
-rw-r--r--Tests/RunCMake/export/FindDependencyExportShared-stderr.txt6
-rw-r--r--Tests/RunCMake/export/FindDependencyExportShared.cmake1
-rw-r--r--Tests/RunCMake/export/FindDependencyExportStatic-stderr.txt6
-rw-r--r--Tests/RunCMake/export/FindDependencyExportStatic.cmake1
-rw-r--r--Tests/RunCMake/export/RunCMakeTest.cmake1
-rw-r--r--Tests/RunCMake/install/EXPORT-FindDependencyExport-stderr.txt6
-rw-r--r--Tests/RunCMake/install/EXPORT-FindDependencyExport.cmake1
-rw-r--r--Tests/RunCMake/install/EXPORT-FindDependencyExportGate-result.txt1
-rw-r--r--Tests/RunCMake/install/EXPORT-FindDependencyExportGate-stderr.txt4
-rw-r--r--Tests/RunCMake/install/EXPORT-FindDependencyExportGate.cmake1
-rw-r--r--Tests/RunCMake/install/RunCMakeTest.cmake1
29 files changed, 124 insertions, 26 deletions
diff --git a/Help/command/export.rst b/Help/command/export.rst
index f190df7..349522e 100644
--- a/Help/command/export.rst
+++ b/Help/command/export.rst
@@ -120,7 +120,9 @@ associated with the export ``<export-name>`` using the ``EXPORT`` option
of the :command:`install(TARGETS)` command.
``EXPORT_PACKAGE_DEPENDENCIES``
- .. versionadded:: 3.29
+ .. note::
+
+ Experimental. Gated by ``CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_DEPENDENCIES``.
Specify that :command:`find_dependency` calls should be exported. See
:command:`install(EXPORT)` for details on how this works.
@@ -180,6 +182,10 @@ Configuring Exports
Configure the parameters of an export. The arguments are as follows:
``PACKAGE_DEPENDENCY <dep>``
+ .. note::
+
+ Experimental. Gated by ``CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_DEPENDENCIES``.
+
Specify a package dependency to configure. This changes how
:command:`find_dependency` calls are written during
:command:`export(EXPORT)` and :command:`install(EXPORT)`. ``<dep>`` is the
diff --git a/Help/command/install.rst b/Help/command/install.rst
index 674b770..6da077e 100644
--- a/Help/command/install.rst
+++ b/Help/command/install.rst
@@ -853,7 +853,9 @@ Signatures
targets in the export set will support being imported in consuming targets.
``EXPORT_PACKAGE_DEPENDENCIES``
- .. versionadded:: 3.29
+ .. note::
+
+ Experimental. Gated by ``CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_DEPENDENCIES``.
Specify that :command:`find_dependency` calls should be exported. If this
argument is specified, CMake examines all targets in the export set and
diff --git a/Help/dev/experimental.rst b/Help/dev/experimental.rst
index 87ac031..fc4ac8b 100644
--- a/Help/dev/experimental.rst
+++ b/Help/dev/experimental.rst
@@ -13,3 +13,28 @@ specific values will change over time to reinforce their experimental nature.
When used, a warning will be generated to indicate that an experimental
feature is in use and that the affected behavior in the project is not part of
CMake's stability guarantees.
+
+Export Package Dependencies
+===========================
+
+In order to activate support for this experimental feature, set
+
+* variable ``CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_DEPENDENCIES`` to
+* value ``1942b4fa-b2c5-4546-9385-83f254070067``.
+
+This UUID may change in future versions of CMake. Be sure to use the value
+documented here by the source tree of the version of CMake with which you are
+experimenting.
+
+When activated, this experimental feature provides the following:
+
+* The ``install(EXPORT)`` and ``export(EXPORT)`` commands have experimental
+ ``EXPORT_PACKAGE_DEPENDENCIES`` arguments to generate ``find_dependency``
+ calls automatically.
+
+* Details of the calls may be configured using the ``export(SETUP)``
+ command's ``PACKAGE_DEPENDENCY`` argument.
+
+* The package name associated with specific targets may be specified
+ using the ``CMAKE_EXPORT_FIND_PACKAGE_NAME`` variable and/or
+``EXPORT_FIND_PACKAGE_NAME`` target property.
diff --git a/Help/prop_tgt/EXPORT_FIND_PACKAGE_NAME.rst b/Help/prop_tgt/EXPORT_FIND_PACKAGE_NAME.rst
index b49f005..b7405d6 100644
--- a/Help/prop_tgt/EXPORT_FIND_PACKAGE_NAME.rst
+++ b/Help/prop_tgt/EXPORT_FIND_PACKAGE_NAME.rst
@@ -1,7 +1,9 @@
EXPORT_FIND_PACKAGE_NAME
------------------------
-.. versionadded:: 3.29
+.. note::
+
+ Experimental. Gated by ``CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_DEPENDENCIES``.
Control the package name associated with a dependency target when exporting a
:command:`find_dependency` call in :command:`install(EXPORT)` or
diff --git a/Help/release/3.29.rst b/Help/release/3.29.rst
index 42f6491..f6d829d 100644
--- a/Help/release/3.29.rst
+++ b/Help/release/3.29.rst
@@ -57,19 +57,13 @@ Commands
:option:`cmake -P` scripts with a specified exit code.
* The :command:`export(SETUP)` sub-command was added to configure export sets.
- Its ``PACKAGE_DEPENDENCY`` option configures how :command:`find_dependency`
- calls are exported. Its ``TARGET`` option's ``XCFRAMEWORK_LOCATION``
- setting specifies the location of a ``.xcframework`` that can be
- substituted for an installed target.
+ Its ``TARGET`` option's ``XCFRAMEWORK_LOCATION`` setting specifies the
+ location of a ``.xcframework`` that can be substituted for an installed
+ target.
* The :command:`if` command gained new tests ``IS_READABLE``, ``IS_WRITABLE``
and ``IS_EXECUTABLE`` to check file or directory permissions.
-* :command:`install(EXPORT)` and :command:`export(EXPORT)` learned a new
- ``EXPORT_PACKAGE_DEPENDENCIES`` argument, which can be used to generate
- :command:`find_dependency` calls based on what targets the exported targets
- depend on.
-
Variables
---------
@@ -110,11 +104,6 @@ Properties
* The :prop_tgt:`CROSSCOMPILING_EMULATOR` target property now
supports :manual:`generator expressions <cmake-generator-expressions(7)>`.
-* The :prop_tgt:`EXPORT_FIND_PACKAGE_NAME` target property was added to
- allow targets to specify what package name to pass when exporting
- :command:`find_dependency` calls. This property is initialized with a new
- :variable:`CMAKE_EXPORT_FIND_PACKAGE_NAME` variable.
-
* The :prop_tgt:`UNITY_BUILD` target property now supports the
Objective C (``OBJC``) and Objective C++ (``OBJCXX``) languages.
@@ -185,9 +174,6 @@ Other Changes
:variable:`CMAKE_CROSSCOMPILING_EMULATOR` only when cross-compiling.
See policy :policy:`CMP0158`.
-* :command:`FetchContent_MakeAvailable` now sets the
- :variable:`CMAKE_EXPORT_FIND_PACKAGE_NAME` variable for CMake projects.
-
* On Windows, when targeting the MSVC ABI, the :command:`find_library` command
now accepts ``.a`` file names after first considering ``.lib``. This is
symmetric with existing behavior when targeting the GNU ABI, in which the
diff --git a/Help/variable/CMAKE_EXPORT_FIND_PACKAGE_NAME.rst b/Help/variable/CMAKE_EXPORT_FIND_PACKAGE_NAME.rst
index b6c8b76..dbab579 100644
--- a/Help/variable/CMAKE_EXPORT_FIND_PACKAGE_NAME.rst
+++ b/Help/variable/CMAKE_EXPORT_FIND_PACKAGE_NAME.rst
@@ -1,6 +1,8 @@
CMAKE_EXPORT_FIND_PACKAGE_NAME
------------------------------
-.. versionadded:: 3.29
+.. note::
+
+ Experimental. Gated by ``CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_DEPENDENCIES``.
Initializes the value of :prop_tgt:`EXPORT_FIND_PACKAGE_NAME`.
diff --git a/Source/cmExperimental.cxx b/Source/cmExperimental.cxx
index d75879f..fb21f53 100644
--- a/Source/cmExperimental.cxx
+++ b/Source/cmExperimental.cxx
@@ -19,6 +19,15 @@ namespace {
* up-to-date.
*/
cmExperimental::FeatureData LookupTable[] = {
+ // ExportPackageDependencies
+ { "ExportPackageDependencies",
+ "1942b4fa-b2c5-4546-9385-83f254070067",
+ "CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_DEPENDENCIES",
+ "CMake's EXPORT_PACKAGE_DEPENDENCIES support is experimental. It is meant "
+ "only for experimentation and feedback to CMake developers.",
+ {},
+ cmExperimental::TryCompileCondition::Always,
+ false },
// WindowsKernelModeDriver
{ "WindowsKernelModeDriver",
"5c2d848d-4efa-4529-a768-efd57171bf68",
diff --git a/Source/cmExperimental.h b/Source/cmExperimental.h
index e4c1448..5593c85 100644
--- a/Source/cmExperimental.h
+++ b/Source/cmExperimental.h
@@ -15,6 +15,7 @@ class cmExperimental
public:
enum class Feature
{
+ ExportPackageDependencies,
WindowsKernelModeDriver,
Sentinel,
diff --git a/Source/cmExportCommand.cxx b/Source/cmExportCommand.cxx
index 7d23c91..0cb0011 100644
--- a/Source/cmExportCommand.cxx
+++ b/Source/cmExportCommand.cxx
@@ -17,6 +17,7 @@
#include "cmArgumentParserTypes.h"
#include "cmCryptoHash.h"
#include "cmExecutionStatus.h"
+#include "cmExperimental.h"
#include "cmExportBuildAndroidMKGenerator.h"
#include "cmExportBuildFileGenerator.h"
#include "cmExportSet.h"
@@ -83,12 +84,20 @@ bool cmExportCommand(std::vector<std::string> const& args,
.Bind("CXX_MODULES_DIRECTORY"_s, &Arguments::CxxModulesDirectory);
if (args[0] == "EXPORT") {
- parser.Bind("EXPORT"_s, &Arguments::ExportSetName)
- .Bind("EXPORT_PACKAGE_DEPENDENCIES"_s,
- &Arguments::ExportPackageDependencies);
+ parser.Bind("EXPORT"_s, &Arguments::ExportSetName);
+ if (cmExperimental::HasSupportEnabled(
+ status.GetMakefile(),
+ cmExperimental::Feature::ExportPackageDependencies)) {
+ parser.Bind("EXPORT_PACKAGE_DEPENDENCIES"_s,
+ &Arguments::ExportPackageDependencies);
+ }
} else if (args[0] == "SETUP") {
parser.Bind("SETUP"_s, &Arguments::ExportSetName);
- parser.Bind("PACKAGE_DEPENDENCY"_s, &Arguments::PackageDependencyArgs);
+ if (cmExperimental::HasSupportEnabled(
+ status.GetMakefile(),
+ cmExperimental::Feature::ExportPackageDependencies)) {
+ parser.Bind("PACKAGE_DEPENDENCY"_s, &Arguments::PackageDependencyArgs);
+ }
parser.Bind("TARGET"_s, &Arguments::TargetArgs);
} else {
parser.Bind("TARGETS"_s, &Arguments::Targets);
diff --git a/Source/cmInstallCommand.cxx b/Source/cmInstallCommand.cxx
index e2755da..1567629 100644
--- a/Source/cmInstallCommand.cxx
+++ b/Source/cmInstallCommand.cxx
@@ -21,6 +21,7 @@
#include "cmArgumentParser.h"
#include "cmArgumentParserTypes.h"
#include "cmExecutionStatus.h"
+#include "cmExperimental.h"
#include "cmExportSet.h"
#include "cmFileSet.h"
#include "cmGeneratorExpression.h"
@@ -2061,7 +2062,12 @@ bool HandleExportMode(std::vector<std::string> const& args,
ica.Bind("EXPORT_LINK_INTERFACE_LIBRARIES"_s, exportOld);
ica.Bind("FILE"_s, filename);
ica.Bind("CXX_MODULES_DIRECTORY"_s, cxx_modules_directory);
- ica.Bind("EXPORT_PACKAGE_DEPENDENCIES"_s, exportPackageDependencies);
+
+ if (cmExperimental::HasSupportEnabled(
+ status.GetMakefile(),
+ cmExperimental::Feature::ExportPackageDependencies)) {
+ ica.Bind("EXPORT_PACKAGE_DEPENDENCIES"_s, exportPackageDependencies);
+ }
std::vector<std::string> unknownArgs;
ica.Parse(args, &unknownArgs);
diff --git a/Tests/ExportImport/Export/CMakeLists.txt b/Tests/ExportImport/Export/CMakeLists.txt
index 56b8aaa..0b7f739 100644
--- a/Tests/ExportImport/Export/CMakeLists.txt
+++ b/Tests/ExportImport/Export/CMakeLists.txt
@@ -1,3 +1,4 @@
+set(CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_DEPENDENCIES "1942b4fa-b2c5-4546-9385-83f254070067")
cmake_minimum_required (VERSION 2.7.20090711)
if(POLICY CMP0129)
cmake_policy(SET CMP0129 NEW)
diff --git a/Tests/RunCMake/export/FindDependencyExport-stderr.txt b/Tests/RunCMake/export/FindDependencyExport-stderr.txt
new file mode 100644
index 0000000..446b1b1
--- /dev/null
+++ b/Tests/RunCMake/export/FindDependencyExport-stderr.txt
@@ -0,0 +1,6 @@
+^CMake Warning \(dev\) at FindDependencyExport\.cmake:[0-9]+ \(export\):
+ CMake's EXPORT_PACKAGE_DEPENDENCIES support is experimental\. It is meant
+ only for experimentation and feedback to CMake developers\.
+Call Stack \(most recent call first\):
+ CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\. Use -Wno-dev to suppress it\.$
diff --git a/Tests/RunCMake/export/FindDependencyExport.cmake b/Tests/RunCMake/export/FindDependencyExport.cmake
index 59dd4cc..8898196 100644
--- a/Tests/RunCMake/export/FindDependencyExport.cmake
+++ b/Tests/RunCMake/export/FindDependencyExport.cmake
@@ -1,3 +1,4 @@
+set(CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_DEPENDENCIES "1942b4fa-b2c5-4546-9385-83f254070067")
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMake)
find_package(P1)
diff --git a/Tests/RunCMake/export/FindDependencyExportFetchContent-stderr.txt b/Tests/RunCMake/export/FindDependencyExportFetchContent-stderr.txt
new file mode 100644
index 0000000..86ed890
--- /dev/null
+++ b/Tests/RunCMake/export/FindDependencyExportFetchContent-stderr.txt
@@ -0,0 +1,6 @@
+^CMake Warning \(dev\) at FindDependencyExportFetchContent\.cmake:[0-9]+ \(install\):
+ CMake's EXPORT_PACKAGE_DEPENDENCIES support is experimental\. It is meant
+ only for experimentation and feedback to CMake developers\.
+Call Stack \(most recent call first\):
+ CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\. Use -Wno-dev to suppress it\.$
diff --git a/Tests/RunCMake/export/FindDependencyExportFetchContent.cmake b/Tests/RunCMake/export/FindDependencyExportFetchContent.cmake
index 9e6c565..de737a6 100644
--- a/Tests/RunCMake/export/FindDependencyExportFetchContent.cmake
+++ b/Tests/RunCMake/export/FindDependencyExportFetchContent.cmake
@@ -1,3 +1,4 @@
+set(CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_DEPENDENCIES "1942b4fa-b2c5-4546-9385-83f254070067")
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMake)
enable_language(CXX)
diff --git a/Tests/RunCMake/export/FindDependencyExportGate-result.txt b/Tests/RunCMake/export/FindDependencyExportGate-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/export/FindDependencyExportGate-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/export/FindDependencyExportGate-stderr.txt b/Tests/RunCMake/export/FindDependencyExportGate-stderr.txt
new file mode 100644
index 0000000..b24e846
--- /dev/null
+++ b/Tests/RunCMake/export/FindDependencyExportGate-stderr.txt
@@ -0,0 +1,4 @@
+^CMake Error at FindDependencyExportGate\.cmake:[0-9]+ \(export\):
+ export Unknown argument: "EXPORT_PACKAGE_DEPENDENCIES"\.
+Call Stack \(most recent call first\):
+ CMakeLists\.txt:[0-9]+ \(include\)$
diff --git a/Tests/RunCMake/export/FindDependencyExportGate.cmake b/Tests/RunCMake/export/FindDependencyExportGate.cmake
new file mode 100644
index 0000000..f465d72
--- /dev/null
+++ b/Tests/RunCMake/export/FindDependencyExportGate.cmake
@@ -0,0 +1 @@
+export(EXPORT mytargets EXPORT_PACKAGE_DEPENDENCIES)
diff --git a/Tests/RunCMake/export/FindDependencyExportShared-stderr.txt b/Tests/RunCMake/export/FindDependencyExportShared-stderr.txt
new file mode 100644
index 0000000..c47a0f8
--- /dev/null
+++ b/Tests/RunCMake/export/FindDependencyExportShared-stderr.txt
@@ -0,0 +1,6 @@
+^CMake Warning \(dev\) at FindDependencyExportShared\.cmake:[0-9]+ \(export\):
+ CMake's EXPORT_PACKAGE_DEPENDENCIES support is experimental\. It is meant
+ only for experimentation and feedback to CMake developers\.
+Call Stack \(most recent call first\):
+ CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\. Use -Wno-dev to suppress it\.$
diff --git a/Tests/RunCMake/export/FindDependencyExportShared.cmake b/Tests/RunCMake/export/FindDependencyExportShared.cmake
index 6e662a1..bd258d2 100644
--- a/Tests/RunCMake/export/FindDependencyExportShared.cmake
+++ b/Tests/RunCMake/export/FindDependencyExportShared.cmake
@@ -1,3 +1,4 @@
+set(CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_DEPENDENCIES "1942b4fa-b2c5-4546-9385-83f254070067")
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMake)
enable_language(CXX)
diff --git a/Tests/RunCMake/export/FindDependencyExportStatic-stderr.txt b/Tests/RunCMake/export/FindDependencyExportStatic-stderr.txt
new file mode 100644
index 0000000..347b65e
--- /dev/null
+++ b/Tests/RunCMake/export/FindDependencyExportStatic-stderr.txt
@@ -0,0 +1,6 @@
+^CMake Warning \(dev\) at FindDependencyExportStatic\.cmake:[0-9]+ \(export\):
+ CMake's EXPORT_PACKAGE_DEPENDENCIES support is experimental\. It is meant
+ only for experimentation and feedback to CMake developers\.
+Call Stack \(most recent call first\):
+ CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\. Use -Wno-dev to suppress it\.$
diff --git a/Tests/RunCMake/export/FindDependencyExportStatic.cmake b/Tests/RunCMake/export/FindDependencyExportStatic.cmake
index 2d32eb2..102462a 100644
--- a/Tests/RunCMake/export/FindDependencyExportStatic.cmake
+++ b/Tests/RunCMake/export/FindDependencyExportStatic.cmake
@@ -1,3 +1,4 @@
+set(CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_DEPENDENCIES "1942b4fa-b2c5-4546-9385-83f254070067")
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMake)
enable_language(CXX)
diff --git a/Tests/RunCMake/export/RunCMakeTest.cmake b/Tests/RunCMake/export/RunCMakeTest.cmake
index 3e1b7d6..de65b65 100644
--- a/Tests/RunCMake/export/RunCMakeTest.cmake
+++ b/Tests/RunCMake/export/RunCMakeTest.cmake
@@ -19,6 +19,7 @@ run_cmake(UnknownExport)
run_cmake(NamelinkOnlyExport)
run_cmake(SeparateNamelinkExport)
run_cmake(TryCompileExport)
+run_cmake(FindDependencyExportGate)
run_cmake(FindDependencyExport)
run_cmake(FindDependencyExportStatic)
run_cmake(FindDependencyExportShared)
diff --git a/Tests/RunCMake/install/EXPORT-FindDependencyExport-stderr.txt b/Tests/RunCMake/install/EXPORT-FindDependencyExport-stderr.txt
new file mode 100644
index 0000000..bab3e64
--- /dev/null
+++ b/Tests/RunCMake/install/EXPORT-FindDependencyExport-stderr.txt
@@ -0,0 +1,6 @@
+^CMake Warning \(dev\) at EXPORT-FindDependencyExport\.cmake:[0-9]+ \(export\):
+ CMake's EXPORT_PACKAGE_DEPENDENCIES support is experimental\. It is meant
+ only for experimentation and feedback to CMake developers\.
+Call Stack \(most recent call first\):
+ CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\. Use -Wno-dev to suppress it\.$
diff --git a/Tests/RunCMake/install/EXPORT-FindDependencyExport.cmake b/Tests/RunCMake/install/EXPORT-FindDependencyExport.cmake
index 071414b..35a855d 100644
--- a/Tests/RunCMake/install/EXPORT-FindDependencyExport.cmake
+++ b/Tests/RunCMake/install/EXPORT-FindDependencyExport.cmake
@@ -1,3 +1,4 @@
+set(CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_DEPENDENCIES "1942b4fa-b2c5-4546-9385-83f254070067")
enable_language(C)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
diff --git a/Tests/RunCMake/install/EXPORT-FindDependencyExportGate-result.txt b/Tests/RunCMake/install/EXPORT-FindDependencyExportGate-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/install/EXPORT-FindDependencyExportGate-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/install/EXPORT-FindDependencyExportGate-stderr.txt b/Tests/RunCMake/install/EXPORT-FindDependencyExportGate-stderr.txt
new file mode 100644
index 0000000..8a4d2db
--- /dev/null
+++ b/Tests/RunCMake/install/EXPORT-FindDependencyExportGate-stderr.txt
@@ -0,0 +1,4 @@
+^CMake Error at EXPORT-FindDependencyExportGate\.cmake:[0-9]+ \(install\):
+ install EXPORT given unknown argument "EXPORT_PACKAGE_DEPENDENCIES"\.
+Call Stack \(most recent call first\):
+ CMakeLists\.txt:[0-9]+ \(include\)$
diff --git a/Tests/RunCMake/install/EXPORT-FindDependencyExportGate.cmake b/Tests/RunCMake/install/EXPORT-FindDependencyExportGate.cmake
new file mode 100644
index 0000000..180b602
--- /dev/null
+++ b/Tests/RunCMake/install/EXPORT-FindDependencyExportGate.cmake
@@ -0,0 +1 @@
+install(EXPORT mylib-targets EXPORT_PACKAGE_DEPENDENCIES DESTINATION lib/cmake/mylib)
diff --git a/Tests/RunCMake/install/RunCMakeTest.cmake b/Tests/RunCMake/install/RunCMakeTest.cmake
index 6f63550..0439b42 100644
--- a/Tests/RunCMake/install/RunCMakeTest.cmake
+++ b/Tests/RunCMake/install/RunCMakeTest.cmake
@@ -77,6 +77,7 @@ run_cmake(DIRECTORY-DESTINATION-bad)
run_cmake(FILES-DESTINATION-bad)
run_cmake(FILES-RENAME-bad)
run_cmake(TARGETS-DESTINATION-bad)
+run_cmake(EXPORT-FindDependencyExportGate)
run_cmake(EXPORT-OldIFace)
run_cmake(EXPORT-UnknownExport)
run_cmake(EXPORT-NamelinkOnly)