From 3a739d4dcb460a2c23b78649d477f6a91b825de6 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 12 Mar 2024 13:12:59 -0400 Subject: 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 --- Help/command/export.rst | 8 ++++++- Help/command/install.rst | 4 +++- Help/dev/experimental.rst | 25 ++++++++++++++++++++++ Help/prop_tgt/EXPORT_FIND_PACKAGE_NAME.rst | 4 +++- Help/release/3.29.rst | 20 +++-------------- Help/variable/CMAKE_EXPORT_FIND_PACKAGE_NAME.rst | 4 +++- Source/cmExperimental.cxx | 9 ++++++++ Source/cmExperimental.h | 1 + Source/cmExportCommand.cxx | 17 +++++++++++---- Source/cmInstallCommand.cxx | 8 ++++++- Tests/ExportImport/Export/CMakeLists.txt | 1 + .../export/FindDependencyExport-stderr.txt | 6 ++++++ Tests/RunCMake/export/FindDependencyExport.cmake | 1 + .../FindDependencyExportFetchContent-stderr.txt | 6 ++++++ .../export/FindDependencyExportFetchContent.cmake | 1 + .../export/FindDependencyExportGate-result.txt | 1 + .../export/FindDependencyExportGate-stderr.txt | 4 ++++ .../RunCMake/export/FindDependencyExportGate.cmake | 1 + .../export/FindDependencyExportShared-stderr.txt | 6 ++++++ .../export/FindDependencyExportShared.cmake | 1 + .../export/FindDependencyExportStatic-stderr.txt | 6 ++++++ .../export/FindDependencyExportStatic.cmake | 1 + Tests/RunCMake/export/RunCMakeTest.cmake | 1 + .../install/EXPORT-FindDependencyExport-stderr.txt | 6 ++++++ .../install/EXPORT-FindDependencyExport.cmake | 1 + .../EXPORT-FindDependencyExportGate-result.txt | 1 + .../EXPORT-FindDependencyExportGate-stderr.txt | 4 ++++ .../install/EXPORT-FindDependencyExportGate.cmake | 1 + Tests/RunCMake/install/RunCMakeTest.cmake | 1 + 29 files changed, 124 insertions(+), 26 deletions(-) create mode 100644 Tests/RunCMake/export/FindDependencyExport-stderr.txt create mode 100644 Tests/RunCMake/export/FindDependencyExportFetchContent-stderr.txt create mode 100644 Tests/RunCMake/export/FindDependencyExportGate-result.txt create mode 100644 Tests/RunCMake/export/FindDependencyExportGate-stderr.txt create mode 100644 Tests/RunCMake/export/FindDependencyExportGate.cmake create mode 100644 Tests/RunCMake/export/FindDependencyExportShared-stderr.txt create mode 100644 Tests/RunCMake/export/FindDependencyExportStatic-stderr.txt create mode 100644 Tests/RunCMake/install/EXPORT-FindDependencyExport-stderr.txt create mode 100644 Tests/RunCMake/install/EXPORT-FindDependencyExportGate-result.txt create mode 100644 Tests/RunCMake/install/EXPORT-FindDependencyExportGate-stderr.txt create mode 100644 Tests/RunCMake/install/EXPORT-FindDependencyExportGate.cmake 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 ```` 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 `` + .. 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)`. ```` 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 `. -* 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 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 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 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) -- cgit v0.12