{
  "fileTypes": [
    "CMakeLists.txt",
    "cmake"
  ],
  "keyEquivalent": "^~C",
  "name": "CMake Listfile",
  "patterns": [
    {
      "begin": "(?i)^\\s*(function|macro)\\s*(\\()",
      "beginCaptures": {
        "1": {
          "name": "support.function.cmake"
        },
        "2": {
          "name": "punctuation.definition.parameters.begin.command.cmake"
        }
      },
      "contentName": "meta.function-call.function.cmake",
      "end": "(\\))",
      "endCaptures": {
        "1": {
          "name": "punctuation.definition.parameters.end.command.cmake"
        }
      },
      "name": "meta.function-call.command.cmake",
      "patterns": [
        {
          "include": "#argument-constants"
        },
        {
          "include": "#items"
        }
      ]
    },
    {
      "begin": "(?ix)\n\t\t\t^\\s*\t# Start of the line with optional preceding space\n\t\t\t(?:\t# Either a control flow keyword\n\t\t\t\t((?:end)?(?:(?:else)?if|while|foreach)|return|else)\n\t\t\t\t|\t# Or a function\n\t\t\t\t(s(tring|ite_name|ource_group|ubdir(s|_depends)|e(t(_(source_files_properties|t(ests_properties|arget_properties)|directory_properties|property))?|parate_arguments))|c(onfigure_file|reate_test_sourcelist|make(_(policy|minimum_required)| version 2.8.7))|t(arget_link_libraries|ry_(compile|run))|i(n(stall(_(targets|programs|files))?|clude(_(directories|external_msproject|regular_expression))?)|f)|o(utput_required_files|ption)|define_property|u(se_mangled_mesa|nset|tility_source)|project|e(n(d(if|f(oreach|unction)|while|macro)|able_(testing|language))|lse(if)?|x(port(_library_dependencies)?|ec(_program|ute_process)))|variable_(watch|requires)|qt_wrap_(cpp|ui)|f(i(nd_(p(a(ckage|th)|rogram)|file|library)|le)|oreach|unction|ltk_wrap_ui)|w(hile|rite_file)|l(i(st|nk_(directories|libraries))|oad_c(ommand|ache))|a(dd_(subdirectory|custom_(command|target)|test|de(pendencies|finitions)|executable|library)|ux_source_directory)|re(turn|move(_definitions)?)|get_(source_file_property|cmake_property|t(est_property|arget_property)|directory_property|property|filename_component)|m(essage|a(cro|th|ke_directory|rk_as_advanced))|b(uild_(name|command)|reak))\n\t\t\t\t|\t# Or some function we don’t know about\n\t\t\t\t(\\w+)\n\t\t\t)\n\t\t\t\\s*(\\()\t# Finally, the opening parenthesis for the argument list\n\t\t\t",
      "beginCaptures": {
        "1": {
          "name": "keyword.control.cmake"
        },
        "2": {
          "name": "support.function.cmake"
        },
        "3": {
          "name": "punctuation.definition.parameters.begin.command.cmake"
        }
      },
      "comment": "The command list is simply generated with:\n\t\t\t\tcmake --help-command-list | ruby /Library/Application\\ Support/TextMate/Bundles/Objective-C.tmbundle/Support/list_to_regexp.rb | pbcopy",
      "end": "(\\))",
      "endCaptures": {
        "1": {
          "name": "punctuation.definition.parameters.end.command.cmake"
        }
      },
      "name": "meta.function-call.command.cmake",
      "patterns": [
        {
          "include": "#argument-constants"
        },
        {
          "include": "#items"
        }
      ]
    },
    {
      "include": "#items"
    }
  ],
  "repository": {
    "argument-constants": {
      "comment": "There is a script in bundle support for generating this list:\n\t\t\t\truby arg_separators.rb | /Library/Application\\ Support/TextMate/Bundles/Objective-C.tmbundle/Support/list_to_regexp.rb | pbcopy",
      "match": "\\b(R(UN(_(RESULT_VAR|OUTPUT_VARIABLE)|TIME(_DIRECTORY)?)|E(G(ULAR_EXPRESSION|EX)|MOVE(_(RECURSE|ITEM|DUPLICATES|AT))?|S(OURCE|ULT_VAR(IABLE)?)|NAME|TURN_VALUE|PLACE|VERSE|QUIRED(_VARIABLE(1|2))?|LATIVE(_PATH)?|A(D(_WITH_PREFIX)?|LPATH))|AN(GE|DOM(_SEED)?))|G(R(OUP_(READ|EXECUTE)|EATER)|ET|LOB(_RECURSE|AL)?)|M(ODULE|D5|ESSAGE|A(COSX_BUNDLE|TCH(ES|ALL)?|IN_DEPENDENCY|KE_DIRECTORY))|B(RIEF_DOCS|UNDLE|EFORE)|S(H(OW_PROGRESS|A(RED|1|2(24|56)|384|512))|YSTEM|CRIPT|T(R(GREATER|I(NGS|P)|EQUAL|LESS)|AT(IC|US))|O(RT|URCE(S)?)|UBSTRING|E(ND_ERROR|T))|H(INTS|EX)|N(NNN|O(_(MODULE|S(YSTEM_ENVIRONMENT_PATH|OURCE_PERMISSIONS)|HEX_CONVERSION|CMAKE_(BUILDS_PATH|SYSTEM_PA(CKAGE_REGISTRY|TH)|PA(CKAGE_REGISTRY|TH)|ENVIRONMENT_PATH|FIND_ROOT_PATH)|DEFAULT_PATH|POLICY_SCOPE)|T(E(QUAL)?)?)|EW(LINE_(STYLE|CONSUME))?|AME(S(PACE)?|_WE|LINK_(SKIP|ONLY))?)|C(RLF|M(P(0017)?|AKE_(MODULE_PATH|CROSSCOMPILING|DISABLE_FIND_PACKAGE_|F(IND_ROOT_PATH_BOTH|LAGS)))?|O(M(M(ENT|AND(_NAME)?)|P(ILE_(RESULT_VAR|OUTPUT_VARIABLE|DEFINITIONS)|ONENT(S)?|ARE))|NFIG(S|UR(E(_FILE)?|ATION(S)?))|DE|PY(_FILE|ONLY)?)|VS|LEAR|ACHE(D_VARIABLE)?)|_(COMMAND|VERSION(_(M(INOR|AJOR)|COUNT|TWEAK|PATCH))?)|T(RUE|IMEOUT|O(_(NATIVE_PATH|CMAKE_PATH)|UPPER|LOWER)|EST(_VARIABLE)?|ARGET(S|_FILE)?)|I(MP(ORTED|LICIT_DEPENDS)|S_(SYMLINK|NEWER_THAN|DIRECTORY|ABSOLUTE)|N(S(TALL|ERT)|HERITED|CLUDE_(INTERNALS|DIRECTORIES)|PUT_FILE|ACTIVITY_TIMEOUT)?|TEMS|DE)|O(R|NLY(_CMAKE_FIND_ROOT_PATH)?|UTPUT(_(STRIP_TRAILING_WHITESPACE|DIRECTORY|VARIABLE|QUIET|FILE))?|PTIONAL|FF(SET)?|WNER_(READ|EXECUTE|WRITE)|LD)|D(BAR|IRECTORY(_PERMISSIONS)?|O(S|C|WNLOAD)|E(STINATION|PENDS|FIN(ITION|ED))|FOO)|U(SE_SOURCE_PERMISSIONS|N(IX|KNOWN)|PLOAD)|P(R(IVATE_HEADER|O(GRAM(S|_ARGS)?|JECT_NAME|PERT(Y|IES))|E(_(BUILD|LINK)|ORDER))|O(ST_BUILD|P|LICY)|U(BLIC_HEADER|SH)|ERMISSIONS|A(RENT_SCOPE|CKAGE(_(VERSION(_(COMPATIBLE|UNSUITABLE|EXACT))?|FIND_(NAME|VERSION(_(M(INOR|AJOR)|COUNT|TWEAK|PATCH))?)))?|T(H(S|_(SUFFIXES|TO_MESA))?|TERN)))|E(RROR_(STRIP_TRAILING_WHITESPACE|VARIABLE|QUIET|FILE)|X(CLUDE(_FROM_ALL)?|T(RA_INCLUDE)?|ISTS|P(R|ORT|ECTED_MD5)|ACT)|SCAPE_QUOTES|NV|QUAL)|V(S|ER(BATIM|SION(_(GREATER|EQUAL|LESS))?)|A(R(2|IABLE)?|LUE))|QUIET|F(RAMEWORK|I(ND|LE(S(_MATCHING)?|_PERMISSIONS)?)|O(RCE|LLOW_SYMLINKS)|U(NCTION|LL_DOCS)|ATAL_ERROR)|W(RITE|IN(32|DOWS)|ORKING_DIRECTORY|ARNING)|L(I(MIT(_(COUNT|INPUT|OUTPUT))?|BRARY|STS|NK_(INTERFACE_LIBRARIES|DIRECTORIES|P(RIVATE|UBLIC)|LIBRARIES))|OG|D_LIBRARY_PATH|E(SS|NGTH(_M(INIMUM|AXIMUM))?)|F)|A(R(G(S|_VAR)|CHIVE)|BSOLUTE|SCII|ND|UTHOR_WARNING|PPEND(_STRING)?|FTER|L(PHABET|L)))\\b",
      "name": "keyword.other.argument-separator.cmake"
    },
    "comments": {
      "begin": "(^[ \\t]+)?(?=#)",
      "beginCaptures": {
        "1": {
          "name": "punctuation.whitespace.comment.leading.cmake"
        }
      },
      "end": "(?!\\G)",
      "patterns": [
        {
          "begin": "#",
          "beginCaptures": {
            "0": {
              "name": "punctuation.definition.comment.cmake"
            }
          },
          "end": "\\n",
          "name": "comment.line.number-sign.cmake"
        }
      ]
    },
    "constants": {
      "match": "(?i)\\b(FALSE|OFF|NO|(\\w+-)?NOTFOUND)\\b",
      "name": "constant.language.boolean.cmake"
    },
    "escapes": {
      "patterns": [
        {
          "match": "\\\\[\"()#$^ \\\\]",
          "name": "constant.character.escape.cmake"
        }
      ]
    },
    "items": {
      "patterns": [
        {
          "include": "#comments"
        },
        {
          "include": "#constants"
        },
        {
          "include": "#strings"
        },
        {
          "include": "#variables"
        },
        {
          "include": "#escapes"
        }
      ]
    },
    "strings": {
      "patterns": [
        {
          "captures": {
            "1": {
              "name": "constant.language.boolean.cmake"
            }
          },
          "match": "(?i)\"(FALSE|OFF|NO|(.+-)?NOTFOUND)\"",
          "name": "string.quoted.double.cmake"
        },
        {
          "begin": "\"",
          "end": "\"",
          "name": "string.quoted.double.cmake",
          "patterns": [
            {
              "match": "\\\\.",
              "name": "constant.character.escape.cmake"
            },
            {
              "include": "#variables"
            }
          ]
        }
      ]
    },
    "variables": {
      "begin": "\\$(ENV)?\\{",
      "beginCaptures": {
        "0": {
          "name": "punctuation.definition.variable.begin.cmake"
        }
      },
      "end": "\\}",
      "endCaptures": {
        "0": {
          "name": "punctuation.definition.variable.end.cmake"
        }
      },
      "name": "variable.cmake",
      "patterns": [
        {
          "include": "#variables"
        },
        {
          "match": "\\w+"
        }
      ]
    }
  },
  "scopeName": "source.cmake",
  "uuid": "6E939107-5C78-455D-A7E6-1107ADC777C2"
}