This is an automated email from the ASF dual-hosted git repository.

sjanc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-newt.git

commit b302e27a6c026e94e3470a400e32fd05770abc99
Author: Michal Gorecki <[email protected]>
AuthorDate: Fri Aug 29 16:01:18 2025 +0200

    newt: Add constant syscfg for each package
    
    Now every package included in build will add
    syscfg PKG_<pkg.name> and set it to 1.
    This config can be used to conditionally include
    other configs or packages if some package is included.
---
 newt/resolve/resolve.go |  1 +
 newt/syscfg/marshal.go  |  1 +
 newt/syscfg/syscfg.go   | 16 ++++++++++++++++
 3 files changed, 18 insertions(+)

diff --git a/newt/resolve/resolve.go b/newt/resolve/resolve.go
index d930aa25..4678ea6a 100644
--- a/newt/resolve/resolve.go
+++ b/newt/resolve/resolve.go
@@ -601,6 +601,7 @@ func (r *Resolver) reloadCfg() (bool, error) {
 
        cfg.AddInjectedSettings()
        cfg.ResolveValueRefs()
+       cfg.AddPkgNamesSettings(lpkgs)
 
        // Determine if any new settings have been added or if any existing
        // settings have changed.
diff --git a/newt/syscfg/marshal.go b/newt/syscfg/marshal.go
index 5b3f2a00..5d5caa73 100644
--- a/newt/syscfg/marshal.go
+++ b/newt/syscfg/marshal.go
@@ -33,6 +33,7 @@ var cfgSettingNameTypeMap = map[string]CfgSettingType{
 
 var cfgSettingNameStateMap = map[string]CfgSettingState{
        "good":         CFG_SETTING_STATE_GOOD,
+       "const":        CFG_SETTING_STATE_CONST,
        "deprecated":   CFG_SETTING_STATE_DEPRECATED,
        "defunct":      CFG_SETTING_STATE_DEFUNCT,
        "experimental": CFG_SETTING_STATE_EXPERIMENTAL,
diff --git a/newt/syscfg/syscfg.go b/newt/syscfg/syscfg.go
index 886699cc..7e74c049 100644
--- a/newt/syscfg/syscfg.go
+++ b/newt/syscfg/syscfg.go
@@ -242,6 +242,22 @@ func (cfg *Cfg) AddInjectedSettings() {
        }
 }
 
+func (cfg *Cfg) AddPkgNamesSettings(pkgs []*pkg.LocalPackage) {
+       for _, pkg := range pkgs {
+               entry := CfgEntry{
+                       Name:       "PKG_" + pkg.Name(),
+                       PackageDef: pkg,
+                       State:      CFG_SETTING_STATE_CONST,
+                       Value:      "1",
+                       History: []CfgPoint{{
+                               Value:  "1",
+                               Source: pkg,
+                       }},
+               }
+               cfg.Settings[entry.Name] = entry
+       }
+}
+
 func (cfg *Cfg) ResolveValueRefs() {
        for k, entry := range cfg.Settings {
                refName, val, err := 
cfg.ExpandRef(strings.TrimSpace(entry.Value))

Reply via email to