Por que o SCons VariantDir () não coloca a saída no diretório fornecido?

Estou pensando em usarSCons para um novo projeto. Parece muito bom, embora eu esteja achandoVariantDir bastante confuso.

Eu tenho um projeto simples com um punhado de arquivos de origem C em um diretório, e eu quero construir em modo "normal" e "perfil" - com dois conjuntos diferentes de opções para o gcc. Eu quero as saídas para os diretórios normal / e profile /, respectivamente.

Para o teste, reduzi para apenas um arquivo de origem, t.c, que tem ummain() nisso. MinhasSConstruct arquivo está no mesmo diretório, e se parece com isso:

normal = DefaultEnvironment(tools=['mingw'], CCFLAGS = '-O2')
normal.VariantDir('release', '.', duplicate=0)
normal.Program('t', ['t.c'])

#profile = normal.Clone(CCFLAGS='-O2 -pg', LINKFLAGS = '-pg')
#profile.VariantDir('profile', '.', duplicate=0)
#profile.Program('t', ['t.c'])

Quando executo o scons, espero que ele coloque o t.o e t.exe no release /, mas os coloca no diretório atual. E eu não posso executá-lo com as 3 linhas de perfil descomentadas - se o fizer, recebo este erro:

scons: *** Dois ambientes com ações diferentes foram especificados para o mesmo alvo:

Basicamente, não tenho certeza por que minhas chamadas VariantDir () não estão dizendo ao scons para colocar a saída no diretório de saída especificado,release.

(Eu li um pouco nos docs e newsgroups, mas nada que responda a esta pergunta. O mais próximo que eu cheguei éesta página, que descreve uma coisa semelhante, mas envolve um diretório src / separado e dois arquivos scons separados, além de importar / exportar variáveis ​​entre eles. Isso não parece agradável.

questionAnswers(3)

yourAnswerToTheQuestion