1<?php
2/*************************************************************************************
3 * cmake.php
4 * -------
5 * Author: Daniel Nelson (danieln@eng.utah.edu)
6 * Copyright: (c) 2009 Daniel Nelson
7 * Release Version: 1.0.9.1
8 * Date Started: 2009/04/06
9 *
10 * CMake language file for GeSHi.
11 *
12 * Keyword list generated using CMake 2.6.3.
13 *
14 * CHANGES
15 * -------
16 * <date-of-release> (<GeSHi release>)
17 *  -  First Release
18 *
19 * TODO (updated <date-of-release>)
20 * -------------------------
21 *
22 *************************************************************************************
23 *
24 *     This file is part of GeSHi.
25 *
26 *   GeSHi is free software; you can redistribute it and/or modify
27 *   it under the terms of the GNU General Public License as published by
28 *   the Free Software Foundation; either version 2 of the License, or
29 *   (at your option) any later version.
30 *
31 *   GeSHi is distributed in the hope that it will be useful,
32 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
33 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
34 *   GNU General Public License for more details.
35 *
36 *   You should have received a copy of the GNU General Public License
37 *   along with GeSHi; if not, write to the Free Software
38 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
39 *
40 ************************************************************************************/
41
42$language_data = array (
43    'LANG_NAME' => 'CMake',
44    'COMMENT_SINGLE' => array(1 => '#'),
45    'COMMENT_MULTI' => array(),
46    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
47    'QUOTEMARKS' => array('"'),
48    'ESCAPE_CHAR' => '\\',
49    'ESCAPE_REGEXP' => array(
50        // Quoted variables ${...}
51        1 => "/\\$(ENV)?\\{[^\\n\\}]*?\\}/i",
52        // Quoted registry keys [...]
53        2 => "/\\[HKEY[^\n\\]]*?]/i"
54        ),
55    'KEYWORDS' => array(
56        1 => array(
57            'add_custom_command', 'add_custom_target', 'add_definitions',
58            'add_dependencies', 'add_executable', 'add_library',
59            'add_subdirectory', 'add_test', 'aux_source_directory', 'break',
60            'build_command', 'cmake_minimum_required', 'cmake_policy',
61            'configure_file', 'create_test_sourcelist', 'define_property',
62            'else', 'elseif', 'enable_language', 'enable_testing',
63            'endforeach', 'endfunction', 'endif', 'endmacro',
64            'endwhile', 'execute_process', 'export', 'file', 'find_file',
65            'find_library', 'find_package', 'find_path', 'find_program',
66            'fltk_wrap_ui', 'foreach', 'function', 'get_cmake_property',
67            'get_directory_property', 'get_filename_component', 'get_property',
68            'get_source_file_property', 'get_target_property',
69            'get_test_property', 'if', 'include', 'include_directories',
70            'include_external_msproject', 'include_regular_expression',
71            'install', 'link_directories', 'list', 'load_cache',
72            'load_command', 'macro', 'mark_as_advanced', 'math', 'message',
73            'option', 'output_required_files', 'project', 'qt_wrap_cpp',
74            'qt_wrap_ui', 'remove_definitions', 'return', 'separate_arguments',
75            'set', 'set_directory_properties', 'set_property',
76            'set_source_files_properties', 'set_target_properties',
77            'set_tests_properties', 'site_name', 'source_group', 'string',
78            'target_link_libraries', 'try_compile', 'try_run', 'unset',
79            'variable_watch', 'while'
80            ),
81        2 => array(
82            // Deprecated commands
83            'build_name', 'exec_program', 'export_library_dependencies',
84            'install_files', 'install_programs', 'install_targets',
85            'link_libraries', 'make_directory', 'remove', 'subdir_depends',
86            'subdirs', 'use_mangled_mesa', 'utility_source',
87            'variable_requires', 'write_file'
88            ),
89        3 => array(
90            // Special command arguments, this list is not comprehesive.
91            'AND', 'APPEND', 'ASCII', 'BOOL', 'CACHE', 'COMMAND', 'COMMENT',
92            'COMPARE', 'CONFIGURE', 'DEFINED', 'DEPENDS', 'DIRECTORY',
93            'EQUAL', 'EXCLUDE_FROM_ALL', 'EXISTS', 'FALSE', 'FATAL_ERROR',
94            'FILEPATH', 'FIND', 'FORCE', 'GET', 'GLOBAL', 'GREATER',
95            'IMPLICIT_DEPENDS', 'INSERT', 'INTERNAL', 'IS_ABSOLUTE',
96            'IS_DIRECTORY', 'IS_NEWER_THAN', 'LENGTH', 'LESS',
97            'MAIN_DEPENDENCY', 'MATCH', 'MATCHALL', 'MATCHES', 'MODULE', 'NOT',
98            'NOTFOUND', 'OFF', 'ON', 'OR', 'OUTPUT', 'PARENT_SCOPE', 'PATH',
99            'POLICY', 'POST_BUILD', 'PRE_BUILD', 'PRE_LINK', 'PROPERTY',
100            'RANDOM', 'REGEX', 'REMOVE_AT', 'REMOVE_DUPLICATES', 'REMOVE_ITEM',
101            'REPLACE', 'REVERSE', 'SEND_ERROR', 'SHARED', 'SORT', 'SOURCE',
102            'STATIC', 'STATUS', 'STREQUAL', 'STRGREATER', 'STRING', 'STRIP',
103            'STRLESS', 'SUBSTRING', 'TARGET', 'TEST', 'TOLOWER', 'TOUPPER',
104            'TRUE', 'VERBATIM', 'VERSION', 'VERSION_EQUAL', 'VERSION_GREATOR',
105            'VERSION_LESS', 'WORKING_DIRECTORY',
106            )
107        ),
108    'CASE_SENSITIVE' => array(
109        GESHI_COMMENTS => false,
110        1 => false,
111        2 => false,
112        3 => true
113        ),
114    'SYMBOLS' => array(
115        0 => array('(', ')')
116        ),
117    'STYLES' => array(
118        'KEYWORDS' => array(
119            1 => 'color: #1f3f81; font-style: bold;',
120            2 => 'color: #1f3f81;',
121            3 => 'color: #077807; font-sytle: italic;'
122            ),
123        'BRACKETS' => array(),
124        'COMMENTS' => array(
125            1 => 'color: #666666; font-style: italic;'
126            ),
127        'ESCAPE_CHAR' => array(
128            0 => 'color: #000099; font-weight: bold;',
129            1 => 'color: #b08000;',
130            2 => 'color: #0000cd;'
131            ),
132        'STRINGS' => array(
133            0 => 'color: #912f11;',
134            ),
135        'SYMBOLS' => array(
136            0 => 'color: #197d8b;'
137            ),
138        'NUMBERS' => array(),
139        'METHODS' => array(),
140        'REGEXPS' => array(
141            0 => 'color: #b08000;',
142            1 => 'color: #0000cd;'
143            ),
144        'SCRIPT' => array()
145        ),
146    'URLS' => array(
147        1 => 'http://www.cmake.org/cmake/help/cmake2.6docs.html#command:{FNAMEL}',
148        2 => 'http://www.cmake.org/cmake/help/cmake2.6docs.html#command:{FNAMEL}',
149        3 => '',
150        ),
151    'OOLANG' => false,
152    'OBJECT_SPLITTERS' => array(),
153    'REGEXPS' => array(
154        // Unquoted variables
155        0 => "\\$(ENV)?\\{[^\\n}]*?\\}",
156        // Unquoted registry keys
157        1 => "\\[HKEY[^\n\\]]*?]"
158        ),
159    'STRICT_MODE_APPLIES' => GESHI_NEVER,
160    'SCRIPT_DELIMITERS' => array(),
161    'HIGHLIGHT_STRICT_BLOCK' => array(),
162    'TAB_WIDTH' => 4,
163    'PARSER_CONTROL' => array(
164        'KEYWORDS' => array(
165            // These keywords cannot come after a open paren
166            1 => array(
167                'DISALLOWED_AFTER' =>  '(?= *\()'
168                ),
169            2 => array(
170                'DISALLOWED_AFTER' =>  '(?= *\()'
171                )
172            ),
173        'ENABLE_FLAGS' => array(
174            'BRACKETS' => GESHI_NEVER,
175            'METHODS' => GESHI_NEVER,
176            'NUMBERS' => GESHI_NEVER
177            )
178        )
179);
180