options :: [OptDescr (OptParser Opts)]
options =
  [ Option "b" ["backend"]   (ReqArg setBackend "BACKEND")
      "code generator backend"
  , Option "i" ["idl"]       (ReqArg setIdlPath "FILE")
      "IDL file"
  , Option "o" ["out"]       (ReqArg setOutPath "DIR")
      "root directory for output"
  , Option []  ["ivory-repo"] (ReqArg setIvoryRepo "REPO")
      "root of ivory.git (for Ivory and Tower backends only)"
  , Option []  ["tower-repo"] (ReqArg setTowerRepo "REPO")
      "root of tower.git (for Tower backend only)"
  , Option []  ["ivory-tower-stm32-repo"]
      (ReqArg setIvoryTowerSTM32Repo "REPO")
      "root of ivory-tower-stm32.git (for Tower backend only)"
  , Option "p" ["package"]   (ReqArg setPackageName "NAME")
      "package name for output"
  , Option "n" ["namespace"] (ReqArg setNamespace "NAME")
      "namespace for output"
  , Option ""  ["debug"]     (NoArg setDebug)
      "enable debugging output"
  , Option "h" ["help"]      (NoArg setHelp)
      "display this message and exit"
  ]
options :: [OptDescr (OptParser Opts)]
options =
  [ Option "b" ["backend"]   (ReqArg setBackend "BACKEND")
      "code generator backend"
  , Option "i" ["idl"]       (ReqArg setIdlPath "FILE")
      "IDL file"
  , Option "o" ["out"]       (ReqArg setOutPath "DIR")
      "root directory for output"
  , Option []  ["ivory-repo"] (ReqArg setIvoryRepo "REPO")
      "root of ivory.git (for Ivory and Tower backends only)"
  , Option []  ["tower-repo"] (ReqArg setTowerRepo "REPO")
      "root of tower.git (for Tower backend only)"
  , Option []  ["ivory-tower-stm32-repo"]
      (ReqArg setIvoryTowerSTM32Repo "REPO")
      "root of ivory-tower-stm32.git (for Tower backend only)"
  , Option "p" ["package"]   (ReqArg setPackageName "NAME")
      "package name for output"
  , Option "n" ["namespace"] (ReqArg setNamespace "NAME")
      "namespace for output"
  , Option ""  ["debug"]     (NoArg setDebug)
      "enable debugging output"
  , Option "h" ["help"]      (NoArg setHelp)
      "display this message and exit"
  ]
options =
  [ Option "b" ["backend"]   (ReqArg setBackend "BACKEND")
      "code generator backend"
  , Option "i" ["idl"]       (ReqArg setIdlPath "FILE")
      "IDL file"
  , Option "o" ["out"]       (ReqArg setOutPath "DIR")
      "root directory for output"
  , Option []  ["ivory-repo"] (ReqArg setIvoryRepo "REPO")
      "root of ivory.git (for Ivory and Tower backends only)"
  , Option []  ["tower-repo"] (ReqArg setTowerRepo "REPO")
      "root of tower.git (for Tower backend only)"
  , Option []  ["ivory-tower-stm32-repo"]
      (ReqArg setIvoryTowerSTM32Repo "REPO")
      "root of ivory-tower-stm32.git (for Tower backend only)"
  , Option "p" ["package"]   (ReqArg setPackageName "NAME")
      "package name for output"
  , Option "n" ["namespace"] (ReqArg setNamespace "NAME")
      "namespace for output"
  , Option ""  ["debug"]     (NoArg setDebug)
      "enable debugging output"
  , Option "h" ["help"]      (NoArg setHelp)
      "display this message and exit"
  ]