From Seedo Paul to ~lattis/muon
--- src/functions/modules/python.c | 21 +++++++++++++++++++++ tests/project/muon/python/meson.build | 3 +++ 2 files changed, 24 insertions(+) diff --git a/src/functions/modules/python.c b/src/functions/modules/python.c index c5024ddb..2ff5db1d 100644 --- a/src/functions/modules/python.c +++ b/src/functions/modules/python.c @@ -395,6 +395,26 @@ func_python_installation_get_install_dir(struct workspace *wk, obj self, obj *re return get_install_dir(wk, self, pure, subdir, res); } static bool[message trimmed]
From Seedo Paul to ~lattis/muon
Hi, I just noticed that I missed this method. The implementation is copied from that of `external_program.full_path()`. Thanks! Seedo Paul (1): mod/python: add `python_installation.path()` src/functions/modules/python.c | 21 +++++++++++++++++++++ tests/project/muon/python/meson.build | 3 +++ 2 files changed, 24 insertions(+)
From Seedo Paul to ~lattis/muon
Tests that fail due to missing implementation are commented out. --- tests/project/meson.build | 14 +++++ .../project/python/1 basic/gluon/__init__.py | 0 .../project/python/1 basic/gluon/gluonator.py | 2 + tests/project/python/1 basic/meson.build | 30 ++++++++++ tests/project/python/1 basic/prog.py | 8 +++ .../project/python/1 basic/subdir/meson.build | 4 ++ .../project/python/1 basic/subdir/subprog.py | 11 ++++ .../meson.build | 10 ++++ .../module.c | 17 ++++++ .../project/python/2 extmodule/blaster.py.in | 11 ++++ .../python/2 extmodule/ext/meson.build | 15 +++++ .../python/2 extmodule/ext/nested/meson.build | 32 ++++++++++
From Seedo Paul to ~lattis/muon
--- src/functions/modules/python.c | 125 +++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) diff --git a/src/functions/modules/python.c b/src/functions/modules/python.c index c5024ddb..a0768f52 100644 --- a/src/functions/modules/python.c +++ b/src/functions/modules/python.c @@ -395,6 +395,130 @@ func_python_installation_get_install_dir(struct workspace *wk, obj self, obj *re return get_install_dir(wk, self, pure, subdir, res); } struct py_install_data_rename_ctx { obj rename;[message trimmed]
From Seedo Paul to ~lattis/muon
Hi, Patch 1/2 implements `install_sources()`. The implementation is mostly a copy-paste from `install_data()`. Those kwargs not implemented are marked with a TODO comment. Patch 2/2 imports the test suite for Python module from the meson project. Not all of the tests run currently (due to missing impl of `dependency()` and `extension_module()`) - these are commented out for now. Thanks! Seedo Paul (2):
From Seedo Eldho Paul to ~lattis/muon
Hi, Other unimplemented methods / options: The main missing methods are `dependency()` and`extension_modules()`. Except for two additional kwargs, `dependency()` takes the same kwargs as the standard `dependency()` function and returns a `python_dependency` (that exposes the same methods as `dep` object). `extension_modules()` has more or less the same semantics as the function `shared_module()`. Since both of these methods have considerable overlap with their existing standard function counterparts, I am unsure how best to implement them. Is it possible to "offload" part of a module to meson script? Any ideas / help welcome.
From Seedo Paul to ~lattis/muon
--- src/functions/external_program.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/functions/external_program.c b/src/functions/external_program.c index c8fcce60..5c749225 100644 --- a/src/functions/external_program.c +++ b/src/functions/external_program.c @@ -27,7 +27,9 @@ find_program_guess_version(struct workspace *wk, obj cmd_array, obj *ver) join_args_argstr(wk, &argstr, &argc, args); if (run_cmd(&cmd_ctx, argstr, argc, NULL, 0) && cmd_ctx.status == 0) { guess_version(wk, cmd_ctx.out.buf, ver); if (!guess_version(wk, cmd_ctx.out.buf, ver)) {[message trimmed]
From Seedo Paul to ~lattis/muon
--- src/guess.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/guess.c b/src/guess.c index af28a7fd..aed63c3b 100644 --- a/src/guess.c +++ b/src/guess.c @@ -15,6 +15,10 @@ guess_version(struct workspace *wk, const char *src, obj *res) uint32_t dots = 0, ver_len = 0, new_len, new_dots; const char *p, *ver = NULL; if (!src) { return false;[message trimmed]
From Seedo Paul to ~lattis/muon
Hi, Patch 1/2 checks for and returns early if a null pointer is supplied as input, thus preventing a crash / undefined behavior while dereferencing it in the code following. Patch 2/2 sets the version to 'unknown' as required by meson documentation. Thanks! Seedo Paul (2): guess: return early if source string is null external_program: use 'unknown' as fallback version
From Seedo Paul to ~lattis/muon
--- src/functions/modules/python.c | 79 +++++++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/src/functions/modules/python.c b/src/functions/modules/python.c index 4e9400a5..7c092be9 100644 --- a/src/functions/modules/python.c +++ b/src/functions/modules/python.c @@ -7,12 +7,14 @@ #include "compat.h" #include "lang/object.h" #include <string.h> #include "options.h"[message trimmed]