From eb2e91d40f82121b0fe9973e966a6f588003ccfd Mon Sep 17 00:00:00 2001 From: Jumar Macato <16554748+jmacato@users.noreply.github.com> Date: Wed, 29 Apr 2026 05:53:39 +0800 Subject: [PATCH] Allow explicit D-Bus source-gen namespaces --- src/Avalonia.DBus.SourceGen/Avalonia.DBus.SourceGen.props | 1 + src/Avalonia.DBus.SourceGen/DBusSourceGenerator.cs | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.DBus.SourceGen/Avalonia.DBus.SourceGen.props b/src/Avalonia.DBus.SourceGen/Avalonia.DBus.SourceGen.props index f1dbf91..089a307 100644 --- a/src/Avalonia.DBus.SourceGen/Avalonia.DBus.SourceGen.props +++ b/src/Avalonia.DBus.SourceGen/Avalonia.DBus.SourceGen.props @@ -1,5 +1,6 @@ + diff --git a/src/Avalonia.DBus.SourceGen/DBusSourceGenerator.cs b/src/Avalonia.DBus.SourceGen/DBusSourceGenerator.cs index 81d7762..f1d2c9f 100644 --- a/src/Avalonia.DBus.SourceGen/DBusSourceGenerator.cs +++ b/src/Avalonia.DBus.SourceGen/DBusSourceGenerator.cs @@ -61,9 +61,13 @@ public void Initialize(IncrementalGeneratorInitializationContext context) if (dBusNode.Interfaces is null) return default; + var options = x.Right.GetOptions(x.Left); + options.TryGetValue("build_metadata.AdditionalFiles.DBusNamespace", out var explicitNamespace); x.Right.GlobalOptions.TryGetValue("build_property.ProjectDir", out var projectDir); x.Right.GlobalOptions.TryGetValue("build_property.RootNamespace", out var rootNamespace); - var userFacingNamespace = GetUserFacingNamespace(x.Left.Path, projectDir, rootNamespace); + var userFacingNamespace = string.IsNullOrWhiteSpace(explicitNamespace) + ? GetUserFacingNamespace(x.Left.Path, projectDir, rootNamespace) + : NormalizeNamespace(null, explicitNamespace!); return new XmlParseResult(dBusNode, generatorMode, x.Left.Path, userFacingNamespace, null); } catch (Exception ex)