diff options
author | Joseph Snyder <joe.snyder@kitware.com> | 2021-09-30 18:43:28 (GMT) |
---|---|---|
committer | Joseph Snyder <joe.snyder@kitware.com> | 2021-09-30 18:43:28 (GMT) |
commit | 6dade88d1ccafc08539ec11b02770764b917f004 (patch) | |
tree | 8b871a65dd7284957873182092413e2ed4f7f83f /Help/guide | |
parent | 1bf25b5b5fe2b1c9c9667984c3cd0408244942a9 (diff) | |
download | CMake-6dade88d1ccafc08539ec11b02770764b917f004.zip CMake-6dade88d1ccafc08539ec11b02770764b917f004.tar.gz CMake-6dade88d1ccafc08539ec11b02770764b917f004.tar.bz2 |
Tutorial: Add documentation on Package helper functions
Add documentation for the configure_package_config_file() and
write_basic_package_version_file() commands.
Update the comment for the installation of those files to allow a
stopping point for the code display.
Issue: #22663
Diffstat (limited to 'Help/guide')
-rw-r--r-- | Help/guide/tutorial/Adding Export Configuration.rst | 40 | ||||
-rw-r--r-- | Help/guide/tutorial/Step12/CMakeLists.txt | 2 |
2 files changed, 41 insertions, 1 deletions
diff --git a/Help/guide/tutorial/Adding Export Configuration.rst b/Help/guide/tutorial/Adding Export Configuration.rst index b54c154..3bd6d64 100644 --- a/Help/guide/tutorial/Adding Export Configuration.rst +++ b/Help/guide/tutorial/Adding Export Configuration.rst @@ -82,6 +82,46 @@ bottom of the top-level ``CMakeLists.txt``: :name: CMakeLists.txt-install-Config.cmake :language: cmake :start-after: # install the configuration targets + :end-before: # generate the config file + + +Next, we execute the :command:`configure_package_config_file`. This command +will configure a provided file but with a few specific differences from the +standard :command:`configure_file` way. +To properly utilize this function, the input file should have a single line +with the text ``@PACKAGE_INIT@`` in addition to the content that is desired. +That variable will be replaced with a block of code which turns set values into +relative paths. These values which are new can be referenced by the same name +but prepended with a ``PACKAGE_`` prefix. + +.. literalinclude:: Step12/CMakeLists.txt + :caption: CMakeLists.txt + :name: CMakeLists.txt-configure-package-config.cmake + :language: cmake + :start-after: # install the configuration targets + :end-before: # generate the version file + +The :command:`write_basic_package_version_file` is next. This command writes +a file which is used by the "find_package" document the version and +compatibility of the desired package. Here, we use the ``Tutorial_VERSION_*`` +variables and say that it is compatible with ``AnyNewerVersion``, which +denotes that this version or any higher one are compatible with the requested +version. + +.. literalinclude:: Step12/CMakeLists.txt + :caption: CMakeLists.txt + :name: CMakeLists.txt-basic-version-file.cmake + :language: cmake + :start-after: # generate the version file + :end-before: # install the generated configuration files + +Finally, set both generated files to be installed: + +.. literalinclude:: Step12/CMakeLists.txt + :caption: CMakeLists.txt + :name: CMakeLists.txt-install-configured-files.cmake + :language: cmake + :start-after: # install the generated configuration files :end-before: # generate the export At this point, we have generated a relocatable CMake Configuration for our diff --git a/Help/guide/tutorial/Step12/CMakeLists.txt b/Help/guide/tutorial/Step12/CMakeLists.txt index 1b0c826..6c51b29 100644 --- a/Help/guide/tutorial/Step12/CMakeLists.txt +++ b/Help/guide/tutorial/Step12/CMakeLists.txt @@ -107,7 +107,7 @@ write_basic_package_version_file( COMPATIBILITY AnyNewerVersion ) -# install the configuration file +# install the generated configuration files install(FILES ${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfigVersion.cmake |