<!DOCTYPE html> | |
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> | |
<head> | |
<meta charset="utf-8" /> | |
<title>find_file — CMake 3.23.1 Documentation</title> | |
<link rel="stylesheet" href="../_static/cmake.css" type="text/css" /> | |
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> | |
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> | |
<script type="text/javascript" src="../_static/jquery.js"></script> | |
<script type="text/javascript" src="../_static/underscore.js"></script> | |
<script type="text/javascript" src="../_static/doctools.js"></script> | |
<script type="text/javascript" src="../_static/language_data.js"></script> | |
<link rel="shortcut icon" href="../_static/cmake-favicon.ico"/> | |
<link rel="index" title="Index" href="../genindex.html" /> | |
<link rel="search" title="Search" href="../search.html" /> | |
<link rel="next" title="find_library" href="find_library.html" /> | |
<link rel="prev" title="file" href="file.html" /> | |
</head><body> | |
<div class="related" role="navigation" aria-label="related navigation"> | |
<h3>Navigation</h3> | |
<ul> | |
<li class="right" style="margin-right: 10px"> | |
<a href="../genindex.html" title="General Index" | |
accesskey="I">index</a></li> | |
<li class="right" > | |
<a href="find_library.html" title="find_library" | |
accesskey="N">next</a> |</li> | |
<li class="right" > | |
<a href="file.html" title="file" | |
accesskey="P">previous</a> |</li> | |
<li> | |
<img src="../_static/cmake-logo-16.png" alt="" | |
style="vertical-align: middle; margin-top: -2px" /> | |
</li> | |
<li> | |
<a href="https://cmake.org/">CMake</a> » | |
</li> | |
<li> | |
<a href="../index.html">3.23.1 Documentation</a> » | |
</li> | |
<li class="nav-item nav-item-1"><a href="../manual/cmake-commands.7.html" accesskey="U">cmake-commands(7)</a> »</li> | |
</ul> | |
</div> | |
<div class="document"> | |
<div class="documentwrapper"> | |
<div class="bodywrapper"> | |
<div class="body" role="main"> | |
<div class="section" id="find-file"> | |
<span id="command:find_file"></span><h1>find_file<a class="headerlink" href="#find-file" title="Permalink to this headline">ΒΆ</a></h1> | |
<p>A short-hand signature is:</p> | |
<pre class="literal-block">find_file (<VAR> name1 [path1 path2 ...])</pre> | |
<p>The general signature is:</p> | |
<pre class="literal-block">find_file ( | |
<VAR> | |
name | NAMES name1 [name2 ...] | |
[HINTS [path | ENV var]... ] | |
[PATHS [path | ENV var]... ] | |
[PATH_SUFFIXES suffix1 [suffix2 ...]] | |
[DOC "cache documentation string"] | |
[NO_CACHE] | |
[REQUIRED] | |
[NO_DEFAULT_PATH] | |
[NO_PACKAGE_ROOT_PATH] | |
[NO_CMAKE_PATH] | |
[NO_CMAKE_ENVIRONMENT_PATH] | |
[NO_SYSTEM_ENVIRONMENT_PATH] | |
[NO_CMAKE_SYSTEM_PATH] | |
[CMAKE_FIND_ROOT_PATH_BOTH | | |
ONLY_CMAKE_FIND_ROOT_PATH | | |
NO_CMAKE_FIND_ROOT_PATH] | |
)</pre> | |
<p>This command is used to find a full path to named file. | |
A cache entry, or a normal variable if <code class="docutils literal notranslate"><span class="pre">NO_CACHE</span></code> is specified, | |
named by <code class="docutils literal notranslate"><span class="pre"><VAR></span></code> is created to store the result of this command. | |
If the full path to a file is found the result is stored in the variable | |
and the search will not be repeated unless the variable is cleared. | |
If nothing is found, the result will be <code class="docutils literal notranslate"><span class="pre"><VAR>-NOTFOUND</span></code>.</p> | |
<p>Options include:</p> | |
<dl> | |
<dt><code class="docutils literal notranslate"><span class="pre">NAMES</span></code></dt><dd><p>Specify one or more possible names for the full path to a file.</p> | |
<p>When using this to specify names with and without a version | |
suffix, we recommend specifying the unversioned name first | |
so that locally-built packages can be found before those | |
provided by distributions.</p> | |
</dd> | |
<dt><code class="docutils literal notranslate"><span class="pre">HINTS</span></code>, <code class="docutils literal notranslate"><span class="pre">PATHS</span></code></dt><dd><p>Specify directories to search in addition to the default locations. | |
The <code class="docutils literal notranslate"><span class="pre">ENV</span> <span class="pre">var</span></code> sub-option reads paths from a system environment | |
variable.</p> | |
</dd> | |
<dt><code class="docutils literal notranslate"><span class="pre">PATH_SUFFIXES</span></code></dt><dd><p>Specify additional subdirectories to check below each directory | |
location otherwise considered.</p> | |
</dd> | |
<dt><code class="docutils literal notranslate"><span class="pre">DOC</span></code></dt><dd><p>Specify the documentation string for the <code class="docutils literal notranslate"><span class="pre"><VAR></span></code> cache entry.</p> | |
</dd> | |
<dt><code class="docutils literal notranslate"><span class="pre">NO_CACHE</span></code></dt><dd><div class="versionadded"> | |
<p><span class="versionmodified added">New in version 3.21.</span></p> | |
</div> | |
<p>The result of the search will be stored in a normal variable rather than | |
a cache entry.</p> | |
<div class="admonition note"> | |
<p class="admonition-title">Note</p> | |
<p>If the variable is already set before the call (as a normal or cache | |
variable) then the search will not occur.</p> | |
</div> | |
<div class="admonition warning"> | |
<p class="admonition-title">Warning</p> | |
<p>This option should be used with caution because it can greatly increase | |
the cost of repeated configure steps.</p> | |
</div> | |
</dd> | |
<dt><code class="docutils literal notranslate"><span class="pre">REQUIRED</span></code></dt><dd><div class="versionadded"> | |
<p><span class="versionmodified added">New in version 3.18.</span></p> | |
</div> | |
<p>Stop processing with an error message if nothing is found, otherwise | |
the search will be attempted again the next time find_file is invoked | |
with the same variable.</p> | |
</dd> | |
</dl> | |
<p>If <code class="docutils literal notranslate"><span class="pre">NO_DEFAULT_PATH</span></code> is specified, then no additional paths are | |
added to the search. | |
If <code class="docutils literal notranslate"><span class="pre">NO_DEFAULT_PATH</span></code> is not specified, the search process is as follows:</p> | |
<ol class="arabic"> | |
<li><div class="versionadded"> | |
<p><span class="versionmodified added">New in version 3.12: </span>If called from within a find module or any other script loaded by a call to | |
<span class="target" id="index-0-command:find_package"></span><a class="reference internal" href="find_package.html#command:find_package" title="find_package"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">find_package(<PackageName>)</span></code></a>, search prefixes unique to the | |
current package being found. Specifically, look in the | |
<span class="target" id="index-0-variable:<PackageName>_ROOT"></span><a class="reference internal" href="../variable/PackageName_ROOT.html#variable:<PackageName>_ROOT" title="<PackageName>_ROOT"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre"><PackageName>_ROOT</span></code></a> CMake variable and the | |
<span class="target" id="index-0-envvar:<PackageName>_ROOT"></span><a class="reference internal" href="../envvar/PackageName_ROOT.html#envvar:<PackageName>_ROOT" title="<PackageName>_ROOT"><code class="xref cmake cmake-envvar docutils literal notranslate"><span class="pre"><PackageName>_ROOT</span></code></a> environment variable. | |
The package root variables are maintained as a stack, so if called from | |
nested find modules or config packages, root paths from the parent's find | |
module or config package will be searched after paths from the current | |
module or package. In other words, the search order would be | |
<code class="docutils literal notranslate"><span class="pre"><CurrentPackage>_ROOT</span></code>, <code class="docutils literal notranslate"><span class="pre">ENV{<CurrentPackage>_ROOT}</span></code>, | |
<code class="docutils literal notranslate"><span class="pre"><ParentPackage>_ROOT</span></code>, <code class="docutils literal notranslate"><span class="pre">ENV{<ParentPackage>_ROOT}</span></code>, etc. | |
This can be skipped if <code class="docutils literal notranslate"><span class="pre">NO_PACKAGE_ROOT_PATH</span></code> is passed or by setting | |
the <span class="target" id="index-0-variable:CMAKE_FIND_USE_PACKAGE_ROOT_PATH"></span><a class="reference internal" href="../variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.html#variable:CMAKE_FIND_USE_PACKAGE_ROOT_PATH" title="CMAKE_FIND_USE_PACKAGE_ROOT_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_FIND_USE_PACKAGE_ROOT_PATH</span></code></a> to <code class="docutils literal notranslate"><span class="pre">FALSE</span></code>. | |
See policy <span class="target" id="index-0-policy:CMP0074"></span><a class="reference internal" href="../policy/CMP0074.html#policy:CMP0074" title="CMP0074"><code class="xref cmake cmake-policy docutils literal notranslate"><span class="pre">CMP0074</span></code></a>.</p> | |
</div> | |
<ul class="simple"> | |
<li><p><code class="docutils literal notranslate"><span class="pre"><prefix>/include/<arch></span></code> if <span class="target" id="index-0-variable:CMAKE_LIBRARY_ARCHITECTURE"></span><a class="reference internal" href="../variable/CMAKE_LIBRARY_ARCHITECTURE.html#variable:CMAKE_LIBRARY_ARCHITECTURE" title="CMAKE_LIBRARY_ARCHITECTURE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_LIBRARY_ARCHITECTURE</span></code></a> | |
is set, and <code class="docutils literal notranslate"><span class="pre"><prefix>/include</span></code> for each <code class="docutils literal notranslate"><span class="pre"><prefix></span></code> in the | |
<span class="target" id="index-1-variable:<PackageName>_ROOT"></span><a class="reference internal" href="../variable/PackageName_ROOT.html#variable:<PackageName>_ROOT" title="<PackageName>_ROOT"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre"><PackageName>_ROOT</span></code></a> CMake variable and the | |
<span class="target" id="index-1-envvar:<PackageName>_ROOT"></span><a class="reference internal" href="../envvar/PackageName_ROOT.html#envvar:<PackageName>_ROOT" title="<PackageName>_ROOT"><code class="xref cmake cmake-envvar docutils literal notranslate"><span class="pre"><PackageName>_ROOT</span></code></a> environment variable if | |
called from within a find module loaded by | |
<span class="target" id="index-1-command:find_package"></span><a class="reference internal" href="find_package.html#command:find_package" title="find_package"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">find_package(<PackageName>)</span></code></a></p></li> | |
</ul> | |
</li> | |
<li><p>Search paths specified in cmake-specific cache variables. | |
These are intended to be used on the command line with a <code class="docutils literal notranslate"><span class="pre">-DVAR=value</span></code>. | |
The values are interpreted as <a class="reference internal" href="../manual/cmake-language.7.html#cmake-language-lists"><span class="std std-ref">semicolon-separated lists</span></a>. | |
This can be skipped if <code class="docutils literal notranslate"><span class="pre">NO_CMAKE_PATH</span></code> is passed or by setting the | |
<span class="target" id="index-0-variable:CMAKE_FIND_USE_CMAKE_PATH"></span><a class="reference internal" href="../variable/CMAKE_FIND_USE_CMAKE_PATH.html#variable:CMAKE_FIND_USE_CMAKE_PATH" title="CMAKE_FIND_USE_CMAKE_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_FIND_USE_CMAKE_PATH</span></code></a> to <code class="docutils literal notranslate"><span class="pre">FALSE</span></code>.</p> | |
<ul class="simple"> | |
<li><p><code class="docutils literal notranslate"><span class="pre"><prefix>/include/<arch></span></code> if <span class="target" id="index-1-variable:CMAKE_LIBRARY_ARCHITECTURE"></span><a class="reference internal" href="../variable/CMAKE_LIBRARY_ARCHITECTURE.html#variable:CMAKE_LIBRARY_ARCHITECTURE" title="CMAKE_LIBRARY_ARCHITECTURE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_LIBRARY_ARCHITECTURE</span></code></a> | |
is set, and <code class="docutils literal notranslate"><span class="pre"><prefix>/include</span></code> for each <code class="docutils literal notranslate"><span class="pre"><prefix></span></code> in <span class="target" id="index-0-variable:CMAKE_PREFIX_PATH"></span><a class="reference internal" href="../variable/CMAKE_PREFIX_PATH.html#variable:CMAKE_PREFIX_PATH" title="CMAKE_PREFIX_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_PREFIX_PATH</span></code></a></p></li> | |
<li><p><span class="target" id="index-0-variable:CMAKE_INCLUDE_PATH"></span><a class="reference internal" href="../variable/CMAKE_INCLUDE_PATH.html#variable:CMAKE_INCLUDE_PATH" title="CMAKE_INCLUDE_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_INCLUDE_PATH</span></code></a></p></li> | |
<li><p><span class="target" id="index-0-variable:CMAKE_FRAMEWORK_PATH"></span><a class="reference internal" href="../variable/CMAKE_FRAMEWORK_PATH.html#variable:CMAKE_FRAMEWORK_PATH" title="CMAKE_FRAMEWORK_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_FRAMEWORK_PATH</span></code></a></p></li> | |
</ul> | |
</li> | |
<li><p>Search paths specified in cmake-specific environment variables. | |
These are intended to be set in the user's shell configuration, | |
and therefore use the host's native path separator | |
(<code class="docutils literal notranslate"><span class="pre">;</span></code> on Windows and <code class="docutils literal notranslate"><span class="pre">:</span></code> on UNIX). | |
This can be skipped if <code class="docutils literal notranslate"><span class="pre">NO_CMAKE_ENVIRONMENT_PATH</span></code> is passed or | |
by setting the <span class="target" id="index-0-variable:CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH"></span><a class="reference internal" href="../variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.html#variable:CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH" title="CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH</span></code></a> to <code class="docutils literal notranslate"><span class="pre">FALSE</span></code>.</p> | |
<ul class="simple"> | |
<li><p><code class="docutils literal notranslate"><span class="pre"><prefix>/include/<arch></span></code> if <span class="target" id="index-2-variable:CMAKE_LIBRARY_ARCHITECTURE"></span><a class="reference internal" href="../variable/CMAKE_LIBRARY_ARCHITECTURE.html#variable:CMAKE_LIBRARY_ARCHITECTURE" title="CMAKE_LIBRARY_ARCHITECTURE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_LIBRARY_ARCHITECTURE</span></code></a> | |
is set, and <code class="docutils literal notranslate"><span class="pre"><prefix>/include</span></code> for each <code class="docutils literal notranslate"><span class="pre"><prefix></span></code> in <span class="target" id="index-1-variable:CMAKE_PREFIX_PATH"></span><a class="reference internal" href="../variable/CMAKE_PREFIX_PATH.html#variable:CMAKE_PREFIX_PATH" title="CMAKE_PREFIX_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_PREFIX_PATH</span></code></a></p></li> | |
<li><p><span class="target" id="index-1-variable:CMAKE_INCLUDE_PATH"></span><a class="reference internal" href="../variable/CMAKE_INCLUDE_PATH.html#variable:CMAKE_INCLUDE_PATH" title="CMAKE_INCLUDE_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_INCLUDE_PATH</span></code></a></p></li> | |
<li><p><span class="target" id="index-1-variable:CMAKE_FRAMEWORK_PATH"></span><a class="reference internal" href="../variable/CMAKE_FRAMEWORK_PATH.html#variable:CMAKE_FRAMEWORK_PATH" title="CMAKE_FRAMEWORK_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_FRAMEWORK_PATH</span></code></a></p></li> | |
</ul> | |
</li> | |
<li><p>Search the paths specified by the <code class="docutils literal notranslate"><span class="pre">HINTS</span></code> option. | |
These should be paths computed by system introspection, such as a | |
hint provided by the location of another item already found. | |
Hard-coded guesses should be specified with the <code class="docutils literal notranslate"><span class="pre">PATHS</span></code> option.</p></li> | |
<li><p>Search the standard system environment variables. | |
This can be skipped if <code class="docutils literal notranslate"><span class="pre">NO_SYSTEM_ENVIRONMENT_PATH</span></code> is passed or by | |
setting the <span class="target" id="index-0-variable:CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH"></span><a class="reference internal" href="../variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.html#variable:CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH" title="CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH</span></code></a> to <code class="docutils literal notranslate"><span class="pre">FALSE</span></code>.</p> | |
<ul class="simple"> | |
<li><p>The directories in <code class="docutils literal notranslate"><span class="pre">INCLUDE</span></code> | |
and <code class="docutils literal notranslate"><span class="pre">PATH</span></code>.</p></li> | |
<li><p>On Windows hosts: | |
<code class="docutils literal notranslate"><span class="pre"><prefix>/include/<arch></span></code> if <span class="target" id="index-3-variable:CMAKE_LIBRARY_ARCHITECTURE"></span><a class="reference internal" href="../variable/CMAKE_LIBRARY_ARCHITECTURE.html#variable:CMAKE_LIBRARY_ARCHITECTURE" title="CMAKE_LIBRARY_ARCHITECTURE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_LIBRARY_ARCHITECTURE</span></code></a> | |
is set, and <code class="docutils literal notranslate"><span class="pre"><prefix>/include</span></code> for each <code class="docutils literal notranslate"><span class="pre"><prefix>/[s]bin</span></code> in <code class="docutils literal notranslate"><span class="pre">PATH</span></code>, and | |
<code class="docutils literal notranslate"><span class="pre"><entry>/include</span></code> for other entries in <code class="docutils literal notranslate"><span class="pre">PATH</span></code>.</p></li> | |
</ul> | |
</li> | |
<li><p>Search cmake variables defined in the Platform files | |
for the current system. This can be skipped if <code class="docutils literal notranslate"><span class="pre">NO_CMAKE_SYSTEM_PATH</span></code> | |
is passed or by setting the <span class="target" id="index-0-variable:CMAKE_FIND_USE_CMAKE_SYSTEM_PATH"></span><a class="reference internal" href="../variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.html#variable:CMAKE_FIND_USE_CMAKE_SYSTEM_PATH" title="CMAKE_FIND_USE_CMAKE_SYSTEM_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_FIND_USE_CMAKE_SYSTEM_PATH</span></code></a> | |
to <code class="docutils literal notranslate"><span class="pre">FALSE</span></code>.</p> | |
<ul class="simple"> | |
<li><p><code class="docutils literal notranslate"><span class="pre"><prefix>/include/<arch></span></code> if <span class="target" id="index-4-variable:CMAKE_LIBRARY_ARCHITECTURE"></span><a class="reference internal" href="../variable/CMAKE_LIBRARY_ARCHITECTURE.html#variable:CMAKE_LIBRARY_ARCHITECTURE" title="CMAKE_LIBRARY_ARCHITECTURE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_LIBRARY_ARCHITECTURE</span></code></a> | |
is set, and <code class="docutils literal notranslate"><span class="pre"><prefix>/include</span></code> for each <code class="docutils literal notranslate"><span class="pre"><prefix></span></code> in | |
<span class="target" id="index-0-variable:CMAKE_SYSTEM_PREFIX_PATH"></span><a class="reference internal" href="../variable/CMAKE_SYSTEM_PREFIX_PATH.html#variable:CMAKE_SYSTEM_PREFIX_PATH" title="CMAKE_SYSTEM_PREFIX_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_SYSTEM_PREFIX_PATH</span></code></a></p></li> | |
<li><p><span class="target" id="index-0-variable:CMAKE_SYSTEM_INCLUDE_PATH"></span><a class="reference internal" href="../variable/CMAKE_SYSTEM_INCLUDE_PATH.html#variable:CMAKE_SYSTEM_INCLUDE_PATH" title="CMAKE_SYSTEM_INCLUDE_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_SYSTEM_INCLUDE_PATH</span></code></a></p></li> | |
<li><p><span class="target" id="index-0-variable:CMAKE_SYSTEM_FRAMEWORK_PATH"></span><a class="reference internal" href="../variable/CMAKE_SYSTEM_FRAMEWORK_PATH.html#variable:CMAKE_SYSTEM_FRAMEWORK_PATH" title="CMAKE_SYSTEM_FRAMEWORK_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_SYSTEM_FRAMEWORK_PATH</span></code></a></p></li> | |
</ul> | |
<p>The platform paths that these variables contain are locations that | |
typically include installed software. An example being <code class="docutils literal notranslate"><span class="pre">/usr/local</span></code> for | |
UNIX based platforms.</p> | |
</li> | |
<li><p>Search the paths specified by the PATHS option | |
or in the short-hand version of the command. | |
These are typically hard-coded guesses.</p></li> | |
</ol> | |
<p>The <span class="target" id="index-0-variable:CMAKE_IGNORE_PATH"></span><a class="reference internal" href="../variable/CMAKE_IGNORE_PATH.html#variable:CMAKE_IGNORE_PATH" title="CMAKE_IGNORE_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_IGNORE_PATH</span></code></a>, <span class="target" id="index-0-variable:CMAKE_IGNORE_PREFIX_PATH"></span><a class="reference internal" href="../variable/CMAKE_IGNORE_PREFIX_PATH.html#variable:CMAKE_IGNORE_PREFIX_PATH" title="CMAKE_IGNORE_PREFIX_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_IGNORE_PREFIX_PATH</span></code></a>, | |
<span class="target" id="index-0-variable:CMAKE_SYSTEM_IGNORE_PATH"></span><a class="reference internal" href="../variable/CMAKE_SYSTEM_IGNORE_PATH.html#variable:CMAKE_SYSTEM_IGNORE_PATH" title="CMAKE_SYSTEM_IGNORE_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_SYSTEM_IGNORE_PATH</span></code></a> and | |
<span class="target" id="index-0-variable:CMAKE_SYSTEM_IGNORE_PREFIX_PATH"></span><a class="reference internal" href="../variable/CMAKE_SYSTEM_IGNORE_PREFIX_PATH.html#variable:CMAKE_SYSTEM_IGNORE_PREFIX_PATH" title="CMAKE_SYSTEM_IGNORE_PREFIX_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_SYSTEM_IGNORE_PREFIX_PATH</span></code></a> variables can also cause some | |
of the above locations to be ignored.</p> | |
<div class="versionadded"> | |
<p><span class="versionmodified added">New in version 3.16: </span>Added <code class="docutils literal notranslate"><span class="pre">CMAKE_FIND_USE_<CATEGORY>_PATH</span></code> variables to globally disable | |
various search locations.</p> | |
</div> | |
<p>On macOS the <span class="target" id="index-0-variable:CMAKE_FIND_FRAMEWORK"></span><a class="reference internal" href="../variable/CMAKE_FIND_FRAMEWORK.html#variable:CMAKE_FIND_FRAMEWORK" title="CMAKE_FIND_FRAMEWORK"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_FIND_FRAMEWORK</span></code></a> and | |
<span class="target" id="index-0-variable:CMAKE_FIND_APPBUNDLE"></span><a class="reference internal" href="../variable/CMAKE_FIND_APPBUNDLE.html#variable:CMAKE_FIND_APPBUNDLE" title="CMAKE_FIND_APPBUNDLE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_FIND_APPBUNDLE</span></code></a> variables determine the order of | |
preference between Apple-style and unix-style package components.</p> | |
<p>The CMake variable <span class="target" id="index-0-variable:CMAKE_FIND_ROOT_PATH"></span><a class="reference internal" href="../variable/CMAKE_FIND_ROOT_PATH.html#variable:CMAKE_FIND_ROOT_PATH" title="CMAKE_FIND_ROOT_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_FIND_ROOT_PATH</span></code></a> specifies one or more | |
directories to be prepended to all other search directories. This | |
effectively "re-roots" the entire search under given locations. | |
Paths which are descendants of the <span class="target" id="index-0-variable:CMAKE_STAGING_PREFIX"></span><a class="reference internal" href="../variable/CMAKE_STAGING_PREFIX.html#variable:CMAKE_STAGING_PREFIX" title="CMAKE_STAGING_PREFIX"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_STAGING_PREFIX</span></code></a> are excluded | |
from this re-rooting, because that variable is always a path on the host system. | |
By default the <span class="target" id="index-1-variable:CMAKE_FIND_ROOT_PATH"></span><a class="reference internal" href="../variable/CMAKE_FIND_ROOT_PATH.html#variable:CMAKE_FIND_ROOT_PATH" title="CMAKE_FIND_ROOT_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_FIND_ROOT_PATH</span></code></a> is empty.</p> | |
<p>The <span class="target" id="index-0-variable:CMAKE_SYSROOT"></span><a class="reference internal" href="../variable/CMAKE_SYSROOT.html#variable:CMAKE_SYSROOT" title="CMAKE_SYSROOT"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_SYSROOT</span></code></a> variable can also be used to specify exactly one | |
directory to use as a prefix. Setting <span class="target" id="index-1-variable:CMAKE_SYSROOT"></span><a class="reference internal" href="../variable/CMAKE_SYSROOT.html#variable:CMAKE_SYSROOT" title="CMAKE_SYSROOT"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_SYSROOT</span></code></a> also has other | |
effects. See the documentation for that variable for more.</p> | |
<p>These variables are especially useful when cross-compiling to | |
point to the root directory of the target environment and CMake will | |
search there too. By default at first the directories listed in | |
<span class="target" id="index-2-variable:CMAKE_FIND_ROOT_PATH"></span><a class="reference internal" href="../variable/CMAKE_FIND_ROOT_PATH.html#variable:CMAKE_FIND_ROOT_PATH" title="CMAKE_FIND_ROOT_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_FIND_ROOT_PATH</span></code></a> are searched, then the <span class="target" id="index-2-variable:CMAKE_SYSROOT"></span><a class="reference internal" href="../variable/CMAKE_SYSROOT.html#variable:CMAKE_SYSROOT" title="CMAKE_SYSROOT"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_SYSROOT</span></code></a> | |
directory is searched, and then the non-rooted directories will be | |
searched. The default behavior can be adjusted by setting | |
<span class="target" id="index-0-variable:CMAKE_FIND_ROOT_PATH_MODE_INCLUDE"></span><a class="reference internal" href="../variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.html#variable:CMAKE_FIND_ROOT_PATH_MODE_INCLUDE" title="CMAKE_FIND_ROOT_PATH_MODE_INCLUDE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_FIND_ROOT_PATH_MODE_INCLUDE</span></code></a>. This behavior can be manually | |
overridden on a per-call basis using options:</p> | |
<dl class="simple"> | |
<dt><code class="docutils literal notranslate"><span class="pre">CMAKE_FIND_ROOT_PATH_BOTH</span></code></dt><dd><p>Search in the order described above.</p> | |
</dd> | |
<dt><code class="docutils literal notranslate"><span class="pre">NO_CMAKE_FIND_ROOT_PATH</span></code></dt><dd><p>Do not use the <span class="target" id="index-3-variable:CMAKE_FIND_ROOT_PATH"></span><a class="reference internal" href="../variable/CMAKE_FIND_ROOT_PATH.html#variable:CMAKE_FIND_ROOT_PATH" title="CMAKE_FIND_ROOT_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_FIND_ROOT_PATH</span></code></a> variable.</p> | |
</dd> | |
<dt><code class="docutils literal notranslate"><span class="pre">ONLY_CMAKE_FIND_ROOT_PATH</span></code></dt><dd><p>Search only the re-rooted directories and directories below | |
<span class="target" id="index-1-variable:CMAKE_STAGING_PREFIX"></span><a class="reference internal" href="../variable/CMAKE_STAGING_PREFIX.html#variable:CMAKE_STAGING_PREFIX" title="CMAKE_STAGING_PREFIX"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_STAGING_PREFIX</span></code></a>.</p> | |
</dd> | |
</dl> | |
<p>The default search order is designed to be most-specific to | |
least-specific for common use cases. | |
Projects may override the order by simply calling the command | |
multiple times and using the <code class="docutils literal notranslate"><span class="pre">NO_*</span></code> options:</p> | |
<pre class="literal-block">find_file (<VAR> NAMES name PATHS paths... NO_DEFAULT_PATH) | |
find_file (<VAR> NAMES name)</pre> | |
<p>Once one of the calls succeeds the result variable will be set | |
and stored in the cache so that no call will search again.</p> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="sphinxsidebar" role="navigation" aria-label="main navigation"> | |
<div class="sphinxsidebarwrapper"> | |
<h4>Previous topic</h4> | |
<p class="topless"><a href="file.html" | |
title="previous chapter">file</a></p> | |
<h4>Next topic</h4> | |
<p class="topless"><a href="find_library.html" | |
title="next chapter">find_library</a></p> | |
<div role="note" aria-label="source link"> | |
<h3>This Page</h3> | |
<ul class="this-page-menu"> | |
<li><a href="../_sources/command/find_file.rst.txt" | |
rel="nofollow">Show Source</a></li> | |
</ul> | |
</div> | |
<div id="searchbox" style="display: none" role="search"> | |
<h3 id="searchlabel">Quick search</h3> | |
<div class="searchformwrapper"> | |
<form class="search" action="../search.html" method="get"> | |
<input type="text" name="q" aria-labelledby="searchlabel" /> | |
<input type="submit" value="Go" /> | |
</form> | |
</div> | |
</div> | |
<script type="text/javascript">$('#searchbox').show(0);</script> | |
</div> | |
</div> | |
<div class="clearer"></div> | |
</div> | |
<div class="related" role="navigation" aria-label="related navigation"> | |
<h3>Navigation</h3> | |
<ul> | |
<li class="right" style="margin-right: 10px"> | |
<a href="../genindex.html" title="General Index" | |
>index</a></li> | |
<li class="right" > | |
<a href="find_library.html" title="find_library" | |
>next</a> |</li> | |
<li class="right" > | |
<a href="file.html" title="file" | |
>previous</a> |</li> | |
<li> | |
<img src="../_static/cmake-logo-16.png" alt="" | |
style="vertical-align: middle; margin-top: -2px" /> | |
</li> | |
<li> | |
<a href="https://cmake.org/">CMake</a> » | |
</li> | |
<li> | |
<a href="../index.html">3.23.1 Documentation</a> » | |
</li> | |
<li class="nav-item nav-item-1"><a href="../manual/cmake-commands.7.html" >cmake-commands(7)</a> »</li> | |
</ul> | |
</div> | |
<div class="footer" role="contentinfo"> | |
© Copyright 2000-2022 Kitware, Inc. and Contributors. | |
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2. | |
</div> | |
</body> | |
</html> |