浏览代码

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
Joseph Snyder 4 年之前
父节点
当前提交
6dade88d1c
共有 2 个文件被更改,包括 41 次插入1 次删除
  1. 40 0
      Help/guide/tutorial/Adding Export Configuration.rst
  2. 1 1
      Help/guide/tutorial/Step12/CMakeLists.txt

+ 40 - 0
Help/guide/tutorial/Adding Export Configuration.rst

@@ -82,6 +82,46 @@ bottom of the top-level ``CMakeLists.txt``:
   :name: CMakeLists.txt-install-Config.cmake
   :name: CMakeLists.txt-install-Config.cmake
   :language: cmake
   :language: cmake
   :start-after: # install the configuration targets
   :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
   :end-before: # generate the export
 
 
 At this point, we have generated a relocatable CMake Configuration for our
 At this point, we have generated a relocatable CMake Configuration for our

+ 1 - 1
Help/guide/tutorial/Step12/CMakeLists.txt

@@ -107,7 +107,7 @@ write_basic_package_version_file(
   COMPATIBILITY AnyNewerVersion
   COMPATIBILITY AnyNewerVersion
 )
 )
 
 
-# install the configuration file
+# install the generated configuration files
 install(FILES
 install(FILES
   ${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfig.cmake
   ${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfig.cmake
   ${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfigVersion.cmake
   ${CMAKE_CURRENT_BINARY_DIR}/MathFunctionsConfigVersion.cmake