On 2022-9-1 21:51 , Steven Smith wrote:
How does one convert a build.env list into a working string for sh env?
If I specify this build.env
build.env-append \
CC=${configure.cc <http://configure.cc>} \
"CFLAGS=${configure.cflags} [get_canonical_archflags cc]"
and later say something like
system "env ${build.env}"
This tcl string with braces ‘{…}’ is passed to the shell, which breaks:
env CC=/usr/bin/clang {CFLAGS=-Os -arch x86_64}
Rather, I need a port file command that converts build.env to:
env CC=/usr/bin/clang CFLAGS="-Os -arch x86_64"
Ideally you would run this as part of build.cmd (or some other command)
and have MacPorts set up the environment directly for you. But if you
have to do it this way, something like this should work:
foreach e ${build.env} {
lappend envargs [shellescape $e]
}
system "env [join $envargs] ..."
- Josh