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.)