Hi,

I'm working on KF5 Portfiles, and have the following routine to help defining 
dependencies in the PortGroup:

{{{
# variables to facilitate setting up dependencies to KF5 frameworks that may 
(or not)
# also exist as port:kf5-foo-devel .
proc kf5.framework_dependency {name {library 0}} {
    upvar #0 kf5.${name}_dep dep
    if {${library} ne 0} {
            set kf5.lib_path    lib
            set kf5.lib_ext     5.dylib
        set dep                 
path:${kf5.lib_path}/${library}.${kf5.lib_ext}:kf5-${name}
        ui_debug "Dependency expression for KF5ramework ${name}: ${dep}"
    } else {
        set strlen [string length [info global "kf5.${name}_dep"]]
        if {${strlen} ne 0} {
            return ${dep}
        } else {
            set allknown [info global "kf5.*_dep"]
            ui_error "No KF5 framework is known corresponding to \"${name}\""
            ui_msg "Known framework ports: ${allknown}"
            return -code error "Unknown KF5 framework ${name}"
        }
    }
}
}}}

That procedure is used either to define a path-style dependency, or to obtain 
it, mapping the official (lowercase) framework name to the corresponding port 
name. What I wonder is whether the existence check is done the way it should. 
From what I read, [info exists varname] should detect the existence of 
variables no matter the frame they're defined in, but [info exists 
kf5.${name}_dep] always returns false for me. Maybe [info exists] doesn't work 
with patterns?

Thanks,
R.
_______________________________________________
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to