db3a61cd95
...instead of by listing the content somewhat redundantly in the Rdb_*.mk files, to avoid duplication of logic for components that are only built conditionally (and thus should only be included conditionally in the corresponding Rdb). To achieve that, add an "rdb" parameter to gb_ComponentTarget_ComponentTarget (and to the gb_*_set_componentfile macros that internally call gb_ComponentTarget_ComponentTarget), which is used to make the appropriate gb_Rdb_add_component call internally from within gb_ComponentTarget_ComponentTarget. (As a special case, gb_CppunitTest_set_componentfile shall not call gb_Rdb_add_component, as that has already been done by the corresponding gb_Library_set_componentfile call, so allow the gb_ComponentTarget_ComponentTarget "rdb" parameter to be empty to support that special case.) Most Rdb_*.mk files are thus mostly empty now. One exception is i18npool/Rdb_saxparser.mk, which duplicates some of the Rdb_services content as needed during the build in CustomTarget_i18npool/localedata. |
||
---|---|---|
.. | ||
demo | ||
doc | ||
inc | ||
qa/pytests | ||
source | ||
zipcore | ||
CustomTarget_python_shell.mk | ||
CustomTarget_pyuno_pythonloader_ini.mk | ||
Executable_python.mk | ||
IwyuFilter_pyuno.yaml | ||
Library_pythonloader.mk | ||
Library_pyuno.mk | ||
Library_pyuno_wrapper.mk | ||
Makefile | ||
Module_pyuno.mk | ||
Package_python_scripts.mk | ||
Package_python_shell.mk | ||
Package_pyuno_pythonloader_ini.mk | ||
PythonTest_pyuno_pytests_insertremovecells.mk | ||
PythonTest_pyuno_pytests_testcollections.mk | ||
PythonTest_pyuno_pytests_testssl.mk | ||
Rdb_pyuno.mk | ||
README.md |
Python UNO Bindings
UNO bindings for the Python programming language.
To have much joy debugging Python extensions you need to:
- a) edit
pythonloader.py
in your install settingDEBUG=1
at the top - b)
touch pyuno/source/module/pyuno_runtime.cxx
andmake debug=true
inpyuno
Then you'll start to see your exceptions on the console instead of them getting lost at the UNO interface.
Python also comes with a gdb script
libpython$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)m.so.1.0-gdb.py
that is copied to instdir
and will be auto-loaded by gdb
;
it provides commands like py-bt
to get a Python-level backtrace,
and py-print
to print Python variables.
Another way to debug Python code is to use pdb
: edit some initialization
function to insert import pdb; pdb.set_trace()
(somewhere so that it is
executed early), then run soffice
from a terminal and a command-line Python
debugger will appear where you can set Python-level breakpoints.