[Scons-users] issue with variant-dir
Stefan Seefeld
stefan at seefeld.name
Thu Aug 4 17:55:28 EDT 2016
Hi,
I'm having some issue with the variant_dir variable. I have reduced the
problem to a minimal test case, so let me illustrate the problem with that:
Consider the following directory structure:
./SConstruct
./src/SConscript
index.html
style.css
images/
./build/
./html/
The toplevel SConstruct file contains "env.SConscript('src/SConscript',
variant_dir='build', exports={'env':env})",
and the src/SConscript file contains this chunk of code:
Import('env')
def MakeHTML(target, source, resources=[]):
env.Command(target, source,
[Mkdir('$TARGET'),
Copy('$TARGET/', '$SOURCE')])
for r in resources:
env.Depends(target, target + r)
env.Command(target + r, r, Copy('$TARGET', '$SOURCE'))
MakeHTML('html/', 'index.html', resources=['style.css', 'images/'])
The intent is simply to copy "index.html" and its dependencies
("style.css" and "images/") from src/ into html/, using "./build" as a
temporary build directory. SCons will start by creating "build/" and
clone "index.html" and "style.css" into it together with the
"SConscript" file. For some reason it does not clone the "images/"
directory. This causes the actual build command (here just a simple
copy) to fail with
"scons: *** [build/html/images] build/images: No such file or directory"
Note that everything works fine if I don't use a variant directory.
Does anyone know what I'm doing wrong ? (I don't want to list the
individual files in "images/" explicitly in my SConscript file.)
Thanks,
Stefan
--
...ich hab' noch einen Koffer in Berlin...
More information about the Scons-users
mailing list