Dlaczego SCons VariantDir () nie umieszcza danych wyjściowych w podanym katalogu?

Myślę o użyciuSCons na nowy projekt. Wygląda naprawdę dobrze, chociaż znajdujęVariantDir dość mylące.

Mam prosty projekt z kilkoma plikami źródłowymi C w jednym katalogu i chcę budować w trybie „normalnym” i „profilowym” - z dwoma różnymi zestawami opcji dla gcc. Chcę, aby dane wyjściowe trafiały odpowiednio do normalnych / i profili / katalogów.

Do testów wróciłem tylko do jednego pliku źródłowego, t.c, który mamain() w tym. MójSConstruct plik znajduje się w tym samym katalogu i wygląda tak:

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'])

Kiedy uruchamiam scons, oczekuję, że umieści t.o i t.exe w wydaniu /, ale umieści je w bieżącym katalogu. I nie mogę go uruchomić w ogóle z 3 liniami profilu bez komentarza - jeśli to zrobię, otrzymuję ten błąd:

scons: *** Określono dwa środowiska z różnymi działaniami dla tego samego celu: t.o

Zasadniczo nie jestem pewien, dlaczego moje wywołania VariantDir () nie mówią sconsowi, aby umieścił dane wyjściowe w określonym katalogu wyjściowym,release.

(Czytałem spory kawałek w dokumentach i grupach dyskusyjnych, ale nic, co odpowiada na to pytanie. Najbliższe, jakie mi przyszłota strona, który opisuje podobną rzecz, ale wymaga oddzielnego katalogu src / i dwóch oddzielnych plików scons oraz importowania / eksportowania zmiennych między nimi. To nie wydaje się przyjemne.)

questionAnswers(3)

yourAnswerToTheQuestion