| #!/usr/bin/env python3 |
| # This script is a wrapper to invoke nanopb_generator from an installed Python module. |
| import sys |
| import os.path |
| |
| # CMakeLists.txt can provide this file the path to Python module installation |
| # location. It is used as a relative path. By default only system path is used. |
| python_instdir = r"@PYTHON_INSTDIR@" |
| cmake_bindir = r"@CMAKE_INSTALL_BINDIR@" |
| cmake_install_prefix = r"@CMAKE_INSTALL_PREFIX@" |
| if python_instdir[0] != '@': |
| python_instdir = os.path.join(cmake_install_prefix, python_instdir) |
| cmake_bindir = os.path.join(cmake_install_prefix, cmake_bindir) |
| relpath = os.path.relpath(python_instdir, cmake_bindir) |
| bindir = os.path.dirname(os.path.realpath(__file__)) |
| libdir = os.path.abspath(os.path.join(bindir, relpath)) |
| if os.path.isdir(libdir): |
| sys.path.insert(0, libdir) # Path after make install |
| else: |
| sys.path.insert(0, bindir) # Path before make install |
| |
| from nanopb.generator.nanopb_generator import main_cli, main_plugin |
| if __name__ == '__main__': |
| sys.exit(main_cli()) |