tcl question: defining dynamically named variables in a namespace

René J.V. Bertin rjvbertin at gmail.com
Fri Oct 7 03:47:39 PDT 2016


Hi,

I have a procedure in a PortGroup that is used to define dependency variables for KF5, hiding the whole mechanism behind kf5-foo and kf5-foo-devel interchangeability from the casual port developer (and making it easy for myself too).

Basically:

{{{
proc kf5.framework_dependency {name {library 0} {soversion 5}} {
    upvar #0 kf5.${name}_dep dep
    upvar #0 kf5.${name}_lib lib
# snip
        set lib                 ${kf5.lib_path}/${library}.${kf5.lib_ext}
        set dep                 path:${lib}:kf5-${name}
}}}

so that `kf5.framework_dependency libKF5Foo foo` allows me to do `depends_lib-append ${kf5.foo_dep}` afterwards (and there's another procedure hiding even that behind `kf5.depends_frameworks foo`).

I'm tidying up the variable use by the KF5 portgroup, moving as much as possible into a kf5 namespace. I haven't yet figured out how to rewrite that function above such that the kf5.*_dep and kf5.*_lib variables are moved from the global to the dedicated namespace (= become kf5::*_dep and kf5::*_lib). Is that even possible?

Thanks,
René


More information about the macports-dev mailing list