# CMake module This module provides helper tools for generating cmake package files. ## Usage To use this module, just do: **`cmake = import('cmake')`**. The following functions will then be available as methods on the object with the name `cmake`. You can, of course, replace the name `cmake` with anything else. ### cmake.write_basic_package_version_file() This function is the equivalent of the corresponding [CMake function](https://cmake.org/cmake/help/v3.11/module/CMakePackageConfigHelpers.html#generating-a-package-version-file), it generates a `name` package version file. * `name`: the name of the package. * `version`: the version of the generated package file. * `compatibility`: a string indicating the kind of compatibility, the accepted values are `AnyNewerVersion`, `SameMajorVersion`, `SameMinorVersion` or `ExactVersion`. It defaults to `AnyNewerVersion`. Depending on your cmake installation some kind of compatibility may not be available. * `install_dir`: optional installation directory, it defaults to `$(libdir)/cmake/$(name)` Example: ```meson cmake = import('cmake') cmake.write_basic_package_version_file(name: 'myProject', version: '1.0.0') ``` ### cmake.configure_package_config_file() This function is the equivalent of the corresponding [CMake function](https://cmake.org/cmake/help/v3.11/module/CMakePackageConfigHelpers.html#generating-a-package-configuration-file), it generates a `name` package configuration file from the `input` template file. Just like the cmake function in this file the `@PACKAGE_INIT@` statement will be replaced by the appropriate piece of cmake code. The equivalent `PATH_VARS` argument is given through the `configuration` parameter. * `name`: the name of the package. * `input`: the template file where that will be treated for variable substitutions contained in `configuration`. * `install_dir`: optional installation directory, it defaults to `$(libdir)/cmake/$(name)`. * `configuration`: a `configuration_data` object that will be used for variable substitution in the template file. Example: meson.build: ```meson cmake = import('cmake') conf = configuration_data() conf.set_quoted('VAR', 'variable value') cmake.configure_package_config_file( name: 'myProject', input: 'myProject.cmake.in', configuration: conf ) ``` myProject.cmake.in: ```text @PACKAGE_INIT@ set(MYVAR VAR) ```