SCons: Builder with $TARGET not specified creates builder output in src dir instead of variant dir?

The foo_binary takes input. Foo and produces output. C in the same directory as the input?

How are you calling the builder? Like this? Env.

FooBuilder('foo. C', 'foo. Foo').

The foo_binary takes input. Foo and produces output. C in the same directory as the input?

How are you calling the builder? Like this? Env.

FooBuilder('foo. C', 'foo. Foo').

When using variant dir, scons expects the output of the builder to go to variant_dir/foo.c. When that fails, it thinks you have deleted the file and recreates it next build. I bet the first build also fails, but the second works because scons finds the "foo.

C" that is in your source tree. Sounds like the easiest way is to have the foo_binary generate the output in the source directory, then move it afterwards. You said you tried this, but you maybe did it as a separate step, not in the same builder.In that case it would have got all muddled up about paths.

This should do the trick: sFooBuilder = Builder(action= os.path. Join(rBuildPath, 'foo_binary') + ' $SOURCE', Move('$TARGET. Dir', '$TARGET.

Srcpath'), suffix = '. C', src_suffix = '. Foo' ) This runs 2 steps in the same builder action: foo_binary foo.

Foo mv foo. C variant_dir Now that the builder does what you say it does (create foo. C in the variant dir) it should all work as expected.

The other solution would be to copy the input file to the build directory, but that is not possible with the same file name in the source and build directories. SCons gets a bit confused and pulls in the source directory file first. If you used different names it would be doable (foo.foo.

In copied to foo. Foo in the variant dir, then transform that to foo. C), but seems a bit messy.

The foo_binary takes input. Foo and produces output. C in the same directory as the input?

Yes ->How are you calling the builder? Like this? Env.

FooBuilder('foo. C', 'foo. Foo').

No, env. FooBuilder('foo. Foo') ->This should do the trick: Word.

Indeed did it help to execute the builder and the copying in one step. Before I was trying to do it in two seperate steps. Thanks for the fast reply!Cheers.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions