This commit introduces the 'pythonmaker' executable, a new tool in the codemaker module. pythonmaker generates Python type stub files (.pyi) from UNO IDL type libraries (.rdb files). This enables static type checking and modern IDE features like auto-completion for developers writing Python scripts for LibreOffice. This commit includes the complete, feature-complete tool capable of handling all major IDL entity types (enums, constants, typedefs, structs, exceptions, interfaces, services, and singletons). Change-Id: I52f783aa982e1de04a207a9a884aee207f99d193 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185498 Tested-by: Jenkins Tested-by: Hossein <hossein@libreoffice.org> Reviewed-by: Hossein <hossein@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Language Code Generators for UNOIDL Entities
Generators for language-binding--specific representations of UNOIDL entities:
cppumakergenerates header (.hdland.hpp) files for the C++ UNO language bindingjavamakergenerates class files for the JVM language bindingnetmakergenerates C# code files for the .NET language bindingclimaker(the old codemaker for .NET Framework) is in modulecli_urepythonmakergenerates Python stub (pyi) files for the Python UNO language binding
Some of the code is re-used by the skeletonmakers in module unodevtools.
Note the different terminology used by cppumaker vs. gbuild for the three variants that can be generated by cppumaker for some of the inline functions:
cppumaker switch: -L; cpputype.cxx: light; gbuild: normal;
cppumaker switch: none; cpputype.cxx: normal; gbuild: bootstrap;
cppumaker switch: -C; cpputype.cxx: comprehensive; gbuild: comprehensive;
which can be a source of confusion.