{
  "description": "Compile C/C++ sources to WebAssembly and JavaScript with emcc (em++ takes the same options). Optimization levels are separate switches; pick at most one. Other -s settings and clang options are not covered.",
  "options": [
    {
      "names": [
        "-o"
      ],
      "description": "The extension picks the output type, for example .html, .js or .wasm.",
      "args": {
        "name": "output",
        "description": "The extension picks the output type, for example .html, .js or .wasm.",
        "isOptional": false,
        "template": "filepaths"
      },
      "isDangerous": true
    },
    {
      "names": [
        "-c"
      ],
      "description": "Produce an object file instead of linking."
    },
    {
      "names": [
        "-O2"
      ],
      "description": "Optimize (-O2)"
    },
    {
      "names": [
        "-O3"
      ],
      "description": "Optimize more (-O3)"
    },
    {
      "names": [
        "-Oz"
      ],
      "description": "Optimize for size (-Oz)"
    },
    {
      "names": [
        "-g"
      ],
      "description": "Debug info"
    },
    {
      "names": [
        "--embed-file"
      ],
      "description": "Embed a file or directory in the generated output.",
      "args": {
        "name": "embed_file",
        "description": "Embed a file or directory in the generated output.",
        "isOptional": false,
        "isVariadic": true,
        "template": "filepaths"
      },
      "isRepeatable": true
    },
    {
      "names": [
        "--preload-file"
      ],
      "description": "Package a file or directory to load before the program starts.",
      "args": {
        "name": "preload_file",
        "description": "Package a file or directory to load before the program starts.",
        "isOptional": false,
        "isVariadic": true,
        "template": "filepaths"
      },
      "isRepeatable": true
    },
    {
      "names": [
        "--shell-file"
      ],
      "description": "HTML shell file",
      "args": {
        "name": "shell_file",
        "isOptional": false,
        "template": "filepaths"
      }
    },
    {
      "names": [
        "--bind"
      ],
      "description": "Embind bindings"
    },
    {
      "names": [
        "--closure"
      ],
      "description": "Closure compiler",
      "args": {
        "name": "closure",
        "isOptional": false,
        "suggestions": [
          {
            "name": "0",
            "description": "Off"
          },
          {
            "name": "1",
            "description": "On"
          },
          {
            "name": "2",
            "description": "Aggressive"
          }
        ]
      }
    }
  ],
  "args": [
    {
      "name": "inputs",
      "isOptional": false,
      "isVariadic": true,
      "template": "filepaths"
    }
  ],
  "name": "emcc",
  "aliases": [
    "em++",
    "emar",
    "emcmake",
    "emconfigure"
  ]
}
