| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| |
| |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| |
| <title>string — CMake 3.8.2 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"> |
| var DOCUMENTATION_OPTIONS = { |
| URL_ROOT: '../', |
| VERSION: '3.8.2', |
| COLLAPSE_INDEX: false, |
| FILE_SUFFIX: '.html', |
| HAS_SOURCE: true, |
| SOURCELINK_SUFFIX: '.txt' |
| }; |
| </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> |
| <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="target_compile_definitions" href="target_compile_definitions.html" /> |
| <link rel="prev" title="source_group" href="source_group.html" /> |
| </head> |
| <body role="document"> |
| <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="target_compile_definitions.html" title="target_compile_definitions" |
| accesskey="N">next</a> |</li> |
| <li class="right" > |
| <a href="source_group.html" title="source_group" |
| 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.8.2 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="string"> |
| <span id="command:string"></span><h1><a class="toc-backref" href="#id1">string</a><a class="headerlink" href="#string" title="Permalink to this headline">¶</a></h1> |
| <div class="contents topic" id="contents"> |
| <p class="topic-title first">Contents</p> |
| <ul class="simple"> |
| <li><a class="reference internal" href="#string" id="id1">string</a><ul> |
| <li><a class="reference internal" href="#search-and-replace" id="id2">Search and Replace</a><ul> |
| <li><a class="reference internal" href="#find" id="id3">FIND</a></li> |
| <li><a class="reference internal" href="#replace" id="id4">REPLACE</a></li> |
| </ul> |
| </li> |
| <li><a class="reference internal" href="#regular-expressions" id="id5">Regular Expressions</a><ul> |
| <li><a class="reference internal" href="#regex-match" id="id6">REGEX MATCH</a></li> |
| <li><a class="reference internal" href="#regex-matchall" id="id7">REGEX MATCHALL</a></li> |
| <li><a class="reference internal" href="#regex-replace" id="id8">REGEX REPLACE</a></li> |
| <li><a class="reference internal" href="#regex-specification" id="id9">Regex Specification</a></li> |
| </ul> |
| </li> |
| <li><a class="reference internal" href="#manipulation" id="id10">Manipulation</a><ul> |
| <li><a class="reference internal" href="#append" id="id11">APPEND</a></li> |
| <li><a class="reference internal" href="#concat" id="id12">CONCAT</a></li> |
| <li><a class="reference internal" href="#tolower" id="id13">TOLOWER</a></li> |
| <li><a class="reference internal" href="#toupper" id="id14">TOUPPER</a></li> |
| <li><a class="reference internal" href="#length" id="id15">LENGTH</a></li> |
| <li><a class="reference internal" href="#substring" id="id16">SUBSTRING</a></li> |
| <li><a class="reference internal" href="#strip" id="id17">STRIP</a></li> |
| <li><a class="reference internal" href="#genex-strip" id="id18">GENEX_STRIP</a></li> |
| </ul> |
| </li> |
| <li><a class="reference internal" href="#comparison" id="id19">Comparison</a></li> |
| <li><a class="reference internal" href="#hashing" id="id20">Hashing</a></li> |
| <li><a class="reference internal" href="#generation" id="id21">Generation</a><ul> |
| <li><a class="reference internal" href="#ascii" id="id22">ASCII</a></li> |
| <li><a class="reference internal" href="#configure" id="id23">CONFIGURE</a></li> |
| <li><a class="reference internal" href="#random" id="id24">RANDOM</a></li> |
| <li><a class="reference internal" href="#timestamp" id="id25">TIMESTAMP</a></li> |
| <li><a class="reference internal" href="#uuid" id="id26">UUID</a></li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| <p>String operations.</p> |
| <div class="section" id="search-and-replace"> |
| <h2><a class="toc-backref" href="#id2">Search and Replace</a><a class="headerlink" href="#search-and-replace" title="Permalink to this headline">¶</a></h2> |
| <div class="section" id="find"> |
| <h3><a class="toc-backref" href="#id3">FIND</a><a class="headerlink" href="#find" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">FIND</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="o"><</span><span class="n">substring</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span> <span class="p">[</span><span class="n">REVERSE</span><span class="p">])</span> |
| </pre></div> |
| </div> |
| <p>Return the position where the given substring was found in |
| the supplied string. If the <code class="docutils literal"><span class="pre">REVERSE</span></code> flag was used, the command will |
| search for the position of the last occurrence of the specified |
| substring. If the substring is not found, a position of -1 is returned.</p> |
| </div> |
| <div class="section" id="replace"> |
| <h3><a class="toc-backref" href="#id4">REPLACE</a><a class="headerlink" href="#replace" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">REPLACE</span> <span class="o"><</span><span class="n">match_string</span><span class="o">></span> |
| <span class="o"><</span><span class="n">replace_string</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span> |
| <span class="o"><</span><span class="nb">input</span><span class="o">></span> <span class="p">[</span><span class="o"><</span><span class="nb">input</span><span class="o">>...</span><span class="p">])</span> |
| </pre></div> |
| </div> |
| <p>Replace all occurrences of <code class="docutils literal"><span class="pre">match_string</span></code> in the input |
| with <code class="docutils literal"><span class="pre">replace_string</span></code> and store the result in the output.</p> |
| </div> |
| </div> |
| <div class="section" id="regular-expressions"> |
| <h2><a class="toc-backref" href="#id5">Regular Expressions</a><a class="headerlink" href="#regular-expressions" title="Permalink to this headline">¶</a></h2> |
| <div class="section" id="regex-match"> |
| <h3><a class="toc-backref" href="#id6">REGEX MATCH</a><a class="headerlink" href="#regex-match" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">REGEX</span> <span class="n">MATCH</span> <span class="o"><</span><span class="n">regular_expression</span><span class="o">></span> |
| <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span> <span class="o"><</span><span class="nb">input</span><span class="o">></span> <span class="p">[</span><span class="o"><</span><span class="nb">input</span><span class="o">>...</span><span class="p">])</span> |
| </pre></div> |
| </div> |
| <p>Match the regular expression once and store the match in the output variable. |
| All <code class="docutils literal"><span class="pre"><input></span></code> arguments are concatenated before matching.</p> |
| </div> |
| <div class="section" id="regex-matchall"> |
| <h3><a class="toc-backref" href="#id7">REGEX MATCHALL</a><a class="headerlink" href="#regex-matchall" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">REGEX</span> <span class="n">MATCHALL</span> <span class="o"><</span><span class="n">regular_expression</span><span class="o">></span> |
| <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span> <span class="o"><</span><span class="nb">input</span><span class="o">></span> <span class="p">[</span><span class="o"><</span><span class="nb">input</span><span class="o">>...</span><span class="p">])</span> |
| </pre></div> |
| </div> |
| <p>Match the regular expression as many times as possible and store the matches |
| in the output variable as a list. |
| All <code class="docutils literal"><span class="pre"><input></span></code> arguments are concatenated before matching.</p> |
| </div> |
| <div class="section" id="regex-replace"> |
| <h3><a class="toc-backref" href="#id8">REGEX REPLACE</a><a class="headerlink" href="#regex-replace" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">REGEX</span> <span class="n">REPLACE</span> <span class="o"><</span><span class="n">regular_expression</span><span class="o">></span> |
| <span class="o"><</span><span class="n">replace_expression</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span> |
| <span class="o"><</span><span class="nb">input</span><span class="o">></span> <span class="p">[</span><span class="o"><</span><span class="nb">input</span><span class="o">>...</span><span class="p">])</span> |
| </pre></div> |
| </div> |
| <p>Match the regular expression as many times as possible and substitute the |
| replacement expression for the match in the output. |
| All <code class="docutils literal"><span class="pre"><input></span></code> arguments are concatenated before matching.</p> |
| <p>The replace expression may refer to paren-delimited subexpressions of the |
| match using <code class="docutils literal"><span class="pre">\1</span></code>, <code class="docutils literal"><span class="pre">\2</span></code>, ..., <code class="docutils literal"><span class="pre">\9</span></code>. Note that two backslashes (<code class="docutils literal"><span class="pre">\\1</span></code>) |
| are required in CMake code to get a backslash through argument parsing.</p> |
| </div> |
| <div class="section" id="regex-specification"> |
| <h3><a class="toc-backref" href="#id9">Regex Specification</a><a class="headerlink" href="#regex-specification" title="Permalink to this headline">¶</a></h3> |
| <p>The following characters have special meaning in regular expressions:</p> |
| <div class="highlight-default"><div class="highlight"><pre><span></span>^ Matches at beginning of input |
| $ Matches at end of input |
| . Matches any single character |
| [ ] Matches any character(s) inside the brackets |
| [^ ] Matches any character(s) not inside the brackets |
| - Inside brackets, specifies an inclusive range between |
| characters on either side e.g. [a-f] is [abcdef] |
| To match a literal - using brackets, make it the first |
| or the last character e.g. [+*/-] matches basic |
| mathematical operators. |
| * Matches preceding pattern zero or more times |
| + Matches preceding pattern one or more times |
| ? Matches preceding pattern zero or once only |
| | Matches a pattern on either side of the | |
| () Saves a matched subexpression, which can be referenced |
| in the REGEX REPLACE operation. Additionally it is saved |
| by all regular expression-related commands, including |
| e.g. if( MATCHES ), in the variables CMAKE_MATCH_(0..9). |
| </pre></div> |
| </div> |
| <p><code class="docutils literal"><span class="pre">*</span></code>, <code class="docutils literal"><span class="pre">+</span></code> and <code class="docutils literal"><span class="pre">?</span></code> have higher precedence than concatenation. <code class="docutils literal"><span class="pre">|</span></code> |
| has lower precedence than concatenation. This means that the regular |
| expression <code class="docutils literal"><span class="pre">^ab+d$</span></code> matches <code class="docutils literal"><span class="pre">abbd</span></code> but not <code class="docutils literal"><span class="pre">ababd</span></code>, and the regular |
| expression <code class="docutils literal"><span class="pre">^(ab|cd)$</span></code> matches <code class="docutils literal"><span class="pre">ab</span></code> but not <code class="docutils literal"><span class="pre">abd</span></code>.</p> |
| </div> |
| </div> |
| <div class="section" id="manipulation"> |
| <h2><a class="toc-backref" href="#id10">Manipulation</a><a class="headerlink" href="#manipulation" title="Permalink to this headline">¶</a></h2> |
| <div class="section" id="append"> |
| <h3><a class="toc-backref" href="#id11">APPEND</a><a class="headerlink" href="#append" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">APPEND</span> <span class="o"><</span><span class="n">string</span> <span class="n">variable</span><span class="o">></span> <span class="p">[</span><span class="o"><</span><span class="nb">input</span><span class="o">>...</span><span class="p">])</span> |
| </pre></div> |
| </div> |
| <p>Append all the input arguments to the string.</p> |
| </div> |
| <div class="section" id="concat"> |
| <h3><a class="toc-backref" href="#id12">CONCAT</a><a class="headerlink" href="#concat" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">CONCAT</span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span> <span class="p">[</span><span class="o"><</span><span class="nb">input</span><span class="o">>...</span><span class="p">])</span> |
| </pre></div> |
| </div> |
| <p>Concatenate all the input arguments together and store |
| the result in the named output variable.</p> |
| </div> |
| <div class="section" id="tolower"> |
| <h3><a class="toc-backref" href="#id13">TOLOWER</a><a class="headerlink" href="#tolower" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">TOLOWER</span> <span class="o"><</span><span class="n">string1</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Convert string to lower characters.</p> |
| </div> |
| <div class="section" id="toupper"> |
| <h3><a class="toc-backref" href="#id14">TOUPPER</a><a class="headerlink" href="#toupper" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">TOUPPER</span> <span class="o"><</span><span class="n">string1</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Convert string to upper characters.</p> |
| </div> |
| <div class="section" id="length"> |
| <h3><a class="toc-backref" href="#id15">LENGTH</a><a class="headerlink" href="#length" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">LENGTH</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Store in an output variable a given string’s length.</p> |
| </div> |
| <div class="section" id="substring"> |
| <h3><a class="toc-backref" href="#id16">SUBSTRING</a><a class="headerlink" href="#substring" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">SUBSTRING</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="o"><</span><span class="n">begin</span><span class="o">></span> <span class="o"><</span><span class="n">length</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Store in an output variable a substring of a given string. If length is |
| <code class="docutils literal"><span class="pre">-1</span></code> the remainder of the string starting at begin will be returned. |
| If string is shorter than length then end of string is used instead.</p> |
| <div class="admonition note"> |
| <p class="first admonition-title">Note</p> |
| <p class="last">CMake 3.1 and below reported an error if length pointed past |
| the end of string.</p> |
| </div> |
| </div> |
| <div class="section" id="strip"> |
| <h3><a class="toc-backref" href="#id17">STRIP</a><a class="headerlink" href="#strip" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">STRIP</span> <span class="o"><</span><span class="n">string</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Store in an output variable a substring of a given string with leading and |
| trailing spaces removed.</p> |
| </div> |
| <div class="section" id="genex-strip"> |
| <h3><a class="toc-backref" href="#id18">GENEX_STRIP</a><a class="headerlink" href="#genex-strip" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">GENEX_STRIP</span> <span class="o"><</span><span class="nb">input</span> <span class="n">string</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Strip any <span class="target" id="index-0-manual:cmake-generator-expressions(7)"></span><a class="reference internal" href="../manual/cmake-generator-expressions.7.html#manual:cmake-generator-expressions(7)" title="cmake-generator-expressions(7)"><code class="xref cmake cmake-manual docutils literal"><span class="pre">generator</span> <span class="pre">expressions</span></code></a> |
| from the <code class="docutils literal"><span class="pre">input</span> <span class="pre">string</span></code> and store the result in the <code class="docutils literal"><span class="pre">output</span> <span class="pre">variable</span></code>.</p> |
| </div> |
| </div> |
| <div class="section" id="comparison"> |
| <h2><a class="toc-backref" href="#id19">Comparison</a><a class="headerlink" href="#comparison" title="Permalink to this headline">¶</a></h2> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">COMPARE</span> <span class="n">LESS</span> <span class="o"><</span><span class="n">string1</span><span class="o">></span> <span class="o"><</span><span class="n">string2</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span><span class="p">)</span> |
| <span class="n">string</span><span class="p">(</span><span class="n">COMPARE</span> <span class="n">GREATER</span> <span class="o"><</span><span class="n">string1</span><span class="o">></span> <span class="o"><</span><span class="n">string2</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span><span class="p">)</span> |
| <span class="n">string</span><span class="p">(</span><span class="n">COMPARE</span> <span class="n">EQUAL</span> <span class="o"><</span><span class="n">string1</span><span class="o">></span> <span class="o"><</span><span class="n">string2</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span><span class="p">)</span> |
| <span class="n">string</span><span class="p">(</span><span class="n">COMPARE</span> <span class="n">NOTEQUAL</span> <span class="o"><</span><span class="n">string1</span><span class="o">></span> <span class="o"><</span><span class="n">string2</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span><span class="p">)</span> |
| <span class="n">string</span><span class="p">(</span><span class="n">COMPARE</span> <span class="n">LESS_EQUAL</span> <span class="o"><</span><span class="n">string1</span><span class="o">></span> <span class="o"><</span><span class="n">string2</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span><span class="p">)</span> |
| <span class="n">string</span><span class="p">(</span><span class="n">COMPARE</span> <span class="n">GREATER_EQUAL</span> <span class="o"><</span><span class="n">string1</span><span class="o">></span> <span class="o"><</span><span class="n">string2</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Compare the strings and store true or false in the output variable.</p> |
| </div> |
| <div class="section" id="hashing"> |
| <span id="supported-hash-algorithms"></span><h2><a class="toc-backref" href="#id20">Hashing</a><a class="headerlink" href="#hashing" title="Permalink to this headline">¶</a></h2> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="o"><</span><span class="n">HASH</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span> <span class="o"><</span><span class="nb">input</span><span class="o">></span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Compute a cryptographic hash of the input string. |
| The supported <code class="docutils literal"><span class="pre"><HASH></span></code> algorithm names are:</p> |
| <dl class="docutils"> |
| <dt><code class="docutils literal"><span class="pre">MD5</span></code></dt> |
| <dd>Message-Digest Algorithm 5, RFC 1321.</dd> |
| <dt><code class="docutils literal"><span class="pre">SHA1</span></code></dt> |
| <dd>US Secure Hash Algorithm 1, RFC 3174.</dd> |
| <dt><code class="docutils literal"><span class="pre">SHA224</span></code></dt> |
| <dd>US Secure Hash Algorithms, RFC 4634.</dd> |
| <dt><code class="docutils literal"><span class="pre">SHA256</span></code></dt> |
| <dd>US Secure Hash Algorithms, RFC 4634.</dd> |
| <dt><code class="docutils literal"><span class="pre">SHA384</span></code></dt> |
| <dd>US Secure Hash Algorithms, RFC 4634.</dd> |
| <dt><code class="docutils literal"><span class="pre">SHA512</span></code></dt> |
| <dd>US Secure Hash Algorithms, RFC 4634.</dd> |
| <dt><code class="docutils literal"><span class="pre">SHA3_224</span></code></dt> |
| <dd>Keccak SHA-3.</dd> |
| <dt><code class="docutils literal"><span class="pre">SHA3_256</span></code></dt> |
| <dd>Keccak SHA-3.</dd> |
| <dt><code class="docutils literal"><span class="pre">SHA3_384</span></code></dt> |
| <dd>Keccak SHA-3.</dd> |
| <dt><code class="docutils literal"><span class="pre">SHA3_512</span></code></dt> |
| <dd>Keccak SHA-3.</dd> |
| </dl> |
| </div> |
| <div class="section" id="generation"> |
| <h2><a class="toc-backref" href="#id21">Generation</a><a class="headerlink" href="#generation" title="Permalink to this headline">¶</a></h2> |
| <div class="section" id="ascii"> |
| <h3><a class="toc-backref" href="#id22">ASCII</a><a class="headerlink" href="#ascii" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">ASCII</span> <span class="o"><</span><span class="n">number</span><span class="o">></span> <span class="p">[</span><span class="o"><</span><span class="n">number</span><span class="o">></span> <span class="o">...</span><span class="p">]</span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Convert all numbers into corresponding ASCII characters.</p> |
| </div> |
| <div class="section" id="configure"> |
| <h3><a class="toc-backref" href="#id23">CONFIGURE</a><a class="headerlink" href="#configure" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">CONFIGURE</span> <span class="o"><</span><span class="n">string1</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span> |
| <span class="p">[</span><span class="nd">@ONLY</span><span class="p">]</span> <span class="p">[</span><span class="n">ESCAPE_QUOTES</span><span class="p">])</span> |
| </pre></div> |
| </div> |
| <p>Transform a string like <span class="target" id="index-0-command:configure_file"></span><a class="reference internal" href="configure_file.html#command:configure_file" title="configure_file"><code class="xref cmake cmake-command docutils literal"><span class="pre">configure_file()</span></code></a> transforms a file.</p> |
| </div> |
| <div class="section" id="random"> |
| <h3><a class="toc-backref" href="#id24">RANDOM</a><a class="headerlink" href="#random" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">RANDOM</span> <span class="p">[</span><span class="n">LENGTH</span> <span class="o"><</span><span class="n">length</span><span class="o">></span><span class="p">]</span> <span class="p">[</span><span class="n">ALPHABET</span> <span class="o"><</span><span class="n">alphabet</span><span class="o">></span><span class="p">]</span> |
| <span class="p">[</span><span class="n">RANDOM_SEED</span> <span class="o"><</span><span class="n">seed</span><span class="o">></span><span class="p">]</span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Return a random string of given length consisting of |
| characters from the given alphabet. Default length is 5 characters |
| and default alphabet is all numbers and upper and lower case letters. |
| If an integer <code class="docutils literal"><span class="pre">RANDOM_SEED</span></code> is given, its value will be used to seed the |
| random number generator.</p> |
| </div> |
| <div class="section" id="timestamp"> |
| <h3><a class="toc-backref" href="#id25">TIMESTAMP</a><a class="headerlink" href="#timestamp" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">TIMESTAMP</span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span> <span class="p">[</span><span class="o"><</span><span class="nb">format</span> <span class="n">string</span><span class="o">></span><span class="p">]</span> <span class="p">[</span><span class="n">UTC</span><span class="p">])</span> |
| </pre></div> |
| </div> |
| <p>Write a string representation of the current date |
| and/or time to the output variable.</p> |
| <p>Should the command be unable to obtain a timestamp the output variable |
| will be set to the empty string “”.</p> |
| <p>The optional <code class="docutils literal"><span class="pre">UTC</span></code> flag requests the current date/time representation to |
| be in Coordinated Universal Time (UTC) rather than local time.</p> |
| <p>The optional <code class="docutils literal"><span class="pre"><format</span> <span class="pre">string></span></code> may contain the following format |
| specifiers:</p> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="o">%%</span> <span class="n">A</span> <span class="n">literal</span> <span class="n">percent</span> <span class="n">sign</span> <span class="p">(</span><span class="o">%</span><span class="p">)</span><span class="o">.</span> |
| <span class="o">%</span><span class="n">d</span> <span class="n">The</span> <span class="n">day</span> <span class="n">of</span> <span class="n">the</span> <span class="n">current</span> <span class="n">month</span> <span class="p">(</span><span class="mi">01</span><span class="o">-</span><span class="mi">31</span><span class="p">)</span><span class="o">.</span> |
| <span class="o">%</span><span class="n">H</span> <span class="n">The</span> <span class="n">hour</span> <span class="n">on</span> <span class="n">a</span> <span class="mi">24</span><span class="o">-</span><span class="n">hour</span> <span class="n">clock</span> <span class="p">(</span><span class="mi">00</span><span class="o">-</span><span class="mi">23</span><span class="p">)</span><span class="o">.</span> |
| <span class="o">%</span><span class="n">I</span> <span class="n">The</span> <span class="n">hour</span> <span class="n">on</span> <span class="n">a</span> <span class="mi">12</span><span class="o">-</span><span class="n">hour</span> <span class="n">clock</span> <span class="p">(</span><span class="mi">01</span><span class="o">-</span><span class="mi">12</span><span class="p">)</span><span class="o">.</span> |
| <span class="o">%</span><span class="n">j</span> <span class="n">The</span> <span class="n">day</span> <span class="n">of</span> <span class="n">the</span> <span class="n">current</span> <span class="n">year</span> <span class="p">(</span><span class="mi">001</span><span class="o">-</span><span class="mi">366</span><span class="p">)</span><span class="o">.</span> |
| <span class="o">%</span><span class="n">m</span> <span class="n">The</span> <span class="n">month</span> <span class="n">of</span> <span class="n">the</span> <span class="n">current</span> <span class="n">year</span> <span class="p">(</span><span class="mi">01</span><span class="o">-</span><span class="mi">12</span><span class="p">)</span><span class="o">.</span> |
| <span class="o">%</span><span class="n">b</span> <span class="n">Abbreviated</span> <span class="n">month</span> <span class="n">name</span> <span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">g</span><span class="o">.</span> <span class="n">Oct</span><span class="p">)</span><span class="o">.</span> |
| <span class="o">%</span><span class="n">M</span> <span class="n">The</span> <span class="n">minute</span> <span class="n">of</span> <span class="n">the</span> <span class="n">current</span> <span class="n">hour</span> <span class="p">(</span><span class="mi">00</span><span class="o">-</span><span class="mi">59</span><span class="p">)</span><span class="o">.</span> |
| <span class="o">%</span><span class="n">s</span> <span class="n">Seconds</span> <span class="n">since</span> <span class="n">midnight</span> <span class="p">(</span><span class="n">UTC</span><span class="p">)</span> <span class="mi">1</span><span class="o">-</span><span class="n">Jan</span><span class="o">-</span><span class="mi">1970</span> <span class="p">(</span><span class="n">UNIX</span> <span class="n">time</span><span class="p">)</span><span class="o">.</span> |
| <span class="o">%</span><span class="n">S</span> <span class="n">The</span> <span class="n">second</span> <span class="n">of</span> <span class="n">the</span> <span class="n">current</span> <span class="n">minute</span><span class="o">.</span> |
| <span class="mi">60</span> <span class="n">represents</span> <span class="n">a</span> <span class="n">leap</span> <span class="n">second</span><span class="o">.</span> <span class="p">(</span><span class="mi">00</span><span class="o">-</span><span class="mi">60</span><span class="p">)</span> |
| <span class="o">%</span><span class="n">U</span> <span class="n">The</span> <span class="n">week</span> <span class="n">number</span> <span class="n">of</span> <span class="n">the</span> <span class="n">current</span> <span class="n">year</span> <span class="p">(</span><span class="mi">00</span><span class="o">-</span><span class="mi">53</span><span class="p">)</span><span class="o">.</span> |
| <span class="o">%</span><span class="n">w</span> <span class="n">The</span> <span class="n">day</span> <span class="n">of</span> <span class="n">the</span> <span class="n">current</span> <span class="n">week</span><span class="o">.</span> <span class="mi">0</span> <span class="ow">is</span> <span class="n">Sunday</span><span class="o">.</span> <span class="p">(</span><span class="mi">0</span><span class="o">-</span><span class="mi">6</span><span class="p">)</span> |
| <span class="o">%</span><span class="n">a</span> <span class="n">Abbreviated</span> <span class="n">weekday</span> <span class="n">name</span> <span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">g</span><span class="o">.</span> <span class="n">Fri</span><span class="p">)</span><span class="o">.</span> |
| <span class="o">%</span><span class="n">y</span> <span class="n">The</span> <span class="n">last</span> <span class="n">two</span> <span class="n">digits</span> <span class="n">of</span> <span class="n">the</span> <span class="n">current</span> <span class="n">year</span> <span class="p">(</span><span class="mi">00</span><span class="o">-</span><span class="mi">99</span><span class="p">)</span> |
| <span class="o">%</span><span class="n">Y</span> <span class="n">The</span> <span class="n">current</span> <span class="n">year</span><span class="o">.</span> |
| </pre></div> |
| </div> |
| <p>Unknown format specifiers will be ignored and copied to the output |
| as-is.</p> |
| <p>If no explicit <code class="docutils literal"><span class="pre"><format</span> <span class="pre">string></span></code> is given it will default to:</p> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="o">%</span><span class="n">Y</span><span class="o">-%</span><span class="n">m</span><span class="o">-%</span><span class="n">dT</span><span class="o">%</span><span class="n">H</span><span class="p">:</span><span class="o">%</span><span class="n">M</span><span class="p">:</span><span class="o">%</span><span class="n">S</span> <span class="k">for</span> <span class="n">local</span> <span class="n">time</span><span class="o">.</span> |
| <span class="o">%</span><span class="n">Y</span><span class="o">-%</span><span class="n">m</span><span class="o">-%</span><span class="n">dT</span><span class="o">%</span><span class="n">H</span><span class="p">:</span><span class="o">%</span><span class="n">M</span><span class="p">:</span><span class="o">%</span><span class="n">SZ</span> <span class="k">for</span> <span class="n">UTC</span><span class="o">.</span> |
| </pre></div> |
| </div> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">MAKE_C_IDENTIFIER</span> <span class="o"><</span><span class="nb">input</span> <span class="n">string</span><span class="o">></span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Write a string which can be used as an identifier in C.</p> |
| <div class="admonition note"> |
| <p class="first admonition-title">Note</p> |
| <p class="last">If the <code class="docutils literal"><span class="pre">SOURCE_DATE_EPOCH</span></code> environment variable is set, |
| its value will be used instead of the current time. |
| See <a class="reference external" href="https://reproducible-builds.org/specs/source-date-epoch/">https://reproducible-builds.org/specs/source-date-epoch/</a> for details.</p> |
| </div> |
| </div> |
| <div class="section" id="uuid"> |
| <h3><a class="toc-backref" href="#id26">UUID</a><a class="headerlink" href="#uuid" title="Permalink to this headline">¶</a></h3> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">string</span><span class="p">(</span><span class="n">UUID</span> <span class="o"><</span><span class="n">output</span> <span class="n">variable</span><span class="o">></span> <span class="n">NAMESPACE</span> <span class="o"><</span><span class="n">namespace</span><span class="o">></span> <span class="n">NAME</span> <span class="o"><</span><span class="n">name</span><span class="o">></span> |
| <span class="n">TYPE</span> <span class="o"><</span><span class="n">MD5</span><span class="o">|</span><span class="n">SHA1</span><span class="o">></span> <span class="p">[</span><span class="n">UPPER</span><span class="p">])</span> |
| </pre></div> |
| </div> |
| <p>Create a univerally unique identifier (aka GUID) as per RFC4122 |
| based on the hash of the combined values of <code class="docutils literal"><span class="pre"><namespace></span></code> |
| (which itself has to be a valid UUID) and <code class="docutils literal"><span class="pre"><name></span></code>. |
| The hash algorithm can be either <code class="docutils literal"><span class="pre">MD5</span></code> (Version 3 UUID) or |
| <code class="docutils literal"><span class="pre">SHA1</span></code> (Version 5 UUID). |
| A UUID has the format <code class="docutils literal"><span class="pre">xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</span></code> |
| where each <cite>x</cite> represents a lower case hexadecimal character. |
| Where required an uppercase representation can be requested |
| with the optional <code class="docutils literal"><span class="pre">UPPER</span></code> flag.</p> |
| </div> |
| </div> |
| </div> |
| |
| |
| </div> |
| </div> |
| </div> |
| <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
| <div class="sphinxsidebarwrapper"> |
| <h3><a href="../index.html">Table Of Contents</a></h3> |
| <ul> |
| <li><a class="reference internal" href="#">string</a><ul> |
| <li><a class="reference internal" href="#search-and-replace">Search and Replace</a><ul> |
| <li><a class="reference internal" href="#find">FIND</a></li> |
| <li><a class="reference internal" href="#replace">REPLACE</a></li> |
| </ul> |
| </li> |
| <li><a class="reference internal" href="#regular-expressions">Regular Expressions</a><ul> |
| <li><a class="reference internal" href="#regex-match">REGEX MATCH</a></li> |
| <li><a class="reference internal" href="#regex-matchall">REGEX MATCHALL</a></li> |
| <li><a class="reference internal" href="#regex-replace">REGEX REPLACE</a></li> |
| <li><a class="reference internal" href="#regex-specification">Regex Specification</a></li> |
| </ul> |
| </li> |
| <li><a class="reference internal" href="#manipulation">Manipulation</a><ul> |
| <li><a class="reference internal" href="#append">APPEND</a></li> |
| <li><a class="reference internal" href="#concat">CONCAT</a></li> |
| <li><a class="reference internal" href="#tolower">TOLOWER</a></li> |
| <li><a class="reference internal" href="#toupper">TOUPPER</a></li> |
| <li><a class="reference internal" href="#length">LENGTH</a></li> |
| <li><a class="reference internal" href="#substring">SUBSTRING</a></li> |
| <li><a class="reference internal" href="#strip">STRIP</a></li> |
| <li><a class="reference internal" href="#genex-strip">GENEX_STRIP</a></li> |
| </ul> |
| </li> |
| <li><a class="reference internal" href="#comparison">Comparison</a></li> |
| <li><a class="reference internal" href="#hashing">Hashing</a></li> |
| <li><a class="reference internal" href="#generation">Generation</a><ul> |
| <li><a class="reference internal" href="#ascii">ASCII</a></li> |
| <li><a class="reference internal" href="#configure">CONFIGURE</a></li> |
| <li><a class="reference internal" href="#random">RANDOM</a></li> |
| <li><a class="reference internal" href="#timestamp">TIMESTAMP</a></li> |
| <li><a class="reference internal" href="#uuid">UUID</a></li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| |
| <h4>Previous topic</h4> |
| <p class="topless"><a href="source_group.html" |
| title="previous chapter">source_group</a></p> |
| <h4>Next topic</h4> |
| <p class="topless"><a href="target_compile_definitions.html" |
| title="next chapter">target_compile_definitions</a></p> |
| <div role="note" aria-label="source link"> |
| <h3>This Page</h3> |
| <ul class="this-page-menu"> |
| <li><a href="../_sources/command/string.rst.txt" |
| rel="nofollow">Show Source</a></li> |
| </ul> |
| </div> |
| <div id="searchbox" style="display: none" role="search"> |
| <h3>Quick search</h3> |
| <form class="search" action="../search.html" method="get"> |
| <div><input type="text" name="q" /></div> |
| <div><input type="submit" value="Go" /></div> |
| <input type="hidden" name="check_keywords" value="yes" /> |
| <input type="hidden" name="area" value="default" /> |
| </form> |
| </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="target_compile_definitions.html" title="target_compile_definitions" |
| >next</a> |</li> |
| <li class="right" > |
| <a href="source_group.html" title="source_group" |
| >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.8.2 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-2017 Kitware, Inc. and Contributors. |
| Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.5.2. |
| </div> |
| </body> |
| </html> |