{"I=","the {PATH} of a folder to search for include files",i=>{AddIncludeDirs(i);}},
{"l=","{LIBRARY} that that contains the symbols of the generated code",l=>_options.Libraries.Add(l)},
{"L=","the {PATH} of a folder to search for additional libraries",l=>_options.LibraryDirs.Add(l)},
{"D:","additional define with (optional) value to add to be used while parsing the given header files",(n,v)=>AddDefine(n,v)},
optionSet.Add("I=","the {PATH} of a folder to search for include files",(i)=>{AddIncludeDirs(i,messages);});
optionSet.Add("l=","{LIBRARY} that that contains the symbols of the generated code",l=>options.Libraries.Add(l));
optionSet.Add("L=","the {PATH} of a folder to search for additional libraries",l=>options.LibraryDirs.Add(l));
optionSet.Add("D:","additional define with (optional) value to add to be used while parsing the given header files",(n,v)=>AddDefine(n,v,messages));
{"o=|output=","the {PATH} for the generated bindings file (doesn't need the extension since it will depend on the generator)",v=>HandleOutputArg(v)},
{"on=|outputnamespace=","the {NAMESPACE} that will be used for the generated code",on=>_options.OutputNamespace=on},
optionSet.Add("o=|output=","the {PATH} for the generated bindings file (doesn't need the extension since it will depend on the generator)",v=>HandleOutputArg(v,messages));
optionSet.Add("on=|outputnamespace=","the {NAMESPACE} that will be used for the generated code",on=>options.OutputNamespace=on);
{"iln=|inputlibraryname=","the {NAME} of the shared library that contains the symbols of the generated code",iln=>_options.InputLibraryName=iln},
optionSet.Add("iln=|inputlibraryname=","the {NAME} of the shared library that contains the symbols of the generated code",iln=>options.InputLibraryName=iln);
{"g=|gen=|generator=","the {TYPE} of generated code: 'chsarp' or 'cli' ('cli' supported only for Windows)",g=>{GetGeneratorKind(g);}},
{"p=|platform=","the {PLATFORM} that the generated code will target: 'win', 'osx' or 'linux'",p=>{GetDestinationPlatform(p);}},
{"a=|arch=","the {ARCHITECTURE} that the generated code will target: 'x86' or 'x64'",a=>{GetDestinationArchitecture(a);}},
optionSet.Add("g=|gen=|generator=","the {TYPE} of generated code: 'chsarp' or 'cli' ('cli' supported only for Windows)",g=>{GetGeneratorKind(g,messages);});
optionSet.Add("p=|platform=","the {PLATFORM} that the generated code will target: 'win', 'osx' or 'linux'",p=>{GetDestinationPlatform(p,messages);});
optionSet.Add("a=|arch=","the {ARCHITECTURE} that the generated code will target: 'x86' or 'x64'",a=>{GetDestinationArchitecture(a,messages);});
{"c++11","enables GCC C++ 11 compilation (valid only for Linux platform)",cpp11=>{_options.Cpp11ABI=(cpp11!=null);}},
{"cs|checksymbols","enable the symbol check for the generated code",cs=>{_options.CheckSymbols=(cs!=null);}},
thrownewNotSupportedException("Input library name not specified and check symbols not enabled. Either set the input library name or the check symbols flag");
thrownewNotSupportedException("Input library name not specified and check symbols is enabled but no libraries were given. Either set the input library name or add at least one library");
messages.Add("Input library name not specified and check symbols is enabled but no libraries were given. Either set the input library name or add at least one library");