Warning, file /frameworks/syntax-highlighting/autotests/html/highlight.cmake.html was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 <!DOCTYPE html>
0002 <html><head>
0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
0004 <title>highlight.cmake</title>
0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (CMake) - Theme (Breeze Light)"/>
0006 </head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
0007 <span style="color:#898887;"># This CMakeLists.txt doesn't do anything useful,</span>
0008 <span style="color:#898887;"># but it shoudl demonstrate the cmake syntax highlighting</span>
0009 <span style="color:#898887;">#</span>
0010 <span style="color:#898887;"># Alex Turbov &lt;i.zaufi@gmail.com&gt;</span>
0011 <span style="color:#898887;">#</span>
0012 
0013 <span style="color:#0057ae;background-color:#e0e9f8;">#[[.rst:</span>
0014 <span style="color:#898887;">Demo</span>
0015 <span style="color:#898887;">----</span>
0016 
0017 <span style="color:#898887;">This is an </span><span style="font-weight:bold;">**RST**</span><span style="color:#898887;"> documentation.</span>
0018 
0019 <span style="color:#0057ae;">::</span>
0020 
0021 <span style="color:#0057ae;">    # Sample code block</span>
0022 <span style="color:#0057ae;">    blah-blah</span>
0023 
0024 <span style="color:#898887;">But we are about to test CMake here ;-)</span>
0025 
0026 <span style="color:#0057ae;background-color:#e0e9f8;">#]]</span>
0027 
0028 <span style="font-weight:bold;">cmake_policy</span>(<span style="color:#006e28;">VERSION</span> <span style="color:#0057ae;">3.11</span>)
0029 
0030 <span style="font-weight:bold;">project</span>(
0031     Demo <span style="color:#006e28;">VERSION</span> <span style="color:#0057ae;">1.0</span>
0032     <span style="color:#006e28;">DESCRIPTION</span> <span style="color:#bf0303;">&quot;For unit testing purposes&quot;</span>
0033     <span style="color:#898887;"># </span><span style="color:#81ca2d;background-color:#f7e6e6;font-weight:bold;">NOTE</span><span style="color:#898887;"> that particular languages is a separate style</span>
0034     <span style="color:#898887;"># to highlight &quot;special&quot; (well known values)</span>
0035     <span style="color:#006e28;">LANGUAGES</span> <span style="color:#006e28;">C</span> <span style="color:#006e28;">CXX</span>
0036   )
0037 
0038 <span style="font-weight:bold;">set</span>(SOME_TRUE_OPTION <span style="color:#30a030;">TRUE</span>)      <span style="color:#898887;"># `true` value</span>
0039 <span style="color:#898887;"># `false` value and &quot;internal&quot; variable</span>
0040 <span style="font-weight:bold;">set</span>(<span style="color:#0057ae;">_ANOTHER_FALSE_OPTION</span> <span style="color:#e05050;">OFF</span> <span style="color:#006e28;">CACHE</span> <span style="color:#006e28;">INTERNAL</span> <span style="color:#bf0303;">&quot;Internal option&quot;</span>)
0041 
0042 <span style="color:#898887;">#BEGIN Message block</span>
0043 <span style="font-weight:bold;">message</span>(<span style="color:#006e28;">FATAL_ERROR</span> <span style="color:#bf0303;">&quot;Ordinal message do </span><span style="color:#b08000;">${VARIABLE_EXPANSION}</span><span style="color:#bf0303;">&quot;</span>)
0044 <span style="font-weight:bold;">message</span>(<span style="color:#006e28;">AUTHOR_WARNING</span> <span style="color:#bf0303;">&quot;... standard variables have a dedicated style&quot;</span>)
0045 <span style="font-weight:bold;">message</span>(<span style="color:#006e28;">SEND_ERROR</span> <span style="color:#bf0303;">&quot;e.g. </span><span style="color:#b08000;">${</span><span style="color:#c09050;">PROJECT_DESCRIPTION</span><span style="color:#b08000;">}</span><span style="color:#bf0303;"> or </span><span style="color:#b08000;">${</span><span style="color:#c09050;">CMAKE_COMMAND</span><span style="color:#b08000;">}</span><span style="color:#bf0303;">&quot;</span>)
0046 <span style="font-weight:bold;">message</span>(
0047     <span style="color:#006e28;">STATUS</span> <span style="color:#bf0303;">[=[</span>
0048 <span style="color:#bf0303;">        Raw messages do not do ${VARIABLES_EXPANSION} or \n</span>
0049 <span style="color:#bf0303;">        escape symbols highlighting...</span>
0050 <span style="color:#bf0303;">    ]=]</span>
0051 )
0052 <span style="color:#898887;">#END Message block</span>
0053 
0054 <span style="color:#898887;"># </span><span style="color:#e85848;background-color:#451e1a;font-weight:bold;">ATTENTION</span><span style="color:#898887;"> Every command highlight only its own named keywords...</span>
0055 <span style="color:#898887;"># Also, note aliased (most of the time imported) targets higlighted as well</span>
0056 <span style="font-weight:bold;">add_library</span>(<span style="color:#b08000;">Foo::foo</span> <span style="color:#006e28;">IMPORTED</span> <span style="color:#006e28;">GLOBAL</span>)
0057 <span style="font-weight:bold;">set</span>(KW_HL IMPORTED GLOBAL)      <span style="color:#898887;"># `IMPORTED` and `GLOBAL` are not highlighted here!</span>
0058 
0059 <span style="color:#898887;"># Properties are separate (&quot;special value&quot;) style</span>
0060 <span style="font-weight:bold;">set_target_properties</span>(<span style="color:#b08000;">Foo::foo</span> <span style="color:#006e28;">PROPERTIES</span> <span style="color:#006e28;">LOCATION</span> <span style="color:#bf0303;">&quot;</span><span style="color:#b08000;">${FOO_LIBRARY}</span><span style="color:#bf0303;">&quot;</span>)
0061 
0062 <span style="color:#898887;"># Generator expressions</span>
0063 <span style="font-weight:bold;">target_compile_definitions</span>(
0064     <span style="color:#898887;"># </span><span style="color:#81ca2d;background-color:#f7e6e6;font-weight:bold;">NOTE</span><span style="color:#898887;"> Ok w/ CMake &gt;= 3.11</span>
0065     <span style="color:#b08000;">Foo::foo</span>
0066     <span style="color:#b86050;">$&lt;$&lt;</span><span style="color:#b84040;font-weight:bold;">PLATFORM_ID</span><span style="color:#b86050;">:Windows&gt;:WINDOWS_FOO&gt;</span>
0067     <span style="color:#b86050;">$&lt;$&lt;</span><span style="color:#b84040;font-weight:bold;">PLATFORM_ID</span><span style="color:#b86050;">:Linux&gt;:</span>
0068 <span style="color:#b86050;">        LINUX_FOO</span>
0069 <span style="color:#b86050;">        $&lt;$&lt;</span><span style="color:#b84040;font-weight:bold;">BOOL</span><span style="color:#b86050;">:</span><span style="color:#b08000;">${</span><span style="color:#0057ae;">_has_foo</span><span style="color:#b08000;">}</span><span style="color:#b86050;">&gt;:SOME_FOO_PATH=</span><span style="color:#b08000;">${</span><span style="color:#c09050;">PROJECT_BINARY_DIR</span><span style="color:#b08000;">}</span><span style="color:#b86050;">/foo&gt;</span>
0070 <span style="color:#b86050;">    &gt;</span>
0071   )
0072 
0073 <span style="color:#0057ae;background-color:#e0e9f8;">#[=======================================================================[.rst:</span>
0074 <span style="color:#0057ae;">.. cmake:command:: </span><span style="color:#898887;">my_fun</span>
0075 
0076 <span style="font-style:italic;">*RST*</span><span style="color:#898887;"> documentation </span><span style="color:#0057ae;">``can``</span><span style="color:#898887;"> refer to </span><span style="font-weight:bold;">:cmake:command:</span><span style="color:#b08000;">`any_commands`</span><span style="color:#898887;"> or</span>
0077 <span style="font-weight:bold;">:cmake:variable:</span><span style="color:#b08000;">`variables`</span><span style="color:#898887;">...</span>
0078 
0079 <span style="color:#0057ae;">.. code-block:: cmake</span>
0080 <span style="color:#0057ae;">   :caption: **Synopsys**</span>
0081 
0082 <span style="color:#0057ae;">    my_fun([ANYTHING...])</span>
0083 
0084 <span style="color:#0057ae;background-color:#e0e9f8;">#]=======================================================================]</span>
0085 <span style="font-weight:bold;">function</span>(my_fun)
0086     <span style="color:#898887;"># </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold;">TODO</span><span style="color:#898887;"> Add implementation</span>
0087 <span style="font-weight:bold;">endfunction</span>()
0088 
0089 <span style="color:#644a9b;">my_fun</span>(
0090     <span style="color:#898887;"># Custom functions do not highlight &quot;standard&quot; named args ...</span>
0091     PUBLIC LOCATION PARENT_SCOPE
0092     <span style="color:#898887;"># only some well-known values ...</span>
0093     <span style="color:#e05050;">smth-NOTFOUND</span> <span style="color:#30a030;">ON</span>
0094     <span style="color:#898887;"># and standard variables</span>
0095     <span style="color:#c09050;">PROJECT_VERSION</span>
0096     <span style="color:#898887;"># or substitutions</span>
0097     <span style="color:#b08000;">$ENV{HOME}</span> OR <span style="color:#b08000;">${</span><span style="color:#0057ae;">_internal_var_is_grey</span><span style="color:#b08000;">}</span>
0098   )
0099 
0100 <span style="color:#898887;"># I dont'recall exactly, but there was some bug with `if`...</span>
0101 <span style="font-weight:bold;">if</span>((A <span style="color:#006e28;">AND</span> <span style="color:#bf0303;">&quot;</span><span style="color:#b08000;">${B}</span><span style="color:#bf0303;">&quot;</span>) <span style="color:#006e28;">OR</span> C <span style="color:#006e28;">OR</span> (var <span style="color:#006e28;">MATCHES</span> <span style="color:#bf0303;">&quot;regex&quot;</span>))
0102     <span style="color:#898887;"># Anyway... it is Ok nowadays ;-)</span>
0103 
0104 <span style="font-weight:bold;">elseif</span>(<span style="color:#006e28;">POLICY</span> CMP066)
0105     <span style="font-weight:bold;">add_executable</span>(<span style="color:#b08000;">${</span><span style="color:#c09050;">PROJECT_NAME</span><span style="color:#b08000;">}</span> <span style="color:#b08000;">${</span><span style="color:#c09050;">PROJECT_NAME</span><span style="color:#b08000;">}</span><span style="color:#b08000;">.cc</span>)
0106     <span style="font-weight:bold;">target_link_libraries</span>(
0107         <span style="color:#b08000;">${</span><span style="color:#c09050;">PROJECT_NAME</span><span style="color:#b08000;">}</span>
0108         <span style="color:#b08000;">PRIVATE</span>
0109             <span style="color:#b08000;">Qt5::Core</span>
0110             <span style="color:#b86050;">$&lt;$&lt;</span><span style="color:#b84040;font-weight:bold;">BOOL</span><span style="color:#b86050;">:</span><span style="color:#b08000;">${HAS_FOO}</span><span style="color:#b86050;">&gt;:</span><span style="color:#b08000;">Foo::foo</span><span style="color:#b86050;">&gt;</span>
0111       )
0112 
0113 <span style="font-weight:bold;">endif</span>()
0114 
0115 <span style="color:#898887;"># In each function call below, all 3 named parameter lines should apply the same highlighting.</span>
0116 <span style="font-weight:bold;">add_custom_command</span>(
0117     <span style="color:#006e28;">COMMAND</span> <span style="color:#30a030;">true</span>
0118     <span style="color:#006e28;">COMMAND</span> (<span style="color:#30a030;">true</span>)
0119     <span style="color:#006e28;">COMMAND</span> <span style="color:#30a030;">true</span>
0120 )
0121 <span style="font-weight:bold;">add_custom_target</span>(<span style="color:#b08000;">TargetName</span>
0122     <span style="color:#006e28;">WORKING_DIRECTORY</span> somedir
0123     <span style="color:#006e28;">COMMAND</span> (<span style="color:#30a030;">true</span>)
0124     <span style="color:#006e28;">BYPRODUCTS</span> somefile
0125 )
0126 <span style="font-weight:bold;">execute_process</span>(
0127     <span style="color:#006e28;">COMMAND</span> <span style="color:#30a030;">true</span>
0128     <span style="color:#006e28;">COMMAND</span> (<span style="color:#30a030;">true</span>)
0129     <span style="color:#006e28;">COMMAND</span> <span style="color:#30a030;">true</span>
0130 )
0131 <span style="font-weight:bold;">add_test</span>(
0132     <span style="color:#006e28;">NAME</span> sometest
0133     <span style="color:#006e28;">COMMAND</span> (<span style="color:#30a030;">true</span>)
0134     <span style="color:#006e28;">WORKING_DIRECTORY</span> somedir
0135 )
0136 
0137 <span style="color:#898887;"># nested parentheses</span>
0138 <span style="font-weight:bold;">if</span>( <span style="color:#30a030;">true</span> <span style="color:#006e28;">AND</span> ( <span style="color:#e05050;">false</span> <span style="color:#006e28;">OR</span> (<span style="color:#bf0303;">&quot;</span><span style="color:#b08000;">${</span><span style="color:#c09050;">CMAKE_CXX_COMPILER_ID</span><span style="color:#b08000;">}</span><span style="color:#bf0303;">&quot;</span> <span style="color:#006e28;">STREQUAL</span> <span style="color:#bf0303;">&quot;Clang&quot;</span>) ) )
0139 <span style="font-weight:bold;">endif</span>()
0140 </pre></body></html>