Browse Source

EXPORT_PACKAGE_DEPENDENCIES: Add experimental feature gate

Some design concerns have been raised after trying the 3.29 release
candidates.  Avoid committing to a stable public interface for now.

Issue: #25767
Brad King 1 year ago
parent
commit
3a739d4dcb
29 changed files with 124 additions and 26 deletions
  1. 7 1
      Help/command/export.rst
  2. 3 1
      Help/command/install.rst
  3. 25 0
      Help/dev/experimental.rst
  4. 3 1
      Help/prop_tgt/EXPORT_FIND_PACKAGE_NAME.rst
  5. 3 17
      Help/release/3.29.rst
  6. 3 1
      Help/variable/CMAKE_EXPORT_FIND_PACKAGE_NAME.rst
  7. 9 0
      Source/cmExperimental.cxx
  8. 1 0
      Source/cmExperimental.h
  9. 13 4
      Source/cmExportCommand.cxx
  10. 7 1
      Source/cmInstallCommand.cxx
  11. 1 0
      Tests/ExportImport/Export/CMakeLists.txt
  12. 6 0
      Tests/RunCMake/export/FindDependencyExport-stderr.txt
  13. 1 0
      Tests/RunCMake/export/FindDependencyExport.cmake
  14. 6 0
      Tests/RunCMake/export/FindDependencyExportFetchContent-stderr.txt
  15. 1 0
      Tests/RunCMake/export/FindDependencyExportFetchContent.cmake
  16. 1 0
      Tests/RunCMake/export/FindDependencyExportGate-result.txt
  17. 4 0
      Tests/RunCMake/export/FindDependencyExportGate-stderr.txt
  18. 1 0
      Tests/RunCMake/export/FindDependencyExportGate.cmake
  19. 6 0
      Tests/RunCMake/export/FindDependencyExportShared-stderr.txt
  20. 1 0
      Tests/RunCMake/export/FindDependencyExportShared.cmake
  21. 6 0
      Tests/RunCMake/export/FindDependencyExportStatic-stderr.txt
  22. 1 0
      Tests/RunCMake/export/FindDependencyExportStatic.cmake
  23. 1 0
      Tests/RunCMake/export/RunCMakeTest.cmake
  24. 6 0
      Tests/RunCMake/install/EXPORT-FindDependencyExport-stderr.txt
  25. 1 0
      Tests/RunCMake/install/EXPORT-FindDependencyExport.cmake
  26. 1 0
      Tests/RunCMake/install/EXPORT-FindDependencyExportGate-result.txt
  27. 4 0
      Tests/RunCMake/install/EXPORT-FindDependencyExportGate-stderr.txt
  28. 1 0
      Tests/RunCMake/install/EXPORT-FindDependencyExportGate.cmake
  29. 1 0
      Tests/RunCMake/install/RunCMakeTest.cmake

+ 7 - 1
Help/command/export.rst

@@ -120,7 +120,9 @@ associated with the export ``<export-name>`` using the ``EXPORT`` option
 of the :command:`install(TARGETS)` command.
 of the :command:`install(TARGETS)` command.
 
 
 ``EXPORT_PACKAGE_DEPENDENCIES``
 ``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
   Specify that :command:`find_dependency` calls should be exported. See
   :command:`install(EXPORT)` for details on how this works.
   :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:
 Configure the parameters of an export. The arguments are as follows:
 
 
 ``PACKAGE_DEPENDENCY <dep>``
 ``PACKAGE_DEPENDENCY <dep>``
+  .. note::
+
+    Experimental. Gated by ``CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_DEPENDENCIES``.
+
   Specify a package dependency to configure. This changes how
   Specify a package dependency to configure. This changes how
   :command:`find_dependency` calls are written during
   :command:`find_dependency` calls are written during
   :command:`export(EXPORT)` and :command:`install(EXPORT)`. ``<dep>`` is the
   :command:`export(EXPORT)` and :command:`install(EXPORT)`. ``<dep>`` is the

+ 3 - 1
Help/command/install.rst

@@ -853,7 +853,9 @@ Signatures
     targets in the export set will support being imported in consuming targets.
     targets in the export set will support being imported in consuming targets.
 
 
   ``EXPORT_PACKAGE_DEPENDENCIES``
   ``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
     Specify that :command:`find_dependency` calls should be exported. If this
     argument is specified, CMake examines all targets in the export set and
     argument is specified, CMake examines all targets in the export set and

+ 25 - 0
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
 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
 feature is in use and that the affected behavior in the project is not part of
 CMake's stability guarantees.
 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.

+ 3 - 1
Help/prop_tgt/EXPORT_FIND_PACKAGE_NAME.rst

@@ -1,7 +1,9 @@
 EXPORT_FIND_PACKAGE_NAME
 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
 Control the package name associated with a dependency target when exporting a
 :command:`find_dependency` call in :command:`install(EXPORT)` or
 :command:`find_dependency` call in :command:`install(EXPORT)` or

+ 3 - 17
Help/release/3.29.rst

@@ -57,19 +57,13 @@ Commands
   :option:`cmake -P` scripts with a specified exit code.
   :option:`cmake -P` scripts with a specified exit code.
 
 
 * The :command:`export(SETUP)` sub-command was added to configure export sets.
 * 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``
 * The :command:`if` command gained new tests ``IS_READABLE``, ``IS_WRITABLE``
   and ``IS_EXECUTABLE`` to check file or directory permissions.
   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
 Variables
 ---------
 ---------
 
 
@@ -110,11 +104,6 @@ Properties
 * The :prop_tgt:`CROSSCOMPILING_EMULATOR` target property now
 * The :prop_tgt:`CROSSCOMPILING_EMULATOR` target property now
   supports :manual:`generator expressions <cmake-generator-expressions(7)>`.
   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
 * The :prop_tgt:`UNITY_BUILD` target property now supports the
   Objective C (``OBJC``) and Objective C++ (``OBJCXX``) languages.
   Objective C (``OBJC``) and Objective C++ (``OBJCXX``) languages.
 
 
@@ -185,9 +174,6 @@ Other Changes
   :variable:`CMAKE_CROSSCOMPILING_EMULATOR` only when cross-compiling.
   :variable:`CMAKE_CROSSCOMPILING_EMULATOR` only when cross-compiling.
   See policy :policy:`CMP0158`.
   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
 * On Windows, when targeting the MSVC ABI, the :command:`find_library` command
   now accepts ``.a`` file names after first considering ``.lib``.  This is
   now accepts ``.a`` file names after first considering ``.lib``.  This is
   symmetric with existing behavior when targeting the GNU ABI, in which the
   symmetric with existing behavior when targeting the GNU ABI, in which the

+ 3 - 1
Help/variable/CMAKE_EXPORT_FIND_PACKAGE_NAME.rst

@@ -1,6 +1,8 @@
 CMAKE_EXPORT_FIND_PACKAGE_NAME
 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`.
 Initializes the value of :prop_tgt:`EXPORT_FIND_PACKAGE_NAME`.

+ 9 - 0
Source/cmExperimental.cxx

@@ -19,6 +19,15 @@ namespace {
  * up-to-date.
  * up-to-date.
  */
  */
 cmExperimental::FeatureData LookupTable[] = {
 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
   { "WindowsKernelModeDriver",
   { "WindowsKernelModeDriver",
     "5c2d848d-4efa-4529-a768-efd57171bf68",
     "5c2d848d-4efa-4529-a768-efd57171bf68",

+ 1 - 0
Source/cmExperimental.h

@@ -15,6 +15,7 @@ class cmExperimental
 public:
 public:
   enum class Feature
   enum class Feature
   {
   {
+    ExportPackageDependencies,
     WindowsKernelModeDriver,
     WindowsKernelModeDriver,
 
 
     Sentinel,
     Sentinel,

+ 13 - 4
Source/cmExportCommand.cxx

@@ -17,6 +17,7 @@
 #include "cmArgumentParserTypes.h"
 #include "cmArgumentParserTypes.h"
 #include "cmCryptoHash.h"
 #include "cmCryptoHash.h"
 #include "cmExecutionStatus.h"
 #include "cmExecutionStatus.h"
+#include "cmExperimental.h"
 #include "cmExportBuildAndroidMKGenerator.h"
 #include "cmExportBuildAndroidMKGenerator.h"
 #include "cmExportBuildFileGenerator.h"
 #include "cmExportBuildFileGenerator.h"
 #include "cmExportSet.h"
 #include "cmExportSet.h"
@@ -83,12 +84,20 @@ bool cmExportCommand(std::vector<std::string> const& args,
       .Bind("CXX_MODULES_DIRECTORY"_s, &Arguments::CxxModulesDirectory);
       .Bind("CXX_MODULES_DIRECTORY"_s, &Arguments::CxxModulesDirectory);
 
 
   if (args[0] == "EXPORT") {
   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") {
   } else if (args[0] == "SETUP") {
     parser.Bind("SETUP"_s, &Arguments::ExportSetName);
     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);
     parser.Bind("TARGET"_s, &Arguments::TargetArgs);
   } else {
   } else {
     parser.Bind("TARGETS"_s, &Arguments::Targets);
     parser.Bind("TARGETS"_s, &Arguments::Targets);

+ 7 - 1
Source/cmInstallCommand.cxx

@@ -21,6 +21,7 @@
 #include "cmArgumentParser.h"
 #include "cmArgumentParser.h"
 #include "cmArgumentParserTypes.h"
 #include "cmArgumentParserTypes.h"
 #include "cmExecutionStatus.h"
 #include "cmExecutionStatus.h"
+#include "cmExperimental.h"
 #include "cmExportSet.h"
 #include "cmExportSet.h"
 #include "cmFileSet.h"
 #include "cmFileSet.h"
 #include "cmGeneratorExpression.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("EXPORT_LINK_INTERFACE_LIBRARIES"_s, exportOld);
   ica.Bind("FILE"_s, filename);
   ica.Bind("FILE"_s, filename);
   ica.Bind("CXX_MODULES_DIRECTORY"_s, cxx_modules_directory);
   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;
   std::vector<std::string> unknownArgs;
   ica.Parse(args, &unknownArgs);
   ica.Parse(args, &unknownArgs);

+ 1 - 0
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)
 cmake_minimum_required (VERSION 2.7.20090711)
 if(POLICY CMP0129)
 if(POLICY CMP0129)
   cmake_policy(SET CMP0129 NEW)
   cmake_policy(SET CMP0129 NEW)

+ 6 - 0
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\.$

+ 1 - 0
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)
 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMake)
 
 
 find_package(P1)
 find_package(P1)

+ 6 - 0
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\.$

+ 1 - 0
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)
 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMake)
 
 
 enable_language(CXX)
 enable_language(CXX)

+ 1 - 0
Tests/RunCMake/export/FindDependencyExportGate-result.txt

@@ -0,0 +1 @@
+1

+ 4 - 0
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\)$

+ 1 - 0
Tests/RunCMake/export/FindDependencyExportGate.cmake

@@ -0,0 +1 @@
+export(EXPORT mytargets EXPORT_PACKAGE_DEPENDENCIES)

+ 6 - 0
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\.$

+ 1 - 0
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)
 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMake)
 
 
 enable_language(CXX)
 enable_language(CXX)

+ 6 - 0
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\.$

+ 1 - 0
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)
 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMake)
 
 
 enable_language(CXX)
 enable_language(CXX)

+ 1 - 0
Tests/RunCMake/export/RunCMakeTest.cmake

@@ -19,6 +19,7 @@ run_cmake(UnknownExport)
 run_cmake(NamelinkOnlyExport)
 run_cmake(NamelinkOnlyExport)
 run_cmake(SeparateNamelinkExport)
 run_cmake(SeparateNamelinkExport)
 run_cmake(TryCompileExport)
 run_cmake(TryCompileExport)
+run_cmake(FindDependencyExportGate)
 run_cmake(FindDependencyExport)
 run_cmake(FindDependencyExport)
 run_cmake(FindDependencyExportStatic)
 run_cmake(FindDependencyExportStatic)
 run_cmake(FindDependencyExportShared)
 run_cmake(FindDependencyExportShared)

+ 6 - 0
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\.$

+ 1 - 0
Tests/RunCMake/install/EXPORT-FindDependencyExport.cmake

@@ -1,3 +1,4 @@
+set(CMAKE_EXPERIMENTAL_EXPORT_PACKAGE_DEPENDENCIES "1942b4fa-b2c5-4546-9385-83f254070067")
 enable_language(C)
 enable_language(C)
 
 
 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)

+ 1 - 0
Tests/RunCMake/install/EXPORT-FindDependencyExportGate-result.txt

@@ -0,0 +1 @@
+1

+ 4 - 0
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\)$

+ 1 - 0
Tests/RunCMake/install/EXPORT-FindDependencyExportGate.cmake

@@ -0,0 +1 @@
+install(EXPORT mylib-targets EXPORT_PACKAGE_DEPENDENCIES DESTINATION lib/cmake/mylib)

+ 1 - 0
Tests/RunCMake/install/RunCMakeTest.cmake

@@ -77,6 +77,7 @@ run_cmake(DIRECTORY-DESTINATION-bad)
 run_cmake(FILES-DESTINATION-bad)
 run_cmake(FILES-DESTINATION-bad)
 run_cmake(FILES-RENAME-bad)
 run_cmake(FILES-RENAME-bad)
 run_cmake(TARGETS-DESTINATION-bad)
 run_cmake(TARGETS-DESTINATION-bad)
+run_cmake(EXPORT-FindDependencyExportGate)
 run_cmake(EXPORT-OldIFace)
 run_cmake(EXPORT-OldIFace)
 run_cmake(EXPORT-UnknownExport)
 run_cmake(EXPORT-UnknownExport)
 run_cmake(EXPORT-NamelinkOnly)
 run_cmake(EXPORT-NamelinkOnly)