Angielskifrancuskihiszpański

Ulubiona usługa OnWorks

scons - Online w chmurze

Uruchom skanowanie w darmowym dostawcy hostingu OnWorks za pośrednictwem Ubuntu Online, Fedora Online, emulatora online systemu Windows lub emulatora online systemu MAC OS

To jest polecenie scons, które można uruchomić w bezpłatnym dostawcy hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


scons – narzędzie do tworzenia oprogramowania

STRESZCZENIE


szyderstwa [Opcje...] [nazwa=wartość...] [cele...]

OPIS


Kurs szyderstwa narzędzie tworzy oprogramowanie (lub inne pliki), określając, które elementy składowe
należy odbudować i wykonać niezbędne polecenia, aby je odbudować.

Domyślnie szyderstwa szuka pliku o nazwie SCkonstrukcja, Skonstruujlub skonstruuj (w tym
Order) w bieżącym katalogu i odczytuje jego konfigurację z pierwszego znalezionego pliku. Jakiś
alternatywną nazwę pliku można określić za pomocą metody -f opcja.

Kurs SCkonstrukcja plik może określać pomocnicze pliki konfiguracyjne za pomocą S Poborowy()
funkcjonować. Zgodnie z konwencją te pliki pomocnicze mają nazwy S Poborowy, chociaż dowolne imię
może być użyty. (Ze względu na tę konwencję nazewnictwa termin „pliki SConscript” ma czasami nazwę
odnosiło się ogólnie do wszystkich szyderstwa pliki konfiguracyjne, niezależnie od rzeczywistego pliku
Nazwa.)

Pliki konfiguracyjne określają pliki docelowe, które mają zostać zbudowane, i (opcjonalnie) reguły
zbudować te cele. Istnieją rozsądne reguły domyślne dotyczące tworzenia wspólnego oprogramowania
komponenty (programy wykonywalne, pliki obiektowe, biblioteki), tak że w przypadku większości oprogramowania
projektów, należy określić jedynie pliki docelowe i wejściowe.

Przed przeczytaniem SCkonstrukcja file, szyderstwa szuka katalogu o nazwie site_scons in
różne katalogi systemowe (patrz poniżej) oraz katalog zawierający plik SCkonstrukcja plik;
dla każdego z istniejących katalogów, site_scons jest dodawany do sys.path, pliku
site_scons/site_init.py, jest oceniany, jeśli istnieje, oraz katalog
site_scons/site_tools jest dołączany do domyślnej ścieżki narzędzia, jeśli istnieje. Zobacz
--no-site-dir i --katalog-strony opcje, aby uzyskać więcej szczegółów.

szyderstwa odczytuje i wykonuje pliki SConscript jako skrypty Pythona, więc możesz używać normalnego
Możliwości skryptowania w języku Python (takie jak kontrola przepływu, manipulowanie danymi i importowane pliki
Biblioteki Pythona) do obsługi skomplikowanych sytuacji kompilacji. szyderstwa, jednak czyta i
wykonuje wszystkie pliki SConscript zanim zaczyna budować dowolne cele. Aby to zrobić
oczywiste, szyderstwa wypisuje następujące komunikaty o tym, co robi:

$ scons foo.out
scons: Czytanie plików SConscript...
scons: skończyłem czytać pliki SConscript.
wady: Budowanie celów...
cp foo.in foo.out
scons: ukończono budowanie celów.
$

Komunikaty o statusie (wszystko z wyjątkiem wiersza „cp foo.in foo.out”) mogą być
tłumione za pomocą -Q opcja.

szyderstwa nie propaguje automatycznie środowiska zewnętrznego używanego do wykonywania szyderstwa do
polecenia używane do budowania plików docelowych. Ma to na celu zagwarantowanie kompilacji
powtarzalne niezależnie od ustawionych w danym momencie zmiennych środowiskowych szyderstwa jest wywoływany. Ten
oznacza to również, że jeśli kompilator lub inne polecenia, których chcesz użyć do zbudowania pliku
pliki docelowe nie znajdują się w standardowych lokalizacjach systemowych, szyderstwa nie znajdę ich, chyba że ty
jawnie ustaw PATH, aby uwzględnić te lokalizacje. Za każdym razem, gdy tworzysz plik szyderstwa
środowisku konstrukcyjnym, możesz propagować wartość PATH ze swojego zewnętrznego środowiska
środowisko w następujący sposób:

zaimportować cię
env = Środowisko(ENV = {'ścieżka' : os.environ['ścieżka']})

Podobnie, jeśli polecenia używają zewnętrznych zmiennych środowiskowych, takich jak $PATH, $HOME,
$JAVA_HOME, $LANG, $SHELL, $TERM itp., zmienne te można również jawnie propagować:

zaimportować cię
env = Środowisko(ENV = {'ścieżka' : os.environ['ścieżka'],
'DOM' : os.environ['DOM']})

Możesz też jawnie propagować całe środowisko zewnętrzne wywołującego użytkownika:

zaimportować cię
env = Środowisko(ENV = os.środowisko)

Dzieje się to kosztem uzależnienia kompilacji od środowiska użytkownika
ustawione poprawnie, ale w wielu konfiguracjach może być wygodniejsze.

szyderstwa może automatycznie skanować znane pliki wejściowe w poszukiwaniu informacji o zależnościach (na przykład
#include instrukcje w plikach C lub C++) i odpowiednio odbuduje zależne pliki
za każdym razem, gdy zmienia się jakikolwiek „dołączony” plik wejściowy. szyderstwa wspiera możliwość definiowania nowych
skanery pod kątem nieznanych typów plików wejściowych.

szyderstwa umie automatycznie pobierać pliki z podkatalogów SCCS lub RCS przy pomocy SCCS,
RCS lub BitKeeper.

szyderstwa jest zwykle wykonywany w katalogu najwyższego poziomu zawierającym plik SCkonstrukcja file,
opcjonalnie określając jako argumenty wiersza poleceń plik lub pliki docelowe, które mają zostać zbudowane.

Domyślnie polecenie

szyderstwa

zbuduje wszystkie pliki docelowe w bieżącym katalogu lub poniżej. Jawne domyślne cele
(do zbudowania, gdy w wierszu poleceń nie określono żadnych celów) można zdefiniować
Plik(i) SConscript przy użyciu rozszerzenia Domyślny() funkcję opisaną poniżej.

Nawet kiedy Domyślny() cele są określone w plikach SConscript, wszystkie pliki docelowe znajdują się w
lub poniżej bieżącego katalogu można zbudować poprzez jawne określenie bieżącego katalogu
(.) jako cel wiersza poleceń:

skandale.

Kompilowanie wszystkich plików docelowych, w tym plików spoza bieżącego katalogu, może być
określony poprzez podanie celu wiersza poleceń katalogu głównego (w systemach POSIX):

przekleństwa /

lub nazwy ścieżek woluminów, w których powinny zostać zbudowane wszystkie elementy docelowe (w systemie Windows
systemy):

scons C:\ D:\

Aby zbudować tylko określone cele, podaj je jako argumenty wiersza poleceń:

scons foo bar

w takim przypadku zostaną zbudowane tylko określone cele (wraz z wszelkimi plikami pochodnymi na
od czego zależą).

Określanie celów „czyszczenia” w plikach SConscript zwykle nie jest konieczne. The -c flaga
usuwa wszystkie pliki niezbędne do zbudowania określonego celu:

skandal -c.

aby usunąć wszystkie pliki docelowe lub:

scons -c eksport kompilacji

aby usunąć pliki docelowe w ramach kompilacji i eksportu. Dodatkowe pliki lub katalogi do usunięcia
można określić za pomocą Czysty() funkcjonować. I odwrotnie, cele, które normalnie byłyby
usunięte przez -c Można zapobiec usunięciu wywołania za pomocą metody Brak czyszczenia()
funkcja.

Podzbiór drzewa hierarchicznego można zbudować, pozostając w katalogu najwyższego poziomu
(gdzie SCkonstrukcja plik żyje) i określenie podkatalogu jako docelowego
wybudowany:

scons src/podkatalog

lub zmieniając katalog i wywołując polecenie scons za pomocą metody -u opcja, która przechodzi w górę
hierarchię katalogów, dopóki nie znajdzie SCkonstrukcja plik, a następnie stosunkowo buduje cele
do bieżącego podkatalogu:

cd src/podkatalog
skandal - ty.

szyderstwa obsługuje budowanie wielu celów równolegle poprzez a -j opcja, która trwa, jak jej
argument, liczba jednoczesnych zadań, które mogą zostać uruchomione:

scons -j 4

buduje na przykład cztery cele równolegle.

szyderstwa może utrzymywać pamięć podręczną plików docelowych (pochodnych), które mogą być współużytkowane przez wiele osób
buduje. Gdy w pliku SConscript włączone jest buforowanie, wszelkie pliki docelowe utworzone przez szyderstwa będzie
zostać skopiowane do pamięci podręcznej. Jeśli w pamięci podręcznej zostanie znaleziony aktualny plik docelowy, zostanie on znaleziony
pobierane z pamięci podręcznej zamiast odbudowywane lokalnie. Zachowanie buforowania może być
wyłączone i kontrolowane w inny sposób przez --siła pamięci podręcznej, --cache-wyłącz,
--cache-tylko do odczytu, --pokaz pamięci podręcznej opcje wiersza poleceń. The --losowy opcja jest przydatna
zapobiegaj jednoczesnej próbie aktualizacji pamięci podręcznej przez wiele kompilacji.

W poleceniu można określić wartości zmiennych, które mają być przekazane do pliku(ów) SConscript
line:

debugowanie scons=1.

Zmienne te są dostępne w plikach SConscript za pośrednictwem słownika ARGUMENTS i
można użyć w plikach SConscript do dowolnej modyfikacji kompilacji:

if ARGUMENTY.get('debugowanie', 0):
env = Środowisko(CCFLAGS = „-g”)
jeszcze:
env = Środowisko()

Argumenty zmiennych wiersza poleceń są również dostępne na liście ARGLIST, indeksowane według
ich kolejność w wierszu poleceń. Dzięki temu możesz przetwarzać je w kolejności, a nie według
imię i nazwisko, jeśli to konieczne. ARGLIST[0] zwraca krotkę zawierającą (nazwa argumentu, wartość argumentu). Pyton
wyjątek jest zgłaszany przy próbie uzyskania dostępu do elementu listy, który nie istnieje.

szyderstwa wymaga Pythona w wersji 2.7 lub nowszej. Nie powinno być żadnych innych zależności lub
wymagania do uruchomienia szyderstwa.

Domyślnie szyderstwa umie wyszukiwać dostępne narzędzia programistyczne na różnych systemach.
W systemach Windows szyderstwa wyszukuje narzędzia Microsoft Visual C++, plik MinGW
łańcuch narzędzi, narzędzia kompilatora Intel i kompilator PharLap ETS. W systemach OS/2 szyderstwa
wyszukuje w kolejności kompilator OS/2, łańcuch narzędzi GCC i Microsoft Visual C++
narzędzi, w systemach SGI IRIX, IBM AIX, Hewlett Packard HP-UX i Sun Solaris, szyderstwa
wyszukuje natywne narzędzia kompilatora (narzędzia MIPSpro, Visual Age, aCC i Forte).
odpowiednio) i łańcuch narzędzi GCC. Na wszystkich innych platformach, w tym POSIX (Linux i
platformy UNIX), szyderstwa wyszukuje w kolejności łańcuch narzędzi GCC, Microsoft Visual C++
narzędzia i narzędzia kompilatora Intel. Możesz oczywiście zastąpić te wartości domyślne przez
odpowiednią konfigurację zmiennych konstrukcyjnych środowiska.

OPCJE


Ogólnie, szyderstwa obsługuje te same opcje wiersza poleceń, co GNU robić, i wiele z nich
wspierany przez minusy.

-b
Ignorowane ze względu na zgodność z wersjami innymi niż GNU robić.

-c, --clean, --remove
Wyczyść, usuwając wszystkie pliki docelowe, dla których określono polecenie konstrukcji.
Usuń także wszelkie pliki lub katalogi powiązane z poleceniem budowy, używając polecenia
Czyszczenie() funkcja. Nie usunie żadnych celów określonych przez Brak czyszczenia() funkcja.

--cache-debug=filet
Wydrukuj informacje debugowania dotyczące Katalog pamięci podręcznej() buforowanie plików pochodnych do określonego
filet. Jeśli filet is - (łącznik), informacje debugowania są drukowane zgodnie ze standardem
wyjście. Wydrukowane komunikaty opisują, jakie nazwy plików sygnatur są wyszukiwane
w, pobranych lub zapisanych w Katalog pamięci podręcznej() drzewo katalogów.

--cache-disable, --no-cache
Wyłącz buforowanie plików pochodnych określone przez Katalog pamięci podręcznej(). szyderstwa nie odzyska
plików z pamięci podręcznej ani nie kopiuj plików do pamięci podręcznej.

--cache-force, --cache-populate
Podczas używania Katalog pamięci podręcznej(), zapełnij pamięć podręczną, kopiując istniejące i aktualne
pliki pochodne do pamięci podręcznej, oprócz plików utworzonych przez to wywołanie. To jest
przydatne do zapełnienia nowej pamięci podręcznej wszystkimi bieżącymi plikami pochodnymi lub dodania do
buforuj wszelkie niedawno utworzone pliki pochodne z wyłączonym buforowaniem za pośrednictwem pliku --cache-wyłącz
opcja.

--cache-tylko do odczytu
Użyj pamięci podręcznej (jeśli jest włączona) do odczytu, ale nie aktualizuj pamięci podręcznej o zmienione
akta.

--pokaz pamięci podręcznej
Podczas używania Katalog pamięci podręcznej() i pobierając plik pochodny z pamięci podręcznej, pokaż polecenie
które zostałyby wykonane w celu zbudowania pliku, zamiast zwykłego raportu,
„Pobrano ‚plik’ z pamięci podręcznej.” Spowoduje to utworzenie spójnych danych wyjściowych dla dzienników kompilacji,
niezależnie od tego, czy plik docelowy został odbudowany, czy pobrany z pamięci podręcznej.

--konfigur=tryb
Określa, w jaki sposób Konfigurowanie call powinien używać lub generować wyniki
testy konfiguracji. Opcję należy określić spośród następujących opcji:

--config=automatycznie
scons użyje swoich normalnych mechanizmów zależności, aby zdecydować, czy test musi zostać przebudowany, czy też
nie. Oszczędza to czas, ponieważ nie przeprowadza się tych samych testów konfiguracji przy każdym wywołaniu
scons, ale przeoczy zmiany w systemowych plikach nagłówkowych lub poleceniach zewnętrznych (takich jak
kompilatory), jeśli nie określisz tych zależności jawnie. To jest ustawienie domyślne
zachowanie.

--config=wymuszenie
Jeśli określono tę opcję, wszystkie testy konfiguracji zostaną ponownie uruchomione niezależnie od
czy wyniki w pamięci podręcznej są nieaktualne. Można tego użyć do jawnego wymuszenia
testy konfiguracji, które mają zostać zaktualizowane w odpowiedzi na nieskonfigurowaną w inny sposób zmianę w pliku a
systemowy plik nagłówkowy lub kompilator.

--config=pamięć podręczna
Jeśli ta opcja zostanie określona, ​​żadne testy konfiguracji nie zostaną ponownie uruchomione, a wszystkie wyniki zostaną powtórzone
zostać pobrane z pamięci podręcznej. Pamiętaj, że scons nadal uznają to za błąd, jeśli --config=cache
jest określony, a niezbędny test nie przyniósł jeszcze żadnych wyników w pamięci podręcznej.

-C katalog, --katalog=katalog
Zmień na określone katalog przed wyszukiwaniem SCkonstrukcja, Skonstruujlub
skonstruuj plik lub zrobić cokolwiek innego. Wiele -C opcje są interpretowane względnie
do poprzedniego i najbardziej na prawo -C opcja wygrywa. (Ta opcja jest prawie
równoważny -f katalog/SConstruct, z tą różnicą, że będzie szukać SCkonstrukcja,
Skonstruujlub skonstruuj w określonym katalogu.)

-D
Działa dokładnie tak samo jak -u opcję, z wyjątkiem sposobu, w jaki są cele domyślne
obsługiwane. Gdy używana jest ta opcja i w wierszu poleceń nie określono żadnych celów,
budowane są wszystkie domyślne obiekty docelowe, niezależnie od tego, czy znajdują się one poniżej bieżącego katalogu, czy nie.

--debugowanie=rodzaj
Debuguj proces kompilacji. wpisz[,wpisz...] określa typ debugowania. Wiele
można określić typy, oddzielając je przecinkami. Poprawne są następujące typy:

--debug=liczba
Wydrukuj, ile obiektów zostało utworzonych z różnych klas używanych wewnętrznie przez SCons
przed i po przeczytaniu plików SConscript oraz przed i po zbudowaniu celów.
Nie jest to obsługiwane, gdy SCons jest wykonywany w języku Python -O (zoptymalizowana) opcja lub
kiedy moduły SCons zostały skompilowane z optymalizacją (to znaczy podczas wykonywania
od *.pyo Pliki).

--debug=duplikat
Wydrukuj linię dla każdego odłączenia/ponownego połączenia (lub kopii) pliku wariantu z pliku źródłowego.
Zawiera informacje debugowania dotyczące odłączania nieaktualnych plików wariantów, a także odłączania starych
cele przed ich zbudowaniem.

--debug=drzewo
Synonim nowszego --drzewo=pochodzące opcja. W przyszłości zostanie to wycofane
uwolnić i ostatecznie usunąć.

--debug=wyjaśnij
Wydrukuj dokładne wyjaśnienie dlaczego szyderstwa decyduje się na (odnowę) budowę jakichkolwiek celów.
(Uwaga: to nie drukuje niczego dla celów, które są nie odbudowany.)

--debug=findlibs
Poinstruuj skaner, który wyszukuje biblioteki, aby wydrukował komunikat o każdej z nich
potencjalnej nazwy biblioteki, której szuka, oraz informacji o faktycznie znalezionych bibliotekach.

--debug=zawiera
Wydrukuj drzewo dołączania po zbudowaniu każdego celu najwyższego poziomu. Jest to ogólnie przyzwyczajone
dowiedz się, jakie pliki zawierają źródła danego pliku pochodnego:

$ scons --debug=zawiera foo.o

--debug=pamiętnik
Drukuje podsumowanie trafień i chybień za pomocą Memoizera, wewnętrznego podsystemu, który
liczy, jak często SCons używa wartości buforowanych w pamięci, zamiast je ponownie obliczać
czas, kiedy są potrzebni.

--debug=pamięć
Drukuje ilość pamięci używanej przez SCons przed i po odczytaniu plików SConscript i
przed i po zbudowaniu celów.

--debug=nomemoizer
Przestarzała opcja zachowana ze względu na kompatybilność wsteczną.

--debug=obiekty
Drukuje listę różnych obiektów różnych klas używanych wewnętrznie przez SCons.

--debug=pdb
Uruchom ponownie SCons pod kontrolą debugera Pythona pdb.

--debug=przygotowaj
Wydrukuj linię za każdym razem, gdy jakikolwiek cel (wewnętrzny lub zewnętrzny) jest przygotowywany do budowy.
szyderstwa drukuje to dla każdego celu, który bierze pod uwagę, nawet jeśli ten cel jest aktualny (patrz
także --debug=wyjaśnij). Może to pomóc w rozwiązywaniu problemów z celami, które nie są
wybudowany; pokazuje, czy szyderstwa przynajmniej je rozważa, czy nie.

--debug=podrzędny
Wydrukuj surową linię poleceń używaną do budowy każdego celu przed konstrukcją
zmienne środowiskowe są zastępowane. Pokazuje także, które cele są budowane
to polecenie. Dane wyjściowe wyglądają mniej więcej tak:

$ scons --debug=presub
Budowanie myprog.o z akcjami:
$SHCC $SHCFLAGS $SHCCFLAGS $CPPFLAGS $_CPPINCFLAGS -c -o $TARGET $ŹRÓDŁA
...

--debug=śledzenie stosu
Drukuje wewnętrzny ślad stosu Pythona w przypadku napotkania niewyjaśnionego w inny sposób
Błąd.

--debug=strefa
Synonim nowszego --drzewo=wszystko,stan opcja. W niektórych przypadkach będzie to przestarzałe
przyszłe wydanie i ostatecznie usunięte.

--debug=czas
Drukuje różne informacje dotyczące profilowania czasu: czas spędzony na wykonywaniu poszczególnych osób
polecenie budowania; całkowity czas kompilacji (czas trwania SCons od początku do końca); suma
czas spędzony na czytaniu i wykonywaniu plików SConscript; całkowity czas spędzony na samym SCons
spędzać na bieganiu (to znaczy nie licząc czytania i wykonywania plików SConscript); i oboje
całkowity czas spędzony na wykonywaniu wszystkich poleceń kompilacji i czas, jaki upłynął na zegarze ściennym
spędził na wykonywaniu tych poleceń kompilacji. (Gdy szyderstwa jest wykonywany bez -j opcja,
upływający czas zegara ściennego będzie zazwyczaj nieco dłuższy niż czas całkowity
spędził na wykonywaniu wszystkich poleceń kompilacji ze względu na przetwarzanie SCons
pomiędzy wykonaniem każdego polecenia. Gdy szyderstwa jest wykonywany w dotychczasowy -j opcja i twoja
konfiguracja kompilacji umożliwia dobrą równoległość, powinien być upływający czas zegara ściennego
znacznie mniejszy niż całkowity czas wykonania wszystkich poleceń kompilacji,
ponieważ wiele poleceń kompilacji i pośrednie przetwarzanie SCons powinno odbywać się w
równoległy.)

--debug=drzewo
Synonim nowszego --drzewo=wszystko opcja. W przyszłości zostanie to wycofane
uwolnić i ostatecznie usunąć.

--diskcheck=typy
Włącz specjalne sprawdzanie, czy na dysku znajduje się plik, w którym znajduje się plik SCons
konfiguracja oczekuje katalogu (lub odwrotnie) i tego, czy jest to RCS, czy SCCS
źródła istnieją podczas wyszukiwania plików źródłowych i dołączanych. The typy argument może być
Ustawić: cała kolekcja, aby jawnie włączyć wszystkie kontrole (zachowanie domyślne); Żaden, wyłączyć
wszystkie takie kontrole; mecz, aby sprawdzić, czy pliki i katalogi na dysku pasują do SCons
oczekiwana konfiguracja; RCS, aby sprawdzić, czy istnieje źródło RCS dla dowolnego
brakujące źródło lub pliki dołączane; scs, aby sprawdzić istnienie źródła SCCS
dla wszelkich brakujących źródeł lub plików dołączanych. Można określić wiele kontroli rozdzielonych przez
przecinki; Na przykład, --diskcheck=sccs,rcs nadal sprawdzałby źródła SCCS i RCS,
ale wyłącz sprawdzanie zgodności plików i katalogów na dysku. Wyłączenie niektórych lub
wszystkie te kontrole mogą zapewnić wzrost wydajności w przypadku dużych konfiguracji lub kiedy
konfiguracja sprawdzi pliki i/lub katalogi w sieci lub współdzielone
systemów plików, przy nieznacznie zwiększonym ryzyku nieprawidłowej kompilacji lub nieobsługiwania się
błędy z wdziękiem (jeśli pliki dołączane naprawdę powinny znajdować się w SCCS lub RCS, np
przykład lub jeśli plik naprawdę istnieje, gdzie konfiguracja SCons oczekuje a
informator).

--duplikat=ZAMÓWIENIE
Istnieją trzy sposoby duplikowania plików w drzewie kompilacji: łącza twarde, miękkie (symboliczne)
linki i kopie. Domyślnym zachowaniem SCons jest preferowanie łączy twardych od łączy miękkich
do kopii. Za pomocą tej opcji możesz określić różne zachowania. ZAMÓWIENIE musi być jednym
of kopia twarda-miękka (domyślny), wersja miękka-twarda, wersja papierowa, kopia miękka or kopia. Wady
spróbuje zduplikować pliki, korzystając z mechanizmów w określonej kolejności.

-f filet, --plik=filet, --makefile=filet, --sconstruct=filet
Zastosowanie filet jako początkowy plik SConscript. Wiele -f można określić opcje, w
który przypadek? szyderstwa odczyta wszystkie określone pliki.

-h, --pomoc
Wydrukuj lokalną wiadomość pomocy dla tej kompilacji, jeśli została zdefiniowana w SConscript
plik(i) plus linia opisująca plik(i). -H opcja pomocy opcji wiersza poleceń. Jeśli nie
zdefiniowano lokalną wiadomość pomocy, wyświetla standardową wiadomość pomocy dotyczącą wiersza poleceń
opcje. Wychodzi po wyświetleniu odpowiedniego komunikatu.

-H, --help-options
Wydrukuj standardową wiadomość pomocy dotyczącą opcji wiersza poleceń i zakończ.

-i, --ignore-errors
Ignoruj ​​wszystkie błędy poleceń wykonanych w celu odbudowania plików.

-I katalog, --include-dir=katalog
Określa katalog aby wyszukać zaimportowane moduły Pythona. Jeśli kilka -I opcje są
używane, katalogi są przeszukiwane w określonej kolejności.

--implicit-cache
Buforuj ukryte zależności. To powoduje szyderstwa użyć ukrytego (zeskanowanego)
zależności od ostatniego uruchomienia, zamiast skanować pliki w poszukiwaniu niejawnych
zależności. Może to znacznie przyspieszyć SCons, ale z następującymi kwestiami
ograniczenia:

szyderstwa nie wykryje zmian w ukrytych ścieżkach wyszukiwania zależności (np ŚCIEŻKA CPP, ŚCIEŻKA LIB)
co zwykle powodowałoby użycie różnych wersji plików o tej samej nazwie.

szyderstwa pominie zmiany w ukrytych zależnościach w przypadkach, gdy pojawi się nowy ukryty
zależność jest dodawana wcześniej w ścieżce wyszukiwania ukrytych zależności (np ŚCIEŻKA CPP,
ŚCIEŻKA LIB) niż bieżąca niejawna zależność o tej samej nazwie.

--implicit-deps-zmieniony
Zmusza SCons do ignorowania buforowanych niejawnych zależności. To powoduje, że niejawne
zależności, które należy ponownie przeskanować i ponownie zapisać. Oznacza to --implicit-cache.

--implicit-deps-bez zmian
Zmuś SCons do ignorowania zmian w ukrytych zależnościach. Powoduje to buforowanie
ukryte zależności, które mają być zawsze używane. Oznacza to --implicit-cache.

--interaktywny
Uruchamia SCons w trybie interaktywnym. Pliki SConscript są odczytywane raz i a skandal >>>
zostanie wydrukowany monit. Cele można teraz odbudować, wpisując polecenia w interaktywnym wierszu poleceń
bez konieczności ponownego czytania plików SConscript i ponownego inicjowania wykresu zależności
od zera.

Tryb interaktywny SCons obsługuje następujące polecenia:

budować[OPCJE] [CELE] ...
Kompiluje określone CELE (i ich zależności) z określonymi SCons
wiersza polecenia OPCJE. b i szyderstwa są synonimami.

Następujące opcje wiersza poleceń SCons wpływają na budować polecenie:

--cache-debug=PLIK
--cache-disable, --no-cache
--cache-force, --cache-populate
--cache-tylko do odczytu
--pokaz pamięci podręcznej
--debug=TYP
-i, --ignore-errors
-j N, --prace=N
-k, --kontynuuj pracę
-n, --no-exec, --just-print, --dry-run, --recon
-Q
-s, --cichy, --cichy
--taskmastertrace=PLIK
--drzewo=OPCJE

Wszelkie inne określone opcje wiersza poleceń SCons nie powodują błędów, ale powodują
żadnego wpływu na budować polecenie (głównie dlatego, że wpływają one na sposób, w jaki pliki SConscript
są odczytywane, co ma miejsce tylko raz na początku trybu interaktywnego).

kleń[OPCJE] [CELE] ...
Czyści określone CELE (i ich zależności) z określonymi opcjami.
c jest synonimem. To polecenie samo w sobie jest synonimem budować --czysty

wyjście
Wychodzi z trybu interaktywnego SCons. Możesz także wyjść, kończąc wprowadzanie danych (CTRL+D wł
Systemy UNIX lub Linux, CTRL+Z w systemach Windows).

pomoc[KOMENDA]
Wyświetla komunikat pomocy dotyczący poleceń dostępnych w trybie interaktywnym SCons. Jeśli
COMMAND jest specyficzne, h i ? są synonimami.

powłoka[WIERSZ POLECEŃ]
Wykonuje określone WIERSZ POLECEŃ w podpowłoce. Jeśli nie WIERSZ POLECEŃ jest specyficzne,
wykonuje interaktywny interpreter poleceń określony w pliku SHELL środowisko
zmienna (w systemach UNIX i Linux) lub KOMPAKT zmienna środowiskowa (wł
systemy Windows). sh i ! są synonimami.

wersja
Drukuje informacje o wersji SCons.

Pusta linia powtarza ostatnio wpisane polecenie. Edycji z wiersza poleceń można użyć, jeśli plik
Czytaj linię moduł jest dostępny.

$ scons --interaktywny
scons: Czytanie plików SConscript...
scons: skończyłem czytać pliki SConscript.
scons>>> build -n prog
scons>>> wyjdź

-j N, --jobs=N
Określa liczbę zadań (poleceń), które mają być uruchamiane jednocześnie. Jeśli jest więcej niż
pierwszej -j opcja, ostatnia jest skuteczna.

-k, --kontynuuj pracę
Kontynuuj tak długo, jak to możliwe po błędzie. Cel, który się nie powiódł i ten, który
zależą od tego, nie zostaną przerobione, ale inne cele określone w wierszu poleceń tak
nadal być przetwarzane.

-m
Ignorowane ze względu na zgodność z wersjami innymi niż GNU robić.

--max-drift=SEKUNDY
Ustaw maksymalny oczekiwany dryft w czasie modyfikacji plików na SEKUNDY, To
wartość określa, jak długo plik musi pozostać niemodyfikowany, zanim zawartość zostanie zapisana w pamięci podręcznej
podpis zostanie użyty zamiast obliczenia nowego podpisu treści (suma kontrolna MD5)
zawartości pliku. Wartość domyślna to 2 dni, co oznacza, że ​​plik musi mieć rozszerzenie
czas modyfikacji co najmniej dwa dni temu, aby zawartość była przechowywana w pamięci podręcznej
użyty podpis. Wartość ujemna oznacza, że ​​nigdy nie buforuje się podpisu treści i
zignoruj ​​wartość w pamięci podręcznej, jeśli już taka istnieje. Wartość 0 oznacza, że ​​zawsze należy używać
podpis w pamięci podręcznej, niezależnie od tego, jak stary jest plik.

--md5-rozmiar porcji=KILOBYTY
Ustaw rozmiar bloku używany do obliczania podpisów MD5 KILOBYTY. Ta wartość decyduje
rozmiar fragmentów wczytywanych jednocześnie podczas obliczania podpisów MD5. Akta
poniżej tego rozmiaru są w całości przechowywane w pamięci przed wykonaniem obliczeń podpisu
podczas gdy większe pliki są odczytywane blok po bloku. Ogromny rozmiar bloku prowadzi do dużej ilości pamięci
zużycie energii, podczas gdy bardzo mały rozmiar bloku znacznie spowalnia kompilację.

Wartość domyślna to porcja o rozmiarze 64 kilobajtów, co powinno być odpowiednie
do większości zastosowań.

-n, --just-print, --dry-run, --recon
Żadnego wykonania. Wydrukuj polecenia, które zostaną wykonane w celu zbudowania dowolnego nieaktualnego celu
pliki, ale nie wykonuj poleceń.

--no-site-dir
Zapobiega automatycznemu dodawaniu standardu site_scons kieruje do sys.ścieżka, Również
uniemożliwia załadowanie site_scons/site_init.py moduły, jeśli istnieją, i zapobiega
dodając swoje site_scons/site_tools dirs do ścieżki narzędzia.

--profil=filet
Uruchom SCons w profilerze Pythona i zapisz wyniki w określonym pliku filet,
wyniki można analizować za pomocą modułu pstats w języku Python.

-q, --pytanie
Nie uruchamiaj żadnych poleceń ani nie drukuj niczego. Po prostu zwróć status wyjścia, który wynosi zero, jeśli
określone cele są już aktualne, w przeciwnym razie niezerowe.

-Q
Wycisza komunikaty o statusie SCons dotyczące czytania plików SConscript, budowania celów i
wchodzenie do katalogów. Polecenia wykonywane w celu odbudowania plików docelowych pozostają niezmienione
drukowane.

--losowy
Twórz zależności w losowej kolejności. Jest to przydatne podczas budowania wielu drzew
jednocześnie z włączoną funkcją buforowania, aby zapobiec jednoczesnemu tworzeniu wielu kompilacji
próbując zbudować lub pobrać te same pliki docelowe.

-s, --cichy, --cichy
Cichy. Nie drukuj poleceń wykonywanych w celu odbudowania plików docelowych. Również
pomija komunikaty o stanie SCons.

-S, --nie-kontynuuj, --stop
Ignorowane ze względu na zgodność z GNU robić.

--katalog-strony=reż
Używa nazwanego katalogu jako katalogu witryny, a nie domyślnego site_scons reż. Ten reż
zostanie przygotowany sys.ścieżka, moduł reż/site_init.py zostanie załadowany, jeśli tak
istnieje i reż/site_tools zostanie dodany do domyślnej ścieżki narzędzia.

Domyślny zestaw site_scons katalogi używane, gdy --katalog-strony nie jest określony, zależy od
platformę systemową w następujący sposób. Należy pamiętać, że katalogi są sprawdzane w kolejności
podany, od najbardziej ogólnego do najbardziej szczegółowego, więc ostatnio wykonany plik site_init.py to
najbardziej specyficzny (który daje szansę na zastąpienie wszystkiego innego) i
katalogi są dołączane do ścieżek, więc ostatni sprawdzany katalog jest pierwszy w pliku
wynikowa ścieżka.

Windows:

%ALLUSERSPROFILE/Dane aplikacji/scons/site_scons
%USERPROFILE%/Ustawienia lokalne/Dane aplikacji/scons/site_scons
%APPDATA%/scons/site_scons
%HOME%/.scons/site_scons
./site_scons

Mac OS X:

/Library/Application Support/SCons/site_scons
/opt/local/share/scons/site_scons (dla komputerów MacPorts)
/sw/share/scons/site_scons (dla Finka)
$HOME/Library/Application Support/SCons/site_scons
$HOME/.scons/site_scons
./site_scons

solaris:

/opt/sfw/scons/site_scons
/usr/share/scons/site_scons
$HOME/.scons/site_scons
./site_scons

Linux, HPUX i inne systemy podobne do Posix:

/usr/share/scons/site_scons
$HOME/.scons/site_scons
./site_scons

--rozmiar stosu=KILOBYTY
Ustaw stos rozmiarów używany do uruchamiania wątków KILOBYTY. Ta wartość określa stos
rozmiar wątków używanych do uruchamiania zadań. To są wątki, które wykonują akcje
konstruktorów dla węzłów, które są nieaktualne. Należy pamiętać, że ta opcja nie ma
efekt, chyba że liczba_prac opcja, która odpowiada -j i --jobs, jest większa niż
jeden. Użycie zbyt małego stosu może spowodować błędy przepełnienia stosu. Ten
zwykle objawia się jako błędy segmentacji, które powodują przerwanie działania scons przed budowaniem
wszystko. Użycie zbyt dużego stosu spowoduje, że scons zużyją więcej pamięci
niż jest to wymagane i może spowolnić cały proces kompilacji.

Wartość domyślna to rozmiar stosu wynoszący 256 kilobajtów, co powinno być odpowiednie
do większości zastosowań. Nie powinieneś zwiększać tej wartości, chyba że napotkasz stos
błędy przepełnienia.

-t, --dotyk
Ignorowane ze względu na zgodność z GNU robić. (Dotknięcie pliku, aby wyglądał na aktualny
jest niepotrzebne podczas używania szyderstwa.)

--taskmastertrace=filet
Drukuje informacje o śledzeniu do określonego filet o tym, jak wewnętrzny Taskmaster
obiekt ocenia i kontroluje kolejność budowania węzłów. Nazwa pliku - może
zostać użyte do określenia standardowego wyjścia.

-drzewo=Opcje
Drukuje drzewo zależności po zbudowaniu każdego celu najwyższego poziomu. To drukuje
wyodrębnić część lub całość drzewa, w różnych formatach, w zależności od Opcje określony:

--drzewo=wszystko
Wydrukuj całe drzewo zależności po zbudowaniu każdego celu najwyższego poziomu. To się wydrukuje
pełne drzewo zależności, łącznie z zależnościami ukrytymi i ignorowane
zależności.

--drzewo=pochodzące
Ogranicza dane wyjściowe drzewa tylko do plików pochodnych (docelowych), a nie do plików źródłowych.

--drzewo=stan
Drukuje informacje o stanie każdego wyświetlanego węzła.

--drzewo=przycinanie
Przycina drzewo, aby uniknąć powtarzania informacji o zależnościach dla węzłów, które już to zrobiły
zostało wyświetlone. Każdy węzeł, który został już wyświetlony, będzie miał wydrukowaną nazwę
[kwadrat nawiasy], jako wskazówkę, że można znaleźć zależności dla tego węzła
wyszukując odpowiednie dane wyjściowe wyżej w drzewie.

Można określić wiele opcji, oddzielając je przecinkami:

# Drukuje tylko pliki pochodne z informacjami o statusie:
scons --tree=pochodne,stan

# Drukuje wszystkie zależności celu wraz z informacjami o statusie
# i czyszczenie zależności już odwiedzonych węzłów:
scons --tree=all,przycinanie,cel stanu

-u, --up, --search-up
Przechodzi w górę struktury katalogów, aż do SCkonstrukcja , Skonstruuj or skonstruuj filet
zostanie znaleziony i użyje go jako góry drzewa katalogów. Jeśli nie określono celów
w wierszu poleceń zostaną zbudowane tylko elementy docelowe w bieżącym katalogu lub poniżej.

-U
Działa dokładnie tak samo jak -u opcję, z wyjątkiem sposobu, w jaki są cele domyślne
obsługiwane. Gdy używana jest ta opcja i w wierszu poleceń nie określono żadnych celów,
wszystkie domyślne cele zdefiniowane w skryptach SConscript w bieżącym katalogu to
zbudowany, niezależnie od tego, w jakim katalogu trafią wynikowe cele.

-v, --wersja
Wydrukuj szyderstwa wersja, informacje o prawach autorskich, lista autorów i wszelkie inne
istotna informacja. Następnie wyjdź.

-w, --print-katalog
Wydrukuj wiadomość zawierającą katalog roboczy przed i po innym przetwarzaniu.

--no-print-katalog
Wyłącz opcję -w, nawet jeśli została włączona domyślnie.

--ostrzegaj=rodzaj, --warn=nie-rodzaj
Włącz lub wyłącz ostrzeżenia. rodzaj określa typ ostrzeżeń, które mają być włączone lub
wyłączony:

--warn=wszystko, --warn=nie-wszystko
Włącza lub wyłącza wszystkie ostrzeżenia.

--warn=błąd zapisu-pamięci podręcznej, --warn=błąd zapisu-pamięci podręcznej
Włącza lub wyłącza ostrzeżenia o błędach podczas próby zapisania kopii skompilowanego pliku do pliku
określony Katalog pamięci podręcznej(). Te ostrzeżenia są domyślnie wyłączone.

--warn=sygnalizacja-uszkodzona, --warn=sygnatura-nieuszkodzona
Włącza lub wyłącza ostrzeżenia o nieznanych danych podpisu w .wysłać akta. Te
ostrzeżenia są domyślnie włączone.

--warn=zależność, --warn=brak zależności
Włącza lub wyłącza ostrzeżenia dotyczące zależności. Ostrzeżenia te są wyłączone przez
domyślna.

--warn=przestarzałe, --warn=nie-przestarzałe
Włącza lub wyłącza wszystkie ostrzeżenia dotyczące korzystania z obecnie przestarzałych funkcji. Te
ostrzeżenia są domyślnie włączone. Należy pamiętać, że --warn=nie-przestarzałe opcja nie
wyłącz ostrzeżenia o absolutnie wszystkich przestarzałych funkcjach. Ostrzeżenia dla niektórych
przestarzałe funkcje, które miały już kilka wersji i zostały wycofane
ostrzeżenia mogą być obowiązkowe w przypadku wydania lub dwóch, zanim oficjalnie przestaną być dostępne
wspierany przez SCons. Ostrzeżenia dotyczące niektórych określonych, przestarzałych funkcji mogą być włączone lub
niepełnosprawni indywidualnie; patrz poniżej.

--warn=przestarzała-kopia, --warn=brak-przestarzałej-kopii
Włącza lub wyłącza ostrzeżenia o użyciu przestarzałych środowisko.Kopia() Metoda.

--warn=przestarzałe-sygnatury-źródłowe, --warn=brak-przestarzałych-sygnatur-źródłowych
Włącza lub wyłącza ostrzeżenia o użyciu przestarzałych Podpisy źródłowe()
funkcja lub env.SourceSignatures() Metoda.

--warn=przestarzałe-podpisy-docelowe, --warn=brak-przestarzałych-podpisów-docelowych
Włącza lub wyłącza ostrzeżenia o użyciu przestarzałych Podpisy docelowe()
funkcja lub env.TargetSignatures() Metoda.

--warn=zduplikowane środowisko, --warn=brak zduplikowanego środowiska
Włącza lub wyłącza ostrzeżenia o próbach określenia kompilacji celu z dwoma
różnych środowiskach konstrukcyjnych, które wykorzystują tę samą akcję. Te ostrzeżenia są
domyślnie włączone.

--warn=fortran-cxx-mix, --warn=no-fortran-cxx-mix
Włącza lub wyłącza specjalne ostrzeżenie dotyczące łączenia plików obiektowych Fortran i C++
pojedynczy plik wykonywalny, co może powodować nieprzewidywalne zachowanie w przypadku niektórych kompilatorów.

--warn=przestarzałe-w przyszłości, --warn=nie-przestarzałe-w przyszłości
Włącza lub wyłącza ostrzeżenia o funkcjach, które w przyszłości staną się przestarzałe.
Te ostrzeżenia są domyślnie wyłączone. Włączenie tego ostrzeżenia jest szczególnie ważne
zalecane w przypadku projektów, które redystrybuują konfiguracje SCons dla innych użytkowników
build, aby projekt mógł zostać jak najszybciej ostrzeżony o tym, że będzie przestarzały
funkcje, które mogą wymagać zmian w konfiguracji.

--warn=link, --warn=brak linku
Włącza lub wyłącza ostrzeżenia dotyczące kroków łącza.

--warn=słowa-kluczowe wprowadzające w błąd, --warn=nie-słowa-kluczowe wprowadzające w błąd
Włącza lub wyłącza ostrzeżenia o użyciu błędnie napisanych słów kluczowych cele i źródła
podczas dzwonienia do Builders. (Zwróć uwagę na ostatnie s znaków, poprawna pisownia jest cel
i źródło.) Te ostrzeżenia są domyślnie włączone.

--warn=brakujący-sconscript, --warn=nie-brakujący-sconscript
Włącza lub wyłącza ostrzeżenia o brakujących plikach SConscript. Te ostrzeżenia są
domyślnie włączone.

--warn=brak modułu-md5, --warn=brak-modułu-md5
Włącza lub wyłącza ostrzeżenia o wersji Pythona, która nie ma sumy kontrolnej MD5
dostępny moduł. Te ostrzeżenia są domyślnie włączone.

--warn=brak obsługi-metaklas, --warn=nie-brak-obsługi-metaklas
Włącza lub wyłącza ostrzeżenia o wersji Pythona, która nie obsługuje metaklas
kiedy --debug=pamiętnik opcja jest używana. Te ostrzeżenia są domyślnie włączone.

--warn=brak-liczby-obiektów, --warn=brak-liczby-obiektów
Włącza lub wyłącza ostrzeżenia dotyczące --debug=obiekt funkcja nie działa, kiedy szyderstwa
jest uruchamiany z Pythonem -O opcję lub ze zoptymalizowanych modułów Pythona (.pyo).

--warn=brak-obsługi-równoległej, --warn=brak-wsparcia-równoległego
Włącza lub wyłącza ostrzeżenia o nieobsługiwanej wersji Pythona
kompilacje równoległe, gdy -j opcja jest używana. Te ostrzeżenia są domyślnie włączone.

--warn=wersja-pythona, --warn=no-wersja-pythona
Włącza lub wyłącza ostrzeżenie o uruchomieniu SCons z przestarzałą wersją
Pyton. Te ostrzeżenia są domyślnie włączone.

--warn=zmienna-zarezerwowana, --warn=brak-zmiennej-zarezerwowanej
Włącza lub wyłącza ostrzeżenia o próbach ustawienia zarezerwowanej zmiennej konstrukcyjnej
Nazwy ZMIENIONO_ŹRÓDŁA, CHANGED_TARGETS, TARGET, CELE, ŹRÓDŁO, ŹRÓDŁA,
NIEZMIENIONE_ŹRÓDŁA or UNCHANGED_TARGETS. Te ostrzeżenia są domyślnie wyłączone.

--warn=rozmiar stosu, --warn=brak rozmiaru stosu
Włącza lub wyłącza ostrzeżenia o żądaniach ustawienia rozmiaru stosu, który nie może być
zaszczycony. Te ostrzeżenia są domyślnie włączone.

--warn=target_not_build, --warn=no-target_not_build
Włącza lub wyłącza ostrzeżenia o regule kompilacji, która nie tworzy oczekiwanych obiektów docelowych.
Te ostrzeżenia nie są obecnie domyślnie włączone.

-Y składnica, --repozytorium=składnica, --srcdir=składnica
Przeszukaj określone repozytorium w poszukiwaniu plików wejściowych i docelowych, których nie znaleziono w pliku lokalnym
hierarchia katalogów. Wiele -Y można określić opcje, w takim przypadku
repozytoria są przeszukiwane w określonej kolejności.

KONFIGURACJA FILE REFERENCE


Budownictwo Środowiska
Środowisko konstrukcyjne jest podstawowym środkiem komunikacji plików SConscript
budować informacje do szyderstwa. Nowe środowisko konstrukcyjne jest tworzone przy użyciu narzędzia
Środowisko funkcjonować:

env = Środowisko()

Zmienne, tzw Budowa zmienne, można również ustawić w środowisku konstrukcyjnym
określając je jako słowa kluczowe podczas tworzenia obiektu lub przypisując im wartość
po utworzeniu obiektu:

env = Środowisko(FOO = „foo”)
env['BAR'] = 'pasek'

Dla wygody zmienne konstrukcyjne mogą być również ustawiane lub modyfikowane przez plik parse_flags
argument słowa kluczowego, który stosuje Przeanalizuj flagi metodę (opisaną poniżej) do argumentu
wartość po zakończeniu wszystkich innych procesów przetwarzania. Jest to przydatne, jeśli dokładna treść
flag jest nieznany (na przykład odczytany z pliku kontrolnego) lub jeśli flagi są
rozłożone na wiele zmiennych konstrukcyjnych.

env = Środowisko(parse_flags = '-Iinclude -DEBUG -lm')

W tym przykładzie dodano „include”. ŚCIEŻKA CPP, „EBUG” do CPDDEFINIUJEi „m” do LIBY.

Domyślnie nowe środowisko konstrukcyjne jest inicjowane przy użyciu zestawu metod konstruktora
i zmienne konstrukcyjne, które są odpowiednie dla bieżącej platformy. Opcja
Argument słowa kluczowego platformy może zostać użyty do określenia, że ​​środowisko powinno zostać zainicjowane
dla innej platformy:

env = Środowisko (platforma = „cygwin”)
env = Środowisko (platforma = „os2”)
env = Środowisko (platforma = „posix”)
env = Środowisko (platforma = „win32”)

Określenie platformy inicjuje odpowiednie zmienne konstrukcyjne w pliku
środowisko do używania i generowania nazw plików z przedrostkami i przyrostkami odpowiednimi dla
Platforma.

Zauważ, że win32 platforma dodaje Dysk systemowy i System Główny zmienne pochodzące od użytkownika
środowiska zewnętrznego do środowiska budowlanego ENV słownik. Dzieje się tak, aby jakikolwiek
wykonane polecenia korzystające z gniazd do łączenia się z innymi systemami (takie jak pobieranie source
pliki ze specyfikacji zewnętrznego repozytorium CVS, np
:pserwer:[email chroniony]:/cvsroot/scons) będzie działać w systemach Windows.

Argumentem platformy może być funkcja lub obiekt wywoływalny, w takim przypadku funkcja Environment()
metoda wywoła określony argument, aby zaktualizować nowe środowisko konstrukcyjne:

def moja_platforma(env):
env['VAR'] = 'xyzzy'

env = Środowisko (platforma = moja_platforma)

Dodatkowo może być określony zestaw narzędzi, za pomocą których można inicjować środowisko
określony jako opcjonalny argument słowa kluczowego:

env = Środowisko(narzędzia = ['msvc', 'lex'])

Narzędzia niewbudowane można określić za pomocą argumentu ścieżki narzędzia:

env = Środowisko(narzędzia = ['domyślne', 'foo'], ścieżka narzędzia = ['narzędzia'])

Wyszukuje specyfikację narzędzia w Tools/foo.py (a także używa zwykłego pliku default
narzędzia dla platformy). foo.py powinien mieć dwie funkcje: generate(env, **kw) i
istnieje (środ.). The Generować() funkcja modyfikuje przekazane środowisko do skonfigurowania
zmienne, dzięki którym narzędzie może zostać wykonane; może używać dowolnych argumentów słów kluczowych podanych przez użytkownika
materiałów eksploatacyjnych (patrz poniżej), aby zmienić jego inicjalizację. The istnieje() funkcja powinna zwrócić a
wartość true, jeśli narzędzie jest dostępne. Narzędzia na ścieżce narzędzia są używane przed którymkolwiek z nich
wbudowane. Na przykład dodanie gcc.py do ścieżki narzędzia zastąpi wbudowane gcc
narzędzie. Należy również pamiętać, że ścieżka narzędzia jest przechowywana w środowisku do wykorzystania w późniejszych wywołaniach
Clone() i Narzędzie() metody:

podstawa = Środowisko (ścieżka narzędzia = ['ścieżka_niestandardowa'])
pochodne = base.Clone(tools=['custom_tool'])
pochodna.CustomBuilder()

W takim przypadku elementami listy narzędzi mogą być także funkcje lub obiekty wywoływalne
metoda Environment() wywoła określone elementy w celu aktualizacji nowej konstrukcji
środowisko:

def moje_narzędzie(env):
env['XYZZY'] = 'xyzzy'

env = Środowisko(narzędzia = [my_tool])

Poszczególne elementy listy narzędzi mogą same być także listami dwuelementowymi
Formularz (nazwa narzędzia, kw_dykt). SCons wyszukuje nazwa narzędzia plik specyfikacji zgodnie z opisem
powyżej i mija kw_dykt, który musi być słownikiem, jako argumenty słów kluczowych narzędzia
Generować funkcjonować. The Generować funkcja może używać argumentów do modyfikowania narzędzia
zachowania, konfigurując środowisko na różne sposoby lub zmieniając je w inny sposób
inicjalizacja.

# w narzędziach/my_tool.py:
def generuj(env, **kw):
# Ustawia MY_TOOL na wartość argumentu słowa kluczowego „arg1” lub 1.
env['MY_TOOL'] = kw.get('arg1', '1')
def istnieje(env):
zwróć 1

# w SConstruct:
env = Środowisko(narzędzia = ['domyślne', ('moje_narzędzie', {'arg1': 'abc'})],
ścieżka narzędzia=['narzędzia'])

Definicja narzędzia (tj. my_tool()) może wykorzystywać zmienną PLATFORM ze środowiska
otrzymuje możliwość dostosowania narzędzia do różnych platform.

Jeśli nie określono żadnej listy narzędzi, SCons automatycznie wykryje zainstalowane narzędzia za pomocą
Zmienna PATH w zmiennej konstrukcyjnej ENV i nazwa platformy, gdy środowisko
Jest skonstruowany. Zmiana zmiennej PATH po skonstruowaniu środowiska nie nastąpi
spowodować ponowne wykrycie narzędzi.

SCons obsługuje następujące specyfikacje narzędzi od razu po wyjęciu z pudełka:

386 tyg
Ustawia zmienne konstrukcyjne dla asemblera 386ASM dla osadzonego Phar Lap ETS
system operacyjny.

Zestawy: $AS, $ASCOM, $ASFLAG, $ASPPCOM, $ASPPFLAGS.

Zastosowania: $CC, $CPPFLAGS, $_CPPDEFFLAG, $_CPPINCFLAGS.

aixc++
Ustawia zmienne konstrukcyjne dla kompilatora IMB xlc / Visual Age C++.

Zestawy: $CXX, $CXXVERSION, $SHCXX, $SHOBJSUFIKS.

aixcc
Ustawia zmienne konstrukcyjne dla kompilatora IBM xlc / Visual Age C.

Zestawy: $CC, $CCVERSION, $SHCC.

aixf77
Ustawia zmienne konstrukcyjne dla kompilatora IBM Visual Age f77 Fortran.

Zestawy: $ F77, 77 dolarów SHF.

aixlink
Ustawia zmienne konstrukcyjne dla konsolidatora IBM Visual Age.

Zestawy: $LINKFLAG, $SHLIBSSUFIKS, $SHLINKFLAGS.

Applelink
Ustawia zmienne konstrukcyjne dla linkera Apple (podobnie jak linker GNU).

Zestawy: PREFIKS $FRAMEWORKPATHPRIX, $LDMODULECOM, $LDMODULEFLAGS, $LDMODULEPREFIX,
$LDMODULESSUFIKS, $LINKCOM, $SHLINKCOM, $SHLINKFLAGS, $_FRAMEWORKPATH, $_FRAMEWORKS.

Zastosowania: $FRAMEWORKSFLAGS.

ar
Ustawia zmienne konstrukcyjne dla archiwizatora biblioteki ar.

Zestawy: $AR, $ARCOM, $ARFLAG, $LIBPREFIX, $LIBSUFIKS, $RANLIB, $RANLIBCOM,
$RANLIBFLAGS.

as
Ustawia zmienne konstrukcyjne dla asemblera as.

Zestawy: $AS, $ASCOM, $ASFLAG, $ASPPCOM, $ASPPFLAGS.

Zastosowania: $CC, $CPPFLAGS, $_CPPDEFFLAG, $_CPPINCFLAGS.

bcc32
Ustawia zmienne konstrukcyjne dla kompilatora bcc32.

Zestawy: $CC, $CCCOM, $CCFLAG, $CFILESUFIKS, $CFLAG, $CPPDEFPREFIX, $CPPDEFSUFIKS,
$INCPREFIKS, $INCSUFFIX, $SHCC, $SHCCCOM, $SHCCFLAGS, $SHCFLAGS, $SHOBJSUFIKS.

Zastosowania: $_CPPDEFFLAG, $_CPPINCFLAGS.

BitKeeper
Ustawia zmienne konstrukcyjne dla systemu kontroli kodu źródłowego BitKeeper.

Zestawy: $BITKEEPER, $BITKEEPERCOM, $BITKEEPERGET, $BITKEEPERGETFLAGS.

Zastosowania: $BITKEEPERCOMSTR.

cc
Ustawia zmienne konstrukcyjne dla ogólnych kompilerów POSIX C.

Zestawy: $CC, $CCCOM, $CCFLAG, $CFILESUFIKS, $CFLAG, $CPPDEFPREFIX, $CPPDEFSUFIKS,
$FRAMEWORKPATH, $FRAMEWRACJE, $INCPREFIKS, $INCSUFFIX, $SHCC, $SHCCCOM, $SHCCFLAGS,
$SHCFLAGS, $SHOBJSUFIKS.

Zastosowania: $PLATFORMA.

CVF
Ustawia zmienne konstrukcyjne dla kompilatora Compaq Visual Fortran.

Zestawy: $FORTRAN, $FORTRANCOM, $FORTRANMODDIR, $FORTRANMODDIRPREFIX,
$FORTRANMODDIRSUFIKS, $FORTRANPPCOM, $OBJSUFFIX, $SHFORTRANCOM, $SHFORTRANPPCOM.

Zastosowania: $CPPFLAGS, $FORTRANFLAGI, $SHFORTRANFLAGI, $_CPPDEFFLAG, $_FORTRANINCFLAGS,
$_FORTRANMODFLAG.

CVS
Ustawia zmienne konstrukcyjne dla systemu zarządzania kodem źródłowym CVS.

Zestawy: $ CVS, $CVSCOFLAGS, $CVSCOM, $CVSFLAGS.

Zastosowania: $CVSCOMSTR.

cXX
Ustawia zmienne konstrukcyjne dla ogólnych kompilatorów POSIX C++.

Zestawy: $CPPDEFPREFIX, $CPPDEFSUFIKS, $CXX, $CXXCOM, $CXXFILESUFIKS, $CXXFLAGS,
$INCPREFIKS, $INCSUFFIX, $OBJSUFFIX, $SHCXX, $SHCXXCOM, $SHCXXFLAGS, $SHOBJSUFIKS.

Zastosowania: $CXXCOMSTR.

cyglink
Ustaw zmienne konstrukcyjne dla linkera/ładowarki cygwin.

Zestawy: $IMPLIBPREFIX, $IMPLIBSUFIKS, $LDMODULEVERSIONFLAGS, $LINKFLAG, $RPATHPREFIKS,
SUFIKS $RPATH, $SHLIBPREFIX, $SHLIBSSUFIKS, $SHLIBVERSIONFLAGS, $SHLINKCOM,
$SHLINKFLAGS, $_LDMODULEVERSIONFLAGS, $_SHLIBVERSIONFLAGS.

domyślnym
Ustawia zmienne, wywołując domyślną listę modułów narzędzi dla platformy, na której
SCons działa.

DMD
Ustawia zmienne konstrukcyjne dla kompilatora języka D DMD.

Zestawy: $DC, $DCOM, $DDEBUG, $DDEBUGPREFIX, $DDEBUGSUFIKS, $DFILESUFIKS, $DFLAGPREFIX,
$DFLAGI, $DFLAGSSUFIKS, $DINCPREFIX, $DINCSUFIKS, $DLIB, $DLIBCOM, $DLIBDIRPREFIX,
$DLIBDIRSUFFIX, $DLIBFLAGPREFIX, SUFIKAT $DLIBFLAG, PREFIKS $DLIBLINK, SUFIKS $DLIBLINK,
$DLINK, $DLINKCOM, $DLINKFLAG, $DPATH, $DVERPREFIX, $WERSJE, $DVERSUFIKS,
$RPATHPREFIKS, SUFIKS $RPATH, $SHDC, $SHDCOM, $SHHDLINK, $SHDLINKCOM, $SHDLINKFLAGI,
$_DDEBUGFLAGS, $_DFLAGS, $_DINCFLAGS, $_DLIBDIRFLAGS, $_DLIBFLAGS, $_DLIBFLAGS,
$_DVERFLAGS, $_RPAT.

dokumentacja
To narzędzie stara się nieco ułatwić pracę z Docbookiem w SCons. To zapewnia
kilka zestawów narzędzi do tworzenia różnych formatów wyjściowych, takich jak HTML lub PDF. Zawiera
w pakiecie znajduje się dystrybucja arkuszy stylów Docbook XSL od wersji 1.76.1.
Jeśli nie określisz własnych arkuszy stylów do dostosowania, będą to oficjalne
wersje są wybierane jako domyślne... co powinno zmniejszyć nieuniknione problemy z konfiguracją
ty.

Niejawne zależności do obrazów i XIncludes są wykrywane automatycznie, jeśli je spełnisz
wymagania HTML. Dodatkowy arkusz stylów utils/xmldependent.xsl autorstwa Paula DuBois to
wykorzystywane do tego celu.

Należy pamiętać, że nie jest dostępna obsługa rozwiązywania katalogów XML! To narzędzie wywołuje
Procesory XSLT i moduły renderujące PDF z określonymi arkuszami stylów i to wszystko. The
reszta leży w twoich rękach i nadal musisz wiedzieć, co robisz, podejmując decyzję
nazwy poprzez katalog.

Aby aktywować narzędzie „docbook”, należy dodać jego nazwę do Środowiska
konstruktor, coś takiego

env = Środowisko(tools=['docbook'])

Podczas uruchamiania narzędzie Docbook próbuje znaleźć wymagany procesor xsltproc i a
Renderer PDF, np. fop. Upewnij się więc, że zostały one dodane do Twojego systemu
środowisko PATH i można je wywołać bezpośrednio, bez podawania pełnej ścieżki.

Do najbardziej podstawowego przetwarzania Docbooka na HTML musisz mieć zainstalowany

· powiązanie Pythona lxml z libxml2, lub

· bezpośrednie powiązania Pythona z libxml2/libxslt, lub

· samodzielny procesor XSLT, obecnie wykrywane są xsltproc, saxon, saxon-xslt
i xalan.

Renderowanie do formatu PDF wymaga zainstalowania jednej z aplikacji FOP lub XEP.

Tworzenie dokumentu HTML lub PDF jest bardzo proste i jednoznaczne. Mowić

env = Środowisko(tools=['docbook'])
env.DocbookHtml('manual.html', 'manual.xml')
env.DocbookPdf('manual.pdf', 'manual.xml')

aby uzyskać oba wyniki ze źródła XML manual.xml. Jako skrót możesz podać
rdzeń samych nazw plików, taki jak ten:

env = Środowisko(tools=['docbook'])
env.DocbookHtml('podręcznik')
env.DocbookPdf('podręcznik')

i uzyskać ten sam wynik. Obsługiwane są także listy docelowe i źródłowe:

env = Środowisko(tools=['docbook'])
env.DocbookHtml(['manual.html','reference.html'], ['manual.xml','reference.xml'])

lub nawet

env = Środowisko(tools=['docbook'])
env.DocbookHtml(['podręcznik','odniesienie'])

Ważny
Ilekroć pominiesz listę źródeł, nie możesz określić rozszerzenia pliku!
Narzędzie używa podanych nazw jako rdzeni plików i dodaje przyrostki dla elementu docelowego i
odpowiednio pliki źródłowe.
Zasady podane powyżej obowiązują Konstruktorów Dokument HTML, Dokument PDF, DokumentacjaEpub,
DokumentSlajdyPdf i DocbookXInclude. Dla DocbookMan transformacja, którą możesz
określ nazwę docelową, ale rzeczywiste nazwy wyjściowe są ustawiane automatycznie z pliku
refname wpisy w źródle XML.

Budowniczy DocbookHtmlPołączony, DocbookHtmlhelp i DocbookSlidesHtml są wyjątkowe, w
że:

1. tworzą duży zbiór plików, od których zależą dokładne nazwy i ich liczba
zawartość pliku źródłowego oraz

2. główny cel ma zawsze nazwę indeks.html, tj. nazwa wyjściowa XSL
transformacja nie jest uwzględniana w arkuszach stylów.

W rezultacie po prostu nie ma sensu określać docelowej nazwy HTML. A więc podstawowe
składnia tych konstruktorów jest zawsze następująca:

env = Środowisko(tools=['docbook'])
env.DocbookHtmlhelp('podręcznik')

Jeśli chcesz użyć określonego pliku XSL, możesz ustawić dodatkowy parametr xsl na
wywołanie Buildera w następujący sposób:

env.DocbookHtml('inny.html', 'manual.xml', xsl='html.xsl')

Ponieważ może to być nudne, jeśli zawsze używasz tego samego lokalnego nazewnictwa dla swojego spersonalizowanego
Pliki XSL, np. html.xsl dla HTML i pdf.xsl dla wyjścia PDF, zestaw zmiennych dla
zapewnione jest ustawienie domyślnej nazwy XSL. To są:

DOCBOOK_DEFAULT_XSL_HTML
DOCBOOK_DEFAULT_XSL_HTMLCHUNKED
DOCBOOK_DEFAULT_XSL_HTMLHELP
DOCBOOK_DEFAULT_XSL_PDF
DOCBOOK_DEFAULT_XSL_EPUB
DOCBOOK_DEFAULT_XSL_MAN
DOCBOOK_DEFAULT_XSL_SLIDESPDF
DOCBOOK_DEFAULT_XSL_SLIDESHTML

i możesz je ustawić podczas konstruowania środowiska:

env = Środowisko(narzędzia=['docbook'],
DOCBOOK_DEFAULT_XSL_HTML='html.xsl',
DOCBOOK_DEFAULT_XSL_PDF='pdf.xsl')
env.DocbookHtml('manual') # używa teraz pliku html.xsl

Zestawy: $DOCBOOK_DEFAULT_XSL_EPUB, $DOCBOOK_DEFAULT_XSL_HTML,
$DOCBOOK_DEFAULT_XSL_HTMLCHUNKED, $DOCBOOK_DEFAULT_XSL_HTMLHELP,
$DOCBOOK_DEFAULT_XSL_MAN, $DOCBOOK_DEFAULT_XSL_PDF, $DOCBOOK_DEFAULT_XSL_SLIDESHTML,
$DOCBOOK_DEFAULT_XSL_SLIDESPDF, $DOCBOOK_FOP, $DOCBOOK_FOPCOM, $DOCBOOK_FOPFLAGS,
$DOCBOOK_XMLINT, $DOCBOOK_XMLLINTCOM, $DOCBOOK_XMLLINTFLAGS, $DOCBOOK_XSLTPROC,
$DOCBOOK_XSLTPROCCOM, $DOCBOOK_XSLTPROCFLAGS, $DOCBOOK_XSLTPROCPARAMS.

Zastosowania: $DOCBOOK_FOPCOMSTR, $DOCBOOK_XMLLINTCOMSTR, $DOCBOOK_XSLTPROCCOMSTR.

Dvi
Dołącza DVI budowniczego do środowiska budowlanego.

dvipdf
Ustawia zmienne konstrukcyjne dla narzędzia dvipdf.

Zestawy: $DVIPDF, $DVIPDFCOM, $DVIPDFFLAGS.

Zastosowania: $DVIPDFCOMSTR.

dvipy
Ustawia zmienne konstrukcyjne dla narzędzia dvips.

Zestawy: $DVIPS, $DVIPSLAGS, $PSCOM, $PSPREFIX, $PSSUFIKS.

Zastosowania: $PSCOMSTR.

f03
Ustaw zmienne konstrukcyjne dla ogólnych kompilatorów POSIX Fortran 03.

Zestawy: $ F03, $F03COM, $F03FLAG, $F03PPCOM, 03 dolarów SHF, $SHF03COM, $SHF03FLAGI,
$SHF03PPCOM, $_F03INCFLAGS.

Zastosowania: $F03COMSTR, $F03PPCOMSTR, $SHF03COMSTR, $SHF03PPCOMSTR.

f08
Ustaw zmienne konstrukcyjne dla ogólnych kompilatorów POSIX Fortran 08.

Zestawy: $ F08, $F08COM, $F08FLAG, $F08PPCOM, 08 dolarów SHF, $SHF08COM, $SHF08FLAGI,
$SHF08PPCOM, $_F08INCFLAGS.

Zastosowania: $F08COMSTR, $F08PPCOMSTR, $SHF08COMSTR, $SHF08PPCOMSTR.

f77
Ustaw zmienne konstrukcyjne dla ogólnych kompilatorów POSIX Fortran 77.

Zestawy: $ F77, $F77COM, $F77SUFIKSÓW PLIKÓW, $F77FLAG, $F77PPCOM, PRZYSZKÓWKI PLIKÓW $F77PP,
$FORTRAN, $FORTRANCOM, $FORTRANFLAGI, 77 dolarów SHF, $SHF77COM, $SHF77FLAGI, $SHF77PPCOM,
$SHFORTRAN, $SHFORTRANCOM, $SHFORTRANFLAGI, $SHFORTRANPPCOM, $_F77INCFLAGS.

Zastosowania: $F77COMSTR, $F77PPCOMSTR, $FORTRANCOMSTR, $FORTRANPPCOMSTR, $SHF77COMSTR,
$SHF77PPCOMSTR, $SHFORTRANCOMSTR, $SHFORTRANPPCOMSTR.

f90
Ustaw zmienne konstrukcyjne dla ogólnych kompilatorów POSIX Fortran 90.

Zestawy: $ F90, $F90COM, $F90FLAG, $F90PPCOM, 90 dolarów SHF, $SHF90COM, $SHF90FLAGI,
$SHF90PPCOM, $_F90INCFLAGS.

Zastosowania: $F90COMSTR, $F90PPCOMSTR, $SHF90COMSTR, $SHF90PPCOMSTR.

f95
Ustaw zmienne konstrukcyjne dla ogólnych kompilatorów POSIX Fortran 95.

Zestawy: $ F95, $F95COM, $F95FLAG, $F95PPCOM, 95 dolarów SHF, $SHF95COM, $SHF95FLAGI,
$SHF95PPCOM, $_F95INCFLAGS.

Zastosowania: $F95COMSTR, $F95PPCOMSTR, $SHF95COMSTR, $SHF95PPCOMSTR.

fortran
Ustaw zmienne konstrukcyjne dla ogólnych kompilatorów POSIX Fortran.

Zestawy: $FORTRAN, $FORTRANCOM, $FORTRANFLAGI, $SHFORTRAN, $SHFORTRANCOM,
$SHFORTRANFLAGI, $SHFORTRANPPCOM.

Zastosowania: $FORTRANCOMSTR, $FORTRANPPCOMSTR, $SHFORTRANCOMSTR, $SHFORTRANPPCOMSTR.

g ++
Ustaw zmienne konstrukcyjne dla kompilatora gXX C++.

Zestawy: $CXX, $CXXVERSION, $SHCXXFLAGS, $SHOBJSUFIKS.

g77
Ustaw zmienne konstrukcyjne dla kompilatora g77 Fortran. Wywołuje moduł f77 Tool
ustawić zmienne.

gaz
Ustawia zmienne konstrukcyjne dla asemblera gazowego. Wywołuje moduł as.

Zestawy: $AS.

gcc
Ustaw zmienne konstrukcyjne dla kompilatora gcc C.

Zestawy: $CC, $CCVERSION, $SHCCFLAGS.

gdc
Ustawia zmienne konstrukcyjne dla kompilatora języka D GDC.

Zestawy: $DC, $DCOM, $DDEBUG, $DDEBUGPREFIX, $DDEBUGSUFIKS, $DFILESUFIKS, $DFLAGPREFIX,
$DFLAGI, $DFLAGSSUFIKS, $DINCPREFIX, $DINCSUFIKS, $DLIB, $DLIBCOM, $DLIBFLAGPREFIX,
SUFIKAT $DLIBFLAG, $DLINK, $DLINKCOM, $DLINKFLAGPREFIX, $DLINKFLAG, SUFIKAT $DLINKFLAG,
$DPATH, $DVERPREFIX, $WERSJE, $DVERSUFIKS, $RPATHPREFIKS, SUFIKS $RPATH, $SHDC,
$SHDCOM, $SHHDLINK, $SHDLINKCOM, $SHDLINKFLAGI, $_DDEBUGFLAGS, $_DFLAGS, $_DINCFLAGS,
$_DLIBFLAGS, $_DVERFLAGS, $_RPAT.

gettext
W rzeczywistości jest to zestaw narzędzi, który wspiera internacjonalizację i lokalizację
oprogramowanie tworzone przy użyciu SCons. Zestaw narzędzi ładuje następujące narzędzia:

· xgettext - do ekstrakcji umiędzynarodowionych wiadomości z kodu źródłowego do pliku(ów) POT,

· msginit - może być opcjonalnie użyty do inicjacji plików PO,

· msgmerge - aby zaktualizować pliki PO, które zawierają już przetłumaczone wiadomości,

· msgfmt – aby skompilować tekstowy plik PO do binarnego, instalowalnego pliku MO.

Kiedy włączysz gettext, wewnętrznie ładuje wszystkie wyżej wymienione narzędzia, więc jesteś
zachęcamy do zapoznania się z ich indywidualną dokumentacją.

Każde z powyższych narzędzi zapewnia własnego konstruktora, którego można użyć do wykonania
szczególne działania związane z internacjonalizacją oprogramowania. Możesz jednak być
zainteresowany najwyższy poziom budowniczy Tłumacz opisano kilka akapitów później.

Aby korzystać z narzędzi gettext, dodaj narzędzie „gettext” do swojego środowiska:

env = Środowisko( narzędzia = ['domyślne', 'gettext'])

gfortran
Ustawia zmienne konstrukcyjne dla kompilatora GNU F95/F2003 GNU.

Zestawy: $ F77, $ F90, $ F95, $FORTRAN, 77 dolarów SHF, $SHF77FLAGI, 90 dolarów SHF, $SHF90FLAGI, 95 dolarów SHF,
$SHF95FLAGI, $SHFORTRAN, $SHFORTRANFLAGI.

gnulink
Ustaw zmienne konstrukcyjne dla linkera/ładowarki GNU.

Zestawy: $LDMODULEVERSIONFLAGS, $RPATHPREFIKS, SUFIKS $RPATH, $SHLIBVERSIONFLAGS,
$SHLINKFLAGS, $_LDMODULESONAZWA, $_SHLIBSONAZWA.

gs
To narzędzie ustawia wymagane zmienne konstrukcyjne do pracy z Ghostscriptem
Komenda. Rejestruje również odpowiednią akcję w narzędziu PDF Builder (PDF), taki, że
konwersja z PS/EPS na PDF odbywa się automatycznie dla zestawu narzędzi TeX/LaTeX.
Na koniec dodaje jawny Ghostscript Builder (Gs) do otoczenia.

Zestawy: $ GS, $GSCOM, $GSFLAG.

Zastosowania: $GSCOMSTR.

hpc++
Ustaw zmienne konstrukcyjne dla kompilatorów aCC w systemach HP/UX.

hpcc
Ustaw zmienne konstrukcyjne dla aCC w systemach HP/UX. Wywołuje narzędzie cXX for
dodatkowe zmienne.

Zestawy: $CXX, $CXXVERSION, $SHCXXFLAGS.

hplink
Ustawia zmienne konstrukcyjne dla linkera w systemach HP/UX.

Zestawy: $LINKFLAG, $SHLIBSSUFIKS, $SHLINKFLAGS.

Icc
Ustawia zmienne konstrukcyjne dla kompilatora icc w systemach OS/2.

Zestawy: $CC, $CCCOM, $CFILESUFIKS, $CPPDEFPREFIX, $CPPDEFSUFIKS, $CXXCOM,
$CXXFILESUFIKS, $INCPREFIKS, $INCSUFFIX.

Zastosowania: $CCFLAG, $CFLAG, $CPPFLAGS, $_CPPDEFFLAG, $_CPPINCFLAGS.

icl
Ustawia zmienne konstrukcyjne dla kompilatora Intel C/C++. Wywołuje moduł intelc Tool
aby ustawić jego zmienne.

jeśli
Ustawia zmienne konstrukcyjne dla kompilatora Intel Fortran.

Zestawy: $FORTRAN, $FORTRANCOM, $FORTRANPPCOM, $SHFORTRANCOM, $SHFORTRANPPCOM.

Zastosowania: $CPPFLAGS, $FORTRANFLAGI, $_CPPDEFFLAG, $_FORTRANINCFLAGS.

fort
Ustawia zmienne konstrukcyjne dla nowszych wersji kompilatora Intel Fortran dla
Linux.

Zestawy: $ F77, $ F90, $ F95, $FORTRAN, 77 dolarów SHF, $SHF77FLAGI, 90 dolarów SHF, $SHF90FLAGI, 95 dolarów SHF,
$SHF95FLAGI, $SHFORTRAN, $SHFORTRANFLAGI.

iLink
Ustawia zmienne konstrukcyjne dla linkera ilink w systemach OS/2.

Zestawy: $LIBDIRPREFIX, $LIBDIRSUFIKS, $LIBLINKPREFIX, SUFIKS $LIBLINK, $ LINK, $LINKCOM,
$LINKFLAG.

ilink32
Ustawia zmienne konstrukcyjne dla linkera Borland ilink32.

Zestawy: $LIBDIRPREFIX, $LIBDIRSUFIKS, $LIBLINKPREFIX, SUFIKS $LIBLINK, $ LINK, $LINKCOM,
$LINKFLAG.

zainstalować
Ustawia zmienne konstrukcyjne dla instalacji plików i katalogów.

Zestawy: $INSTALUJ, $INSTALLSTR.

inteligencja
Ustawia zmienne konstrukcyjne dla kompilatora Intel C/C++ (Linux i Windows, wersja 7
i później). Wywołuje gcc lub msvc (odpowiednio w systemie Linux i Windows), aby ustawić
zmienne podstawowe.

Zestawy: $AR, $CC, $CXX, $INTEL_C_COMPILER_VERSION, $ LINK.

słoik
Ustawia zmienne konstrukcyjne dla narzędzia jar.

Zestawy: $JAR, $JARCOM, $JARFLAG, $JARSUFIKS.

Zastosowania: $JARCOMSTR.

javac
Ustawia zmienne konstrukcyjne dla kompilatora javac.

Zestawy: $JAVABOOTCLASSPATH, $JAVAC, $JAVACCOM, $JAVACFLAGS, $JAVACCLASSPATH,
SUFIKAT $JAVACCLASS, $JavaSOURCEPATH, $JAVASUFIKS.

Zastosowania: $JAVACCOMSTR.

jawa
Ustawia zmienne konstrukcyjne dla narzędzia Javah.

Zestawy: SUFIKAT $JAVACCLASS, $Java, $JAVAHCOM, $JAVAHFLAGS.

Zastosowania: $JAVACCLASSPATH, $JAVAHCOMSTR.

lateks
Ustawia zmienne konstrukcyjne dla narzędzia Latex.

Zestawy: $LATEX, $LATEXCOM, $LATEXFLAGS.

Zastosowania: $LATEXCOMSTR.

spółka z ograniczoną odpowiedzialnością
Ustawia zmienne konstrukcyjne dla kompilatora języka D LDC2.

Zestawy: $DC, $DCOM, $DDEBUG, $DDEBUGPREFIX, $DDEBUGSUFIKS, $DFILESUFIKS, $DFLAGPREFIX,
$DFLAGI, $DFLAGSSUFIKS, $DINCPREFIX, $DINCSUFIKS, $DLIB, $DLIBCOM, $DLIBDIRPREFIX,
$DLIBDIRSUFFIX, $DLIBFLAGPREFIX, SUFIKAT $DLIBFLAG, PREFIKS $DLIBLINK, SUFIKS $DLIBLINK,
$DLINK, $DLINKCOM, $DLINKFLAGPREFIX, $DLINKFLAG, SUFIKAT $DLINKFLAG, $DPATH,
$DVERPREFIX, $WERSJE, $DVERSUFIKS, $RPATHPREFIKS, SUFIKS $RPATH, $SHDC, $SHDCOM,
$SHHDLINK, $SHDLINKCOM, $SHDLINKFLAGI, $_DDEBUGFLAGS, $_DFLAGS, $_DINCFLAGS,
$_DLIBDIRFLAGS, $_DLIBFLAGS, $_DLIBFLAGS, $_DVERFLAGS, $_RPAT.

lex
Ustawia zmienne konstrukcyjne dla analizatora leksykalnego.

Zestawy: $LEX, $LEXCOM, $LEXFLAG.

Zastosowania: $LEXCOMSTR.

link
Ustawia zmienne konstrukcyjne dla ogólnych linkerów POSIX.

Zestawy: $LDMODUŁ, $LDMODULECOM, $LDMODULEFLAGS, $LDMODULENOVERSIONSYMLINKS,
$LDMODULEPREFIX, $LDMODULESSUFIKS, $LDMODULEVERSION, $LDMODULEVERSIONFLAGS,
$LIBDIRPREFIX, $LIBDIRSUFIKS, $LIBLINKPREFIX, SUFIKS $LIBLINK, $ LINK, $LINKCOM,
$LINKFLAG, $SHLIBSSUFIKS, $SHLINK, $SHLINKCOM, $SHLINKFLAGS, $__LDMODULEVERSIONFLAGS,
$__SHLIBVERSIONFLAGS.

Zastosowania: $LDMODULECOMSTR, $LINKCOMSTR, $SHLINKCOMSTR.

linklok
Ustawia zmienne konstrukcyjne dla linkera LinkLoc dla osadzonego Phar Lap ETS
system operacyjny.

Zestawy: $LIBDIRPREFIX, $LIBDIRSUFIKS, $LIBLINKPREFIX, SUFIKS $LIBLINK, $ LINK, $LINKCOM,
$LINKFLAG, $SHLINK, $SHLINKCOM, $SHLINKFLAGS.

Zastosowania: $LINKCOMSTR, $SHLINKCOMSTR.

m4
Ustawia zmienne konstrukcyjne dla makroprocesora m4.

Zestawy: 4 mln $, $M4COM, $M4FLAG.

Zastosowania: $M4COMSTR.

więcej M
Ustawia zmienne konstrukcyjne dla asemblera Microsoft.

Zestawy: $AS, $ASCOM, $ASFLAG, $ASPPCOM, $ASPPFLAGS.

Zastosowania: $ASCOMSTR, $ASPPCOMSTR, $CPPFLAGS, $_CPPDEFFLAG, $_CPPINCFLAGS.

średni
Ustawia zmienne konstrukcyjne dla kompilatora Microsoft IDL.

Zestawy: $ŚREDNI, $MIDLCOM, $MIDLFLAG.

Zastosowania: $MIDLCOMSTR.

mingw
Ustawia zmienne konstrukcyjne dla MinGW (Minimal Gnu w systemie Windows).

Zestawy: $AS, $CC, $CXX, $LDMODULECOM, $LIBPREFIX, $LIBSUFIKS, $OBJSUFFIX, $RC, $RCCOM,
$RCFLAGS, $RCINCFLAGS, $RCINCPREFIKS, $RCINCSSUFIKS, $SHCCFLAGS, $SHCXXFLAGS,
$SHLINKCOM, $SHLINKFLAGS, $SHOBJSUFIKS, $WINDOWSDEFPREFIX, SUFIKS $WINDOWSDEF.

Zastosowania: $RCCOMSTR, $SHLINKCOMSTR.

msgfmt
To narzędzie scons jest częścią zestawu narzędzi scons gettext. Zapewnia interfejs scons do
msgfmt(1) polecenie, które generuje katalog komunikatów binarnych (MO) na podstawie tekstu
opis tłumaczenia (PO).

Zestawy: $MOSUFIKS, $MSGFMT, $MSGFMTCOM, $MSGFMTCOMSTR, $MSGFMTFLAG, $POSUFIKS.

Zastosowania: $LINGUAS_FILE.

msginit
To narzędzie scons jest częścią zestawu narzędzi scons gettext. Zapewnia interfejs scons do
msginit(1) program, który tworzy nowy plik PO, inicjując metainformacje za pomocą
wartości ze środowiska użytkownika (lub opcji).

Zestawy: $MSGINIT, $MSGINITCOM, $MSGINITCOMSTR, $MSGINITFLAGS, $POAUTOINIT,
$POCREATE_ALIAS, $POSUFIKS, $POTSUFIKS, $_MSGINITLOCALE.

Zastosowania: $LINGUAS_FILE, $POAUTOINIT, $POTDOMAIN.

msgmerge
To narzędzie scons jest częścią zestawu narzędzi scons gettext. Zapewnia interfejs scons do
msgmerge(1) polecenie, które łączy ze sobą dwa pliki .po w stylu jednolitym.

Zestawy: $MSGMERGE, $MSGMERGECOM, $MSGMERGECOMSTR, $MSGMERGEFLAGS, $POSUFIKS, $POTSUFIKS,
$POUPDATE_ALIAS.

Zastosowania: $LINGUAS_FILE, $POAUTOINIT, $POTDOMAIN.

mslib
Ustawia zmienne konstrukcyjne dla archiwizatora biblioteki Microsoft mslib.

Zestawy: $AR, $ARCOM, $ARFLAG, $LIBPREFIX, $LIBSUFIKS.

Zastosowania: $ARCOMSTR.

mslink
Ustawia zmienne konstrukcyjne dla konsolidatora Microsoft.

Zestawy: $LDMODUŁ, $LDMODULECOM, $LDMODULEFLAGS, $LDMODULEPREFIX, $LDMODULESSUFIKS,
$LIBDIRPREFIX, $LIBDIRSUFIKS, $LIBLINKPREFIX, SUFIKS $LIBLINK, $ LINK, $LINKCOM,
$LINKFLAG, $REGSVR, $REGSVRCOM, $REGSVRFLAGS, $SHLINK, $SHLINKCOM, $SHLINKFLAGS,
$WIN32DEFPREFIX, SUFIKAT $WIN32DEF, $WIN32EXPPREFIKS, $WIN32EXPSUFFIX, $WINDOWSDEFPREFIX,
SUFIKS $WINDOWSDEF, $WINDOWSEXPPREFIKS, $WINDOWSEXPSUFFIX, PREFIKS $WINDOWSPROGMANIFEST,
SUFIKAT $WINDOWSPROGMANIFEST, PREFIKS $WINDOWSSHLIBMANIFEST, SUFIKS $WINDOWSSHLIBMANIFEST,
$WINDOWS_INSERT_DEF.

Zastosowania: $LDMODULECOMSTR, $LINKCOMSTR, $REGSVRCOMSTR, $SHLINKCOMSTR.

mssdk
Ustawia zmienne dla pakietu Microsoft Platform SDK i/lub Windows SDK. Zauważ, że w przeciwieństwie do większości
innych modułów narzędzia, mssdk nie ustawia zmiennych konstrukcyjnych, ale ustawia
środowisko zmienne w środowisku używanym przez SCons do wykonywania Microsoft
łańcuch narzędzi: %INCLUDE%, %LIB%, %LIBPATH% i %PATH%.

Zastosowania: $MSSDK_DIR, $MSSDK_VERSION, $MSVS_VERSION.

msvc
Ustawia zmienne konstrukcyjne dla kompilatora Microsoft Visual C/C++.

Zestawy: $BUDOWNICY, $CC, $CCCOM, $CCFLAG, $CCPCHFLAGS, $CCPDBFLAGS, $CFILESUFIKS,
$CFLAG, $CPPDEFPREFIX, $CPPDEFSUFIKS, $CXX, $CXXCOM, $CXXFILESUFIKS, $CXXFLAGS,
$INCPREFIKS, $INCSUFFIX, $OBJPREFIX, $OBJSUFFIX, $PCHCOM, $PCPDBFLAGS, $RC, $RCCOM,
$RCFLAGS, $SHCC, $SHCCCOM, $SHCCFLAGS, $SHCFLAGS, $SHCXX, $SHCXXCOM, $SHCXXFLAGS,
$SHOBJPREFIX, $SHOBJSUFIKS.

Zastosowania: $CCCOMSTR, $CXXCOMSTR, $PCH, $PCHSTOP, $PDB, $SHCCCOMSTR, $SHCXXCOMSTR.

msvs
Ustawia zmienne konstrukcyjne dla Microsoft Visual Studio.

Zestawy: $MSVSBUILDCOM, $MSVSCLEANCOM, $MSVSEKODOWANIE, $MSVSPROJECTCOM, $MSVSREBUILDCOM,
$MSVSSCONS, $MSVSSCONSCOM, $MSVSSCONSCRIPT, $MSVSSCONSFLAGS, $MSVSSOLUTIONCOM.

mwcc
Ustawia zmienne konstrukcyjne dla kompilatora Metrowerks CodeWarrior.

Zestawy: $CC, $CCCOM, $CFILESUFIKS, $CPPDEFPREFIX, $CPPDEFSUFIKS, $CXX, $CXXCOM,
$CXXFILESUFIKS, $INCPREFIKS, $INCSUFFIX, $MWCW_VERSION, $MWCW_VERSIONS, $SHCC,
$SHCCCOM, $SHCCFLAGS, $SHCFLAGS, $SHCXX, $SHCXXCOM, $SHCXXFLAGS.

Zastosowania: $CCCOMSTR, $CXXCOMSTR, $SHCCCOMSTR, $SHCXXCOMSTR.

mwld
Ustawia zmienne konstrukcyjne dla linkera Metrowerks CodeWarrior.

Zestawy: $AR, $ARCOM, $LIBDIRPREFIX, $LIBDIRSUFIKS, $LIBLINKPREFIX, SUFIKS $LIBLINK,
$ LINK, $LINKCOM, $SHLINK, $SHLINKCOM, $SHLINKFLAGS.

Nasm
Ustawia zmienne konstrukcyjne dla asemblera nasm Netwide.

Zestawy: $AS, $ASCOM, $ASFLAG, $ASPPCOM, $ASPPFLAGS.

Zastosowania: $ASCOMSTR, $ASPPCOMSTR.

Pakowanie
Ustawia zmienne konstrukcyjne dla Pakiet Budowniczy.

opakowania
Framework do budowania pakietów binarnych i źródłowych.

pdf
Ustawia zmienne konstrukcyjne dla konstruktora przenośnego formatu dokumentu.

Zestawy: $PDFPREFIX, $PDFSUFIKS.

pdflateks
Ustawia zmienne konstrukcyjne dla narzędzia pdflatex.

Zestawy: $LATEXRETRIES, $PDFLATEX, $PDFLATEXCOM, $PDFLATEXFLAGS.

Zastosowania: $PDFLATEXCOMSTR.

pdftex
Ustawia zmienne konstrukcyjne dla narzędzia pdftex.

Zestawy: $LATEXRETRIES, $PDFLATEX, $PDFLATEXCOM, $PDFLATEXFLAGS, $PDFTEX, $PDFTEXCOM,
$PDFTEXFLAGS.

Zastosowania: $PDFLATEXCOMSTR, $PDFTEXCOMSTR.

Perforce
Ustawia zmienne konstrukcyjne do interakcji z zarządzaniem kodem źródłowym Perforce
pomimo napiętego harmonogramu

Zestawy: $ 4, $P4COM, $P4FLAG.

Zastosowania: $P4COMSTR.

qt
Ustawia zmienne konstrukcyjne do tworzenia aplikacji Qt.

Zestawy: $QTDIR, $QT_AUTOSCAN, $QT_BINPATH, $QT_CPPPATH, $QT_LIB, $QT_LIBPATH, $QT_MOC,
$QT_MOCCXXPREFIX, $QT_MOCCXXSUFFIX, $QT_MOCFROMCXXCOM, $QT_MOCFROMCXXFLAGS,
$QT_MOCFROMHCOM, $QT_MOCFROMHFLAGS, $QT_MOCHPREFIX, $QT_MOCHSUFFIX, $QT_UIC,
$QT_UICCOM, $QT_UICDECLFLAGS, $QT_UICDECLPREFIKS, $QT_UICDECLSSUFFIX, $QT_UICIMPLFLAGS,
$QT_UICIMPPREFIX, $QT_UICIMPSUFFIX, $QT_UISUFFIX.

RCS
Ustawia zmienne konstrukcyjne do interakcji z systemem kontroli wersji.

Zestawy: $RCS, $RCS_CO, $RCS_COCOM, $RCS_COFLAGS.

Zastosowania: $RCS_COCOMSTR.

rmic
Ustawia zmienne konstrukcyjne dla narzędzia rmic.

Zestawy: SUFIKAT $JAVACCLASS, $RMIC, $RMICCOM, $RMICFLAGS.

Zastosowania: $RMICCOMSTR.

rpcgen
Ustawia zmienne konstrukcyjne do budowania za pomocą RPCGEN.

Zestawy: $RPCGEN, $RPCGENCLIENTFLAGS, $RPCGENFLAGS, $RPCGENHEADERFLAG,
$RPCGENSERVICEFLAGS, $RPCGENXDRFLAGS.

SCCS
Ustawia zmienne konstrukcyjne do interakcji z systemem kontroli kodu źródłowego.

Zestawy: $SCCS, $SCCSCOM, $SCCSFLAG, $SCCSGETFLAGS.

Zastosowania: $SCCSCOMSTR.

sgiar
Ustawia zmienne konstrukcyjne dla archiwizatora biblioteki SGI.

Zestawy: $AR, $ARCOMSTR, $ARFLAG, $LIBPREFIX, $LIBSUFIKS, $SHLINK, $SHLINKFLAGS.

Zastosowania: $ARCOMSTR, $SHLINKCOMSTR.

dziwne++
Ustawia zmienne konstrukcyjne dla kompilatora SGI C++.

Zestawy: $CXX, $CXXFLAGS, $SHCXX, $SHOBJSUFIKS.

sgicc
Ustawia zmienne konstrukcyjne dla kompilatora SGI C.

Zestawy: $CXX, $SHOBJSUFIKS.

Sgilink
Ustawia zmienne konstrukcyjne dla linkera SGI.

Zestawy: $ LINK, $RPATHPREFIKS, SUFIKS $RPATH, $SHLINKFLAGS.

sunar
Ustawia zmienne konstrukcyjne dla archiwizatora biblioteki Sun.

Zestawy: $AR, $ARCOM, $ARFLAG, $LIBPREFIX, $LIBSUFIKS.

Zastosowania: $ARCOMSTR.

sunc++
Ustawia zmienne konstrukcyjne dla kompilatora Sun C++.

Zestawy: $CXX, $CXXVERSION, $SHCXX, $SHCXXFLAGS, $SHOBJPREFIX, $SHOBJSUFIKS.

niedz
Ustawia zmienne konstrukcyjne dla kompilatora Sun C.

Zestawy: $CXX, $SHCCFLAGS, $SHOBJPREFIX, $SHOBJSUFIKS.

sunf77
Ustaw zmienne konstrukcyjne dla kompilatora Sun f77 Fortran.

Zestawy: $ F77, $FORTRAN, 77 dolarów SHF, $SHF77FLAGI, $SHFORTRAN, $SHFORTRANFLAGI.

sunf90
Ustaw zmienne konstrukcyjne dla kompilatora Sun f90 Fortran.

Zestawy: $ F90, $FORTRAN, 90 dolarów SHF, $SHF90FLAGI, $SHFORTRAN, $SHFORTRANFLAGI.

sunf95
Ustaw zmienne konstrukcyjne dla kompilatora Sun f95 Fortran.

Zestawy: $ F95, $FORTRAN, 95 dolarów SHF, $SHF95FLAGI, $SHFORTRAN, $SHFORTRANFLAGI.

łącze słoneczne
Ustawia zmienne konstrukcyjne dla linkera Sun.

Zestawy: $RPATHPREFIKS, SUFIKS $RPATH, $SHLINKFLAGS.

haust
Ustawia zmienne konstrukcyjne dla generatora interfejsu SWIG.

Zestawy: $SWIG, $SWIGCFILESUFIKS, $SWIGCOM, $SWIGCXXFILESUFIKS, SUFIKS $SWIGDIRECTORS,
$SWIGFLAGI, $SWIGINCPREFIX, SUFIKS $SWIGINC, $SWIGPATH, $SWIGVERSION, $_SWIGINCFLAGS.

Zastosowania: $SWIGCOMSTR.

smoła
Ustawia zmienne konstrukcyjne dla archiwizatora tar.

Zestawy: $TAR, $TARCOM, $TARFLAG, $TARSUFIKS.

Zastosowania: $TARCOMSTR.

tex
Ustawia zmienne konstrukcyjne dla formatera i zecera TeX-a.

Zestawy: $BIBTEX, $BIBTEXCOM, $BIBTEXFLAGS, $LATEX, $LATEXCOM, $LATEXFLAGS, $MAKEINDEX,
$MAKEINDEXCOM, $MAKEINDEXFLAGS, $TEX, $TEXCOM, $TEXFLAG.

Zastosowania: $BIBTEXCOMSTR, $LATEXCOMSTR, $MAKEINDEXCOMSTR, $TEXCOMSTR.

plik tekstowy
Ustaw zmienne konstrukcyjne dla Plik tekstowy i Plik podrzędny budowniczych.

Zestawy: $LINESEPARATORA, $SUBSTFILEPREFIX, $SUBSTFILESUFIKS, $TEXTFILEPREFIX,
$TEXTFILESUFIKS.

Zastosowania: $SUBST_DICT.

tlib
Ustawia zmienne konstrukcyjne dla archiwizatora biblioteki tib firmy Borlan.

Zestawy: $AR, $ARCOM, $ARFLAG, $LIBPREFIX, $LIBSUFIKS.

Zastosowania: $ARCOMSTR.

xgettekst
To narzędzie scons jest częścią zestawu narzędzi scons gettext. Zapewnia interfejs scons do
xgettekst(1) program, który wyodrębnia umiędzynarodowione wiadomości z kodu źródłowego. The
narzędzie zapewnia POTUaktualizacja budowniczy do tworzenia PO szablon akta.

Zestawy: $POTSUFIKS, $POTUPDATE_ALIAS, $XGETTEXTCOM, $XGETTEXTCOMSTR, $XGETTEXTFLAGS,
$XGETTEXTFROM, $XGETTEXTFROMPREFIX, $XGETTEXTFROMSUFIKS, $XGETTEXTPATH,
$XGETTEXTPATHPREFIKS, $XGETTEXTPATHSSUFFIX, $_XGETTEXTDOMAIN, $_XGETTEXTFROMFLAGS,
$_XGETTEXTPATHFLAGS.

Zastosowania: $POTDOMAIN.

Yacc
Ustawia zmienne konstrukcyjne dla generatora analizy składni yacc.

Zestawy: $YACC, $YACCCOM, $YACCFLAGS, $YACCHFILESUFIKS, $YACCHXXFILESUFIKS,
$YACCVCGFILESUFIKS.

Zastosowania: $YACCCOMSTR.

zamek błyskawiczny
Ustawia zmienne konstrukcyjne dla archiwizatora zip.

Zestawy: $ZIP, $ZIPCOM, $ZIPKOMPRESJA, $ZIPFLAG, $ZIPSUFIKS.

Zastosowania: $ZIPCOMSTR.

Dodatkowo istnieje „narzędzie” o nazwie domyślnym który konfiguruje środowisko za pomocą a
domyślny zestaw narzędzi dla bieżącej platformy.

Na platformach posix i cygwin narzędzia GNU (np. gcc) są preferowane przez SCons, w systemie Windows
narzędzia Microsoft (np. msvc), po których następuje MinGW, są preferowane przez SCons, a w OS/2
Narzędzia IBM (np. icc) są preferowane przez SCons.

Budowniczy Metody
Reguły budowania są określane poprzez wywoływanie metod konstruktora środowiska konstrukcyjnego. The
argumentami metod konstruktora są cel (lista celów do zbudowania, zwykle plik
nazwiska) i źródło (lista źródeł do zbudowania, zazwyczaj nazwy plików).

Ponieważ długie listy nazw plików mogą prowadzić do częstego cytowania, szyderstwa dostarcza Podział()
globalną i metodę środowiskową o tej samej nazwie, która dzieli pojedynczy ciąg znaków na a
lista, oddzielona ciągami białych znaków. (Są one podobne do split()
funkcja członkowska ciągów Pythona, ale działa nawet jeśli dane wejściowe nie są ciągiem.)

Podobnie jak wszystkie argumenty Pythona, argumenty docelowe i źródłowe metody konstruktora mogą być
określone ze słowami kluczowymi „target” i „source” lub bez nich. Kiedy słowa kluczowe są
pominięty, najpierw jest cel, a po nim źródło. Poniższe są równoważne
przykłady wywołania metody konstruktora programów:

env.Program('bar', ['bar.c', 'foo.c'])
env.Program('bar', Split('bar.c foo.c'))
env.Program('bar', env.Split('bar.c foo.c'))
env.Program(source = ['bar.c', 'foo.c'], target = 'bar')
env.Program(target = 'bar', Split('bar.c foo.c'))
env.Program(target = 'bar', env.Split('bar.c foo.c'))
env.Program('bar', source = 'bar.c foo.c'.split())

Nazwy plików docelowych i źródłowych, które nie są bezwzględnymi nazwami ścieżek (tzn. nie zaczynają się od
/ w systemach POSIX lub \fR on Windows systemy, w or bez an fakultatywny napęd list)
jest interpretować względny do dotychczasowy katalog zawierające dotychczasowy S Poborowy odczytywany plik. Jakiś
początkowy # (hash) w nazwie ścieżki oznacza, że ​​interpretowana jest pozostała część nazwy pliku
względem katalogu zawierającego najwyższy poziom SCkonstrukcja plik, nawet jeśli # is
po którym następuje znak separatora katalogu (ukośnik lub ukośnik odwrotny).

Przykłady:

# Komentarze opisujące cele, które zostaną zbudowane
# załóż, że te wywołania znajdują się w pliku SConscript w formacie
# podkatalog o nazwie „subdir”.

# Tworzy program „subdir/foo” z „subdir/foo.c”:
env.Program('foo', 'foo.c')

# Tworzy program „/tmp/bar” z „subdir/bar.c”:
env.Program('/tmp/bar', 'bar.c')

# Początkowe „#” lub „#/” są równoważne; następujące
# wywołania budują programy „foo” i „bar” (w pliku
# katalog SConstruct najwyższego poziomu) z „subdir/foo.c” i
# „subdir/bar.c” odpowiednio:
env.Program('#foo', 'foo.c')
env.Program('#/bar', 'bar.c')

# Kompiluje program „other/foo” (względem pliku najwyższego poziomu
# Katalog SConstruct) z „subdir/foo.c”:
env.Program('#other/foo', 'foo.c')

Kiedy obiekt docelowy ma tę samą nazwę podstawową co źródło i różni się tylko przyrostkiem oraz if
metoda konstruktora ma przyrostek zdefiniowany dla docelowego typu pliku, a następnie argument docelowy
można całkowicie pominąć, oraz szyderstwa wydedukuje nazwę pliku docelowego z pliku źródłowego
nazwa. Wszystkie poniższe przykłady budują program wykonywalny bar (w systemach POSIX) lub
bar.exe (w systemach Windows) z pliku źródłowego bar.c:

env.Program(target = 'bar', source = 'bar.c')
env.Program('bar', source = 'bar.c')
env.Program(źródło = 'bar.c')
env.Program('bar.c')

Dla wygody A katalog src Argument słowa kluczowego można określić podczas wywoływania konstruktora. Gdy
określony, wszystkie ciągi plików źródłowych, które nie są ścieżkami bezwzględnymi, zostaną zinterpretowane
względem podanego katalog src. Poniższy przykład zbuduje kompilacja/programowanie (lub
build/prog.exe w systemie Windows) programu z plików src/f1.c i src/f2.c:

env.Program('kompilacja/prog', ['f1.c', 'f2.c'], srcdir='src')

Możliwe jest przesłonięcie lub dodanie zmiennych konstrukcyjnych podczas wywoływania metody konstruktora przez
przekazywanie dodatkowych argumentów słów kluczowych. Te zastąpione lub dodane zmienne będą dostępne tylko w
efekt podczas budowania celu, więc nie będą miały wpływu na inne części konstrukcji. Dla
na przykład, jeśli chcesz dodać dodatkowe biblioteki tylko dla jednego programu:

env.Program('witaj', 'witaj.c', LIBS=['gl', 'nadmiar'])

lub wygeneruj bibliotekę współdzieloną z niestandardowym przyrostkiem:

env.SharedLibrary('słowo', 'słowo.cpp',
SHLIBSUFFIX='.ocx',
LIBSUFFIXES=['.ocx'])

(Zauważ, że obie zmienne $SHLIBSUFFIX i $LIBSUFFIXES muszą być ustawione, jeśli chcesz, aby SCons
automatyczne wyszukiwanie zależności od niestandardowych nazw bibliotek; zobacz
opisy tych zmiennych poniżej, aby uzyskać więcej informacji.)

Możliwe jest również użycie parse_flags argument słowa kluczowego w zastąpieniu:

env = Program('hello', 'hello.c', parse_flags = '-Iinclude -DEBUG -lm')

W tym przykładzie dodano „include”. ŚCIEŻKA CPP, „EBUG” do CPDDEFINIUJEi „m” do LIBY.

Chociaż metody konstruktora zdefiniowane przez szyderstwa są w istocie metodami konstrukcji
środowiska, można je również wywołać bez wyraźnego środowiska:

Program('cześć', 'witaj.c')
SharedLibrary('słowo', 'słowo.cpp')

W takim przypadku metody są wywoływane wewnętrznie przy użyciu domyślnego środowiska konstrukcyjnego
który składa się z narzędzi i wartości, które szyderstwa określił, że są odpowiednie dla
system lokalny.

Metody konstruktora, które można wywołać bez jawnego środowiska, można wywołać z
niestandardowe moduły Pythona, które importujesz do pliku SConscript, dodając następujące elementy
moduł Pythona:

z importu SCons.Script *

Wszystkie metody konstruktora zwracają obiekt przypominający listę zawierający węzły reprezentujące cel
lub cele, które zostaną zbudowane. A Node jest wewnętrznym obiektem SCons, który reprezentuje kompilację
cele lub źródła.

Zwrócony obiekt listy węzłów można przekazać do innych metod konstruktora jako źródła lub
przekazywana do dowolnej funkcji lub metody SCons, w której normalnie akceptowana byłaby nazwa pliku. Dla
przykładowo, gdyby zaszła konieczność dodania konkretnego -D flag podczas kompilacji jednego konkretnego obiektu
file:

bar_obj_list = env.StaticObject('bar.c', CPDEFINES='-DBAR')
env.Program(source = ['foo.c', bar_obj_list, 'main.c'])

Użycie węzła w ten sposób zapewnia bardziej przenośną kompilację, ponieważ pozwala uniknąć konieczności określania pliku
przyrostek obiektu specyficzny dla platformy podczas wywoływania metody konstruktora Program().

Należy pamiętać, że wywołania programu Builder automatycznie „spłaszczą” listę plików źródłowych i docelowych, tzw
nie ma nic złego w tym, że lista bar_obj zwracana jest przez wywołanie StaticObject() w środku
listę plików źródłowych. Jeśli chcesz manipulować listą list zwróconych przez Builders
bezpośrednio używając Pythona, możesz albo zbudować listę ręcznie:

foo = Obiekt('foo.c')
bar = Obiekt('bar.c')
obiekty = ['begin.o'] + foo + ['middle.o'] + bar + ['end.o']
dla obiektu w obiektach:
drukuj str(obiekt)

Lub możesz użyć Spłaszczyć() funkcja dostarczana przez scons, aby utworzyć listę zawierającą just
węzły, co może być wygodniejsze:

foo = Obiekt('foo.c')
bar = Obiekt('bar.c')
obiekty = Spłaszcz(['begin.o', foo, 'middle.o', bar, 'end.o'])
dla obiektu w obiektach:
drukuj str(obiekt)

Zauważ też, że ponieważ wywołania Buildera zwracają obiekt przypominający listę, a nie rzeczywistą listę Pythona,
powinieneś nie użyj Pythona += operator dołączający wyniki programu Builder do listy w języku Python.
Ponieważ lista i obiekt są różnymi typami, Python nie zaktualizuje oryginału
list na miejscu, ale zamiast tego utworzy nowy obiekt listy węzłów zawierający konkatenację
elementów listy i wyników Konstruktora. Będzie to powodować problemy dla każdego innego
Zmienne Pythona w konfiguracji SCons, które nadal przechowują odniesienie do
oryginalna lista. Zamiast tego użyj Pythona .rozszerzyć() metoda, aby upewnić się, że lista jest aktualizowana
w miejscu. Przykład:

pliki_obiektowe = []

# NIE używaj += w następujący sposób:
#
# pliki_obiektowe += Obiekt('bar.c')
#
# Nie zaktualizuje na miejscu listy plików_obiektowych.
#
# Zamiast tego użyj metody .extend():
object_files.extend(Object('bar.c'))

Nazwy ścieżki pliku węzła można użyć, przekazując węzeł do wbudowanego modułu Python
str () funkcjonować:

bar_obj_list = env.StaticObject('bar.c', CPDEFINES='-DBAR')
print "Ścieżka do bar_obj to:", str(bar_obj_list[0])

Zauważ jeszcze raz, że ponieważ wywołanie Builder zwraca listę, musimy uzyskać dostęp do pierwszej
element na liście (bar_obj_list[0]) aby dostać się do węzła, który faktycznie reprezentuje
plik obiektu.

Konstruktor wzywa wsparcie a chdir argument słowa kluczowego, który określa, że ​​akcja(e) Konstruktora
należy wykonać po zmianie katalogu. Jeśli chdir argumentem jest ciąg znaków lub a
Directory Node, scons przejdzie do określonego katalogu. Jeśli chdir nie jest ciągiem
lub Node i jest różna od zera, wówczas scons przejdzie do katalogu pliku docelowego.

# scons zostanie zmieniony na podkatalog „sub”.
# przed wykonaniem polecenia „cp”.
env.Command('sub/dir/foo.out', 'sub/dir/foo.in',
"cp katalog/foo.in katalog/foo.out",
chdir='sub')

# Ponieważ chdir nie jest ciągiem znaków, scons zmieni się na
# katalog docelowy („sub/dir”) przed wykonaniem
# Polecenie „cp”.
env.Command('sub/dir/foo.out', 'sub/dir/foo.in',
"cp foo.in foo.out",
chdir=1)

Pamiętaj, że sknery to zrobią nie automatycznie modyfikuje swoje rozwinięcie zmiennych konstrukcyjnych, takich jak
$CEL i $ŹRÓDŁO podczas używania argumentu słowa kluczowego chdir — czyli rozwiniętego pliku
nazwy będą nadal odnosić się do katalogu SConstruct najwyższego poziomu, a co za tym idzie
niepoprawny w stosunku do katalogu chdir. Jeśli użyjesz argumentu słowa kluczowego chdir, tak się stanie
zazwyczaj trzeba podać inny wiersz poleceń za pomocą rozszerzeń takich jak ${TARGET.plik} i
${ŹRÓDŁO.plik} aby użyć tylko części docelowej i źródłowej zawierającej nazwę pliku.

szyderstwa udostępnia następujące metody konstruktora:

Plik CF(), środowisko.CFile()
Tworzy plik źródłowy C z plikiem wejściowym Lex (.l) lub yacc (.y). Określony przyrostek
przez $CFILESUFIKS zmienna konstrukcyjna (domyślnie .c) jest dodawana automatycznie
celu, jeśli jeszcze go nie ma. Przykład:

# buduje foo.c
env.CFile(target = 'foo.c', źródło = 'foo.l')
# buduje bar.c
env.CFile(target = 'bar', source = 'bar.y')

Komenda(), środowisko.Polecenie()
Kurs Command „Builder” jest w rzeczywistości zaimplementowany jako funkcja wyglądająca jak Builder,
ale w rzeczywistości pobiera dodatkowy argument akcji, z której powinien skorzystać Konstruktor
być zrobione. Zobacz Command opis funkcji dotyczący składni i szczegółów wywoływania.

Plik CXX(), środowisko.CXXFile()
Tworzy plik źródłowy C++ na podstawie pliku wejściowego Lex (.ll) lub yacc (.yy). Sufiks
określone przez $CXXFILESUFIKS zmienna konstrukcyjna (domyślnie .cc) to
automatycznie dodany do celu, jeśli jeszcze go nie ma. Przykład:

# buduje foo.cc
env.CXXFile(target = 'foo.cc', źródło = 'foo.ll')
# buduje bar.cc
env.CXXFile(target = 'bar', source = 'bar.yy')

DokumentacjaEpub(), env.DocbookEpub()
Pseudo-Builder udostępniający zestaw narzędzi Docbook dla danych wyjściowych EPUB.

env = Środowisko(tools=['docbook'])
env.DocbookEpub('manual.epub', 'manual.xml')

lub po prostu

env = Środowisko(tools=['docbook'])
env.DocbookEpub('podręcznik')

DokumentDocbookHtml(), env.DocbookHtml()
Pseudo-Builder udostępniający zestaw narzędzi Docbook dla danych wyjściowych HTML.

env = Środowisko(tools=['docbook'])
env.DocbookHtml('manual.html', 'manual.xml')

lub po prostu

env = Środowisko(tools=['docbook'])
env.DocbookHtml('podręcznik')

DocbookHtmlChunked(), env.DocbookHtmlChunked()
Pseudo-Builder udostępniający zestaw narzędzi Docbook dla fragmentarycznych wyników HTML. To wspiera
parametr base.dir. Plik chunkfast.xsl (wymaga „EXSLT”) jest używany jako plik
domyślny arkusz stylów. Podstawowa składnia:

env = Środowisko(tools=['docbook'])
env.DocbookHtmlChunked('podręcznik')

gdzie manual.xml jest plikiem wejściowym.

Jeśli używasz parametru root.filename we własnych arkuszach stylów, musisz określić
nowa nazwa celu. Zapewnia to poprawność zależności, szczególnie w przypadku
czyszczenie za pomocą „scons -c”:

env = Środowisko(tools=['docbook'])
env.DocbookHtmlChunked('mymanual.html', 'manual', xsl='htmlchunk.xsl')

Zapewniona jest podstawowa obsługa pliku base.dir. Możesz dodać słowo kluczowe base_dir do
wywołanie Buildera, a podany przedrostek zostanie dodany do wszystkich utworzonych nazw plików:

env = Środowisko(tools=['docbook'])
env.DocbookHtmlChunked('manual', xsl='htmlchunk.xsl', base_dir='output/')

Upewnij się, że nie zapomniałeś końcowego ukośnika folderu podstawowego, w przeciwnym razie plik
tylko nazwy plików zostaną zmienione!

DocbookHtmlhelp(), env.DocbookHtmlhelp()
Pseudo-Builder udostępniający zestaw narzędzi Docbook dla danych wyjściowych HTMLHELP. Jego podstawowa składnia
jest:

env = Środowisko(tools=['docbook'])
env.DocbookHtmlhelp('podręcznik')

gdzie manual.xml jest plikiem wejściowym.

Jeśli używasz parametru root.filename we własnych arkuszach stylów, musisz określić
nowa nazwa celu. Zapewnia to poprawność zależności, szczególnie w przypadku
czyszczenie za pomocą „scons -c”:

env = Środowisko(tools=['docbook'])
env.DocbookHtmlhelp('mymanual.html', 'manual', xsl='htmlhelp.xsl')

Dostępna jest podstawowa obsługa parametru base.dir. Możesz dodać katalog_bazowy
słowo kluczowe do wywołania Buildera, a podany przedrostek zostanie dodany do wszystkich utworzonych elementów
nazwy plików:

env = Środowisko(tools=['docbook'])
env.DocbookHtmlhelp('manual', xsl='htmlhelp.xsl', base_dir='output/')

Upewnij się, że nie zapomniałeś końcowego ukośnika folderu podstawowego, w przeciwnym razie plik
tylko nazwy plików zostaną zmienione!

DocbookMan(), env.DocbookMan()
Pseudo-Builder udostępniający zestaw narzędzi Docbook dla wyników strony Man. Jego podstawowa składnia
jest:

env = Środowisko(tools=['docbook'])
env.DocbookMan('podręcznik')

gdzie manual.xml jest plikiem wejściowym. Pamiętaj, że możesz określić nazwę docelową, ale plik
rzeczywiste nazwy wyników są automatycznie ustawiane na podstawie wpisów refname w źródle XML.

Dokument PDF(), env.DocbookPdf()
Pseudo-Builder udostępniający zestaw narzędzi Docbook do tworzenia plików PDF.

env = Środowisko(tools=['docbook'])
env.DocbookPdf('manual.pdf', 'manual.xml')

lub po prostu

env = Środowisko(tools=['docbook'])
env.DocbookPdf('podręcznik')

DokumentDocbookSlidesHtml(), env.DocbookSlidesHtml()
Pseudo-Builder udostępniający zestaw narzędzi Docbook do tworzenia slajdów HTML.

env = Środowisko(tools=['docbook'])
env.DocbookSlidesHtml('podręcznik')

Jeśli używasz parametru titlefoil.html we własnych arkuszach stylów, musisz podać parametr
nowa nazwa celu. Zapewnia to poprawność zależności, szczególnie w przypadku
czyszczenie za pomocą „scons -c”:

env = Środowisko(tools=['docbook'])
env.DocbookSlidesHtml('mymanual.html','manual', xsl='slideshtml.xsl')

Dostępna jest podstawowa obsługa parametru base.dir. Możesz dodać katalog_bazowy
słowo kluczowe do wywołania Buildera, a podany przedrostek zostanie dodany do wszystkich utworzonych elementów
nazwy plików:

env = Środowisko(tools=['docbook'])
env.DocbookSlidesHtml('manual', xsl='slideshtml.xsl', base_dir='output/')

Upewnij się, że nie zapomniałeś końcowego ukośnika folderu podstawowego, w przeciwnym razie plik
tylko nazwy plików zostaną zmienione!

DokumentDocbookSlidesPdf(), env.DocbookSlidesPdf()
Pseudo-Builder udostępniający zestaw narzędzi Docbook do tworzenia slajdów w formacie PDF.

env = Środowisko(tools=['docbook'])
env.DocbookSlidesPdf('manual.pdf', 'manual.xml')

lub po prostu

env = Środowisko(tools=['docbook'])
env.DocbookSlidesPdf('podręcznik')

DokumentXInclude(), env.DocbookXInclude()
Pseudokonstruktor do rozwiązywania XIncludes w oddzielnym etapie przetwarzania.

env = Środowisko(tools=['docbook'])
env.DocbookXInclude('manual_xincluded.xml', 'manual.xml')

DokumentXslt(), env.DocbookXslt()
Pseudo-Builder stosujący daną transformację XSL do pliku wejściowego.

env = Środowisko(tools=['docbook'])
env.DocbookXslt('manual_transformed.xml', 'manual.xml', xsl='transform.xslt')

Należy pamiętać, że ten konstruktor wymaga ustawienia parametru xsl.

DVI(), środowisko.DVI()
Tworzy plik .dvi z pliku wejściowego .tex, .ltx lub .latex. Jeśli plik źródłowy ma rozszerzenie
to .tex, scons sprawdzi zawartość pliku; jeśli ciąg \documentclass lub
\documentstyle, zakłada się, że plik jest plikiem LaTeX, a celem jest
zbudowany poprzez wywołanie metody $LATEXCOM wiersz poleceń; w przeciwnym razie $TEXCOM linia poleceń to
używany. Jeśli plik jest plikiem LaTeX, plik DVI builder sprawdzi również plik
zawartość pliku .aux i wywołaj metodę $BIBTEX wiersz poleceń, jeśli ciąg bibdata to
znalezione, zacznij $MAKEINDEX aby wygenerować indeks, jeśli plik .ind zostanie znaleziony i zostanie sprawdzony
zawartość pliku .log i ponownie uruchom plik $LATEXCOM polecenie, jeśli plik dziennika tak twierdzi
niezbędny.

Przyrostek .dvi (zakodowany na stałe w samym TeX-ie) jest automatycznie dodawany do elementu docelowego if
już go nie ma. Przykłady:

# kompilacje z aaa.tex
env.DVI(target = 'aaa.dvi', źródło = 'aaa.tex')
# buduje bbb.dvi
env.DVI(target = 'bbb', źródło = 'bbb.ltx')
# kompilacje z ccc.latex
env.DVI(target = 'ccc.dvi', źródło = 'ccc.latex')

Gs(), środowisko.Gs()
Konstruktor do jawnego wywoływania pliku wykonywalnego gs. W zależności od bazowego systemu operacyjnego,
wypróbowywane są różne nazwy gs, gsos2 i gswin32c.

env = Środowisko(narzędzia=['gs'])
env.Gs('okładka.jpg','scons-scons.pdf',
GSFLAGS='-dNOPAUSE -dBATCH -sDEVICE=jpeg -dFirstPage=1 -dLastPage=1 -q')
)

Zainstalować(), środowisko.Install()
Instaluje jeden lub więcej plików lub katalogów źródłowych w określonym miejscu docelowym, co musi
być katalogiem. Nazwy określonych plików źródłowych lub katalogów pozostają takie same
w katalogu docelowym. Źródła mogą być podane jako ciąg znaków lub jako węzeł
zwrócony przez budowniczego.

środowisko.Instalacja('/ usr / local / bin', źródło = ['foo', 'pasek'])

Zainstaluj jako(), środowisko.InstallAs()
Instaluje jeden lub więcej plików źródłowych lub katalogów pod określonymi nazwami, umożliwiając ich zmianę
nazwę pliku lub katalogu w ramach instalacji. Błędem jest, jeśli cel i
argumenty źródłowe podają różną liczbę plików lub katalogów.

env.InstallAs(target = '/usr/local/bin/foo',
źródło = 'foo_debug')
env.InstallAs(target = ['../lib/libfoo.a', '../lib/libbar.a'],
źródło = ['libFOO.a', 'libBAR.a'])

ZainstalujwersjęLib(), env.InstallVersionedLib()
Instaluje wersjonowaną bibliotekę współdzieloną. Dowiązania symboliczne odpowiednie dla architektury będą
być generowane w oparciu o dowiązania symboliczne biblioteki źródłowej.

env.InstallVersionedLib(target = '/usr/local/bin/foo',
źródło = 'libxyz.1.5.2.so')

Słoik(), środowisko.Słoik()
Tworzy plik archiwum Java (.jar) na podstawie określonej listy źródeł. Dowolne katalogi
na liście źródeł zostaną przeszukane pliki .class). Wszelkie pliki .java w źródle
lista zostanie skompilowana do plików .class poprzez wywołanie metody Java Budowniczy.

Jeśli $JARCHDIR wartość jest ustawiona, polecenie jar przejdzie do określonego katalogu
używając -C opcja. Gdyby $JARCHDIR nie jest ustawione jawnie, SCons użyje góry dowolnego
drzewo podkatalogów, w którym zbudowane zostały klasy Java Java Budowniczy.

Jeśli zawartość któregokolwiek z plików źródłowych zaczyna się od ciągu znaków Wersja-Manifestu, plik
Zakłada się, że plik jest manifestem i jest przekazywany do polecenia jar z rozszerzeniem m opcja
ustawiony.

env.Jar(target = 'foo.jar', źródło = 'klasy')

env.Jar(target = 'bar.jar',
źródło = ['bar1.java', 'bar2.java'])

Jawa(), środowisko.Java()
Tworzy jeden lub więcej plików klas Java. Źródła mogą być dowolną kombinacją wyraźnych
pliki .java lub drzewa katalogów, które będą skanowane w poszukiwaniu plików .java.

SCons przeanalizuje każdy źródłowy plik .java, aby znaleźć klasy (w tym klasy wewnętrzne)
zdefiniowane w tym pliku i na tej podstawie znajdź docelowe pliki .class, które to zrobią
bądź kreatywny. Pliki klas zostaną umieszczone w określonym katalogu docelowym.

SCons przeszuka także każdy plik Java pod kątem nazwy pakietu Java, co zakłada, że ​​może
znaleźć się w linii zaczynającej się od pakietu string w pierwszej kolumnie; the
wynikowe pliki .class zostaną umieszczone w katalogu odpowiadającym określonemu pakietowi
nazwa. Na przykład plik Foo.java definiujący pojedynczą publiczną klasę Foo i zawierający
nazwa pakietu sub.dir wygeneruje odpowiedni plik klasy sub/dir/Foo.class.

Przykłady:

env.Java(target = „klasy”, źródło = „źródło”)
env.Java(target = 'classes', source = ['src1', 'src2'])
env.Java(target = 'klasy', źródło = ['Plik1.java', 'Plik2.java'])

Pliki źródłowe Java mogą korzystać z natywnego kodowania bazowego systemu operacyjnego. Od SCons
kompiluje się domyślnie w prostym trybie ASCII, kompilator wygeneruje ostrzeżenia dotyczące
znaków, których nie można przypisać, co może prowadzić do błędów podczas dalszego przetwarzania pliku. W
w tym przypadku użytkownik musi określić zmienną środowiskową LANG, aby poinformować o tym kompilator
jakie kodowanie jest używane. Ze względu na przenośność najlepiej jest, jeśli kodowanie jest zakodowane na stałe
że kompilacja będzie działać, jeśli zostanie wykonana w systemie z innym kodowaniem.

env = Środowisko()
env['ENV']['LANG'] = 'en_GB.UTF-8'

JavaH(), środowisko.JavaH()
Tworzy pliki nagłówkowe i źródłowe w języku C do implementowania natywnych metod Java. Cel może
może być albo katalogiem, w którym zostaną zapisane pliki nagłówkowe, albo nazwą pliku nagłówkowego
który będzie zawierał wszystkie definicje. Źródłem mogą być nazwy .class
plików, nazwy plików .java, które mają zostać skompilowane do plików .class poprzez wywołanie metody Java
builder lub obiekty zwrócone przez Java metoda budownicza.

Jeśli zmienna konstrukcyjna $JAVACCLASSDIR jest ustawiony albo w środowisku, albo w
zadzwonić do JavaH builder, wówczas wartość zmiennej będzie wynosić
usunięty z początku nazw plików .class.

Przykłady:

# buduje Java_native.h
klasy = env.Java(target = 'classdir', source = 'src')
env.JavaH(target = 'java_native.h', źródło = klasy)

# kompilacje obejmują/package_foo.h i include/package_bar.h
env.JavaH(target = 'include',
źródło = ['pakiet/foo.klasa', 'pakiet/bar.klasa'])

# buduje eksport/foo.h i eksport/bar.h
env.JavaH(target = 'eksport',
źródło = ['classes/foo.class', 'classes/bar.class'],
JAVCLASSDIR = „klasy”)

Biblioteka(), środowisko.Biblioteka()
Synonim dla Biblioteka statyczna metoda budownicza.

Moduł ładowalny(), środowisko.LoadableModule()
W większości systemów jest to to samo Biblioteka współdzielona. Na platformach Mac OS X (Darwin)
tworzy to ładowalny pakiet modułów.

M4(), środowisko M4()
Tworzy plik wyjściowy z pliku wejściowego M4. To używa wartości domyślnej $M4FLAG wartość -E,
który uważa wszystkie ostrzeżenia za śmiertelne i zatrzymuje się na pierwszym ostrzeżeniu podczas używania
Wersja GNU m4. Przykład:

env.M4(target = 'foo.c', źródło = 'foo.c.m4')

moc(), środowisko.Moc()
Tworzy plik wyjściowy z pliku wejściowego moc. Pliki wejściowe Moc są albo plikami nagłówkowymi
lub pliki cxx. Ten kreator jest dostępny tylko po użyciu narzędzia „qt”. Zobacz $QTDIR
zmienna, aby uzyskać więcej informacji. Przykład:

env.Moc('foo.h') # generuje moc_foo.cc
env.Moc('foo.cpp') # generuje foo.moc

Pliki MO(), środowisko.MOFiles()
Ten kreator należy do narzędzia msgfmt. Konstruktor kompiluje pliki PO do plików MO.

Przykład 1. Utwórz pl.mo i en.mo, kompilując pl.po i en.po:

#...
env.MOFiles(['pl', 'en'])

Przykład 2. Skompiluj pliki dla języków zdefiniowanych w pliku LINGUAS:

#...
env.MOFiles(LINGUAS_FILE = 1)

Przykład 3. Utwórz pl.mo i en.mo, kompilując pliki pl.po i en.po plus
języki zdefiniowane w pliku LINGUAS:

#...
env.MOFiles(['pl', 'en'], LINGUAS_FILE = 1)

Przykład 4. Skompiluj pliki dla języków zdefiniowanych w pliku LINGUAS (inna wersja):

#...
env['LINGUAS_FILE'] = 1
środowisko.MOFiles()

Projekt MSVS(), środowisko.MSVSProject()
Kompiluje plik projektu Microsoft Visual Studio i domyślnie tworzy plik rozwiązania
, jak również.

Spowoduje to utworzenie pliku projektu programu Visual Studio w oparciu o wersję programu Visual Studio, która
jest skonfigurowana (albo najnowsza zainstalowana wersja, albo wersja określona przez
$MSVS_VERSION w konstruktorze Environment). W przypadku Visual Studio 6 wygeneruje plik
plik .dsp. W przypadku programu Visual Studio 7 (.NET) i nowszych wersji wygeneruje plik .vcproj
plik.

Domyślnie generuje to również plik rozwiązania dla określonego projektu, plik .dsw
dla programu Visual Studio 6 lub plik .sln dla programu Visual Studio 7 (.NET). Takie zachowanie może być
wyłączone, podając auto_build_solution=0 podczas wywoływania Projekt MSVS, w którym to przypadku
prawdopodobnie chcesz zbudować plik(i) rozwiązania, wywołując metodę Rozwiązanie MSVSS Budowniczy
(Patrz niżej).

Kurs Projekt MSVS builder pobiera kilka list nazw plików, które mają zostać umieszczone w projekcie
plik. Są one obecnie ograniczone do srcs, incs, localincs, Resources i misc. Te
są dość oczywiste, ale należy zauważyć, że listy te są dodawane do
$ŹRÓDŁA zmienna konstrukcyjna jako ciąg znaków, NIE jako węzły pliku SCons. To dlatego, że
reprezentują nazwy plików, które mają zostać dodane do pliku projektu, a nie użyte pliki źródłowe
do zbudowania pliku projektu.

Wszystkie powyższe listy nazw plików są opcjonalne, chociaż należy określić co najmniej jedną
wynikowy plik projektu nie będzie pusty.

Oprócz powyższych list wartości można określić następujące wartości:

cel
Nazwa docelowego pliku .dsp lub .vcproj. Prawidłowy przyrostek dla wersji
Należy użyć programu Visual Studio, ale plik $MSVSPROJECTSUFFIX zmienna konstrukcyjna będzie
zostać zdefiniowana do prawidłowej wartości (patrz przykład poniżej).

wariant
Nazwa tego konkretnego wariantu. W przypadku projektów Visual Studio 7 może to również
będzie listą nazw wariantów. Są to zazwyczaj takie rzeczy, jak „Debugowanie” lub „Wydanie”,
ale tak naprawdę może być cokolwiek chcesz. W przypadku projektów Visual Studio 7 mogą również
określ platformę docelową oddzieloną od nazwy wariantu znakiem | (rura pionowa)
znak: Debuguj|Xbox. Domyślną platformą docelową jest Win32. Wiele połączeń do
Projekt MSVS z różnymi wariantami są dozwolone; wszystkie warianty zostaną dodane do
plik projektu z odpowiednimi celami kompilacji i źródłami.

cmdargs
Dodatkowe argumenty wiersza poleceń dla różnych wariantów. Liczba
wpisy cmdargs muszą odpowiadać liczbie wpisów wariantów lub być puste (nie
określony). Jeśli podasz tylko jeden, zostanie on automatycznie rozprzestrzeniony na wszystkich
warianty.

cel kompilacji
Opcjonalny ciąg, węzeł lub lista ciągów lub węzłów (jeden na wariant kompilacji), to
powiedz debugerowi Visual Studio, jakiego celu wyjściowego użyć w jakim wariancie kompilacji.
Liczba wpisów buildtarget musi odpowiadać liczbie wpisów wariantów.

plik uruchomieniowy
Nazwa pliku, który będzie uruchamiany i debugowany w programie Visual Studio 7 i nowszych wersjach. Ten
pojawia się jako wartość pola wyjściowego w wynikowym projekcie programu Visual Studio
plik. Jeżeli nie określono tej opcji, wartość domyślna jest taka sama jak określona
wartość docelowa kompilacji.

Należy pamiętać, że ponieważ SCons zawsze wykonuje swoje polecenia kompilacji z katalogu, w którym
znajduje się plik SConstruct, jeśli wygenerujesz plik projektu w innym
niż katalog SConstruct, użytkownicy nie będą mogli dwukrotnie kliknąć pliku
nazwa pliku w komunikatach o błędach kompilacji wyświetlanych w wynikach konsoli programu Visual Studio
okno. Można temu zaradzić, dodając opcję kompilatora Visual C/C++ /FC do pliku
$CCFLAG zmienną, aby kompilator wydrukował pełną nazwę ścieżki wszystkich plików, które
powodować błędy kompilacji.

Przykładowe użycie:

barrcs = ['bar.cpp'],
barincs = ['bar.h'],
barlocalincs = ['StdAfx.h']
barresources = ['bar.rc','resource.h']
barmisc = ['bar_readme.txt']

dll = env.SharedLibrary(target = 'bar.dll',
źródło = barrcs)

env.MSVSProject(target = 'Bar' + env['MSVSPROJECTSUFFIX'],
srcs = barrcs,
incs = barinc,
localincs = barlocalincs,
zasoby = zasoby barowe,
różne = barmisc,
buildtarget = dll,
wariant = „Wydanie”)

Począwszy od wersji 2.4 SCons możliwe jest również określenie opcjonalnego argumentu
Ustawienia debugowania, który tworzy pliki do debugowania w Visual Studio:

Ustawienia debugowania
Słownik ustawień debugowania zapisywanych w pliku .vcproj.user lub
plik .vcxproj.user, w zależności od zainstalowanej wersji. Podobnie jak w przypadku cmdargs
(patrz wyżej), możesz określić a Ustawienia debugowania słownik według wariantu. Jeśli dasz
tylko jeden, będzie propagowany do wszystkich wariantów.

Obecnie zaimplementowano tylko Visual Studio v9.0 i Visual Studio v11, np
inne wersje nie są generowane żadne pliki. Aby wygenerować plik użytkownika, wystarczy dodać plik
Ustawienia debugowania słownik do środowiska z odpowiednimi parametrami dla Twojego MSVS
wersja. Jeśli słownik jest pusty lub nie zawiera żadnej dobrej wartości, żaden plik nie będzie
być generowane.

Poniżej znajduje się bardziej wymyślony przykład, obejmujący konfigurację projektu dla wariantów
i ustawienia debugowania:

# Zakładając, że przechowujesz ustawienia domyślne w pliku
vars = Zmienne('zmienne.py')
msvcver = vars.args.get('vc', '9')

# Sprawdź argumenty poleceń, aby wymusić jedną wersję Microsoft Visual Studio
if msvcver == '9' lub msvcver == '11':
env = Środowisko(MSVC_VERSION=msvcver+'.0', MSVC_BATCH=False)
jeszcze:
env = Środowisko()

AddOption('--userfile', akcja='store_true', dest='userfile', default=False,
help="Utwórz plik użytkownika projektu Visual Studio")

#
# 1. Skonfiguruj słownik ustawień debugowania, dodając opcje, które chcesz umieścić na liście
Liczba dozwolonych opcji, na przykład jeśli chcesz utworzyć plik użytkownika do uruchomienia
# specjalna aplikacja do testowania biblioteki DLL za pomocą Microsoft Visual Studio 2008 (v9):
#
Ustawienia V9Debug = {
'Polecenie':'c:\\myapp\\ using\\thisdll.exe',
„Katalog roboczy”: „c:\\mojaaplikacja\\używanie\\”,
„Argumenty Polecenia”: „-p hasło”,
# „Dołącz”: „fałsz”,
# „Typ debugera”: „3”,
# „Zdalny”: „1”,
# „RemoteMachine”: Brak,
# „Zdalne polecenie”: Brak,
# 'HttpUrl': Brak,
# 'PDBPath': Brak,
# „Debugowanie SQL”: Brak,
# 'Środowisko': '',
# 'EnvironmentMerge':'true',
# „DebuggerFlavor”: Brak,
# 'MPIRunCommand': Brak,
# 'MPIRunArguments': Brak,
# 'MPIRunWorkingDirectory': Brak,
# „Polecenie aplikacji”: Brak,
# „Argumenty Aplikacji”: Brak,
# „Podkładka”: Brak,
# 'MPIAcceptMode': Brak,
# 'MPIAcceptFilter': Brak,
}

#
# 2. Ponieważ istnieje wiele różnych opcji w zależności od Microsoft
# Wersja Visual Studio, jeśli używasz więcej niż jednej wersji, musisz to zrobić
# zdefiniuj słownik dla każdej wersji, na przykład jeśli chcesz utworzyć użytkownika
#, aby uruchomić określoną aplikację do testowania biblioteki DLL w Microsoft
# Visual Studio 2012 (v11):
#
Ustawienia V10Debug = {
„LocalDebuggerCommand”: „c:\\myapp\\ using\\thisdll.exe”,
„LocalDebuggerWorkingDirectory”: „c:\\myapp\\ using\\”,
„LocalDebuggerCommandArguments”: „-p hasło”,
# „LocalDebuggerEnvironment”: Brak,
# 'DebuggerFlavor': 'WindowsLocalDebugger',
# „LocalDebuggerAttach”: Brak,
# „LocalDebuggerDebuggerType”: Brak,
# „LocalDebuggerMergeEnvironment”: Brak,
# „LocalDebuggerSQLDebugging”: Brak,
# „RemoteDebuggerCommand”: Brak,
# „RemoteDebuggerCommandArguments”: Brak,
# „RemoteDebuggerWorkingDirectory”: Brak,
# 'RemoteDebuggerServerName': Brak,
# „RemoteDebuggerConnection”: Brak,
# „RemoteDebuggerDebuggerType”: Brak,
# „RemoteDebuggerAttach”: Brak,
# „RemoteDebuggerSQLDebugging”: Brak,
# „Katalog wdrożenia”: Brak,
# „Dodatkowe pliki”: Brak,
# „RemoteDebuggerDeployDebugCppRuntime”: Brak,
# 'WebBrowserDebuggerHttpUrl': Brak,
# „WebBrowserDebuggerDebuggerType”: Brak,
# 'WebServiceDebuggerHttpUrl': Brak,
# „WebServiceDebuggerDebuggerType”: Brak,
# „WebServiceDebuggerSQLDebugging”: Brak,
}

#
# 3. Wybierz żądany słownik w zależności od wersji Visual Studio
# Pliki, które chcesz wygenerować.
#
jeśli nie env.GetOption('plik użytkownika'):
dbgSettings = Brak
elif env.get('MSVC_VERSION', Brak) == '9.0':
dbgSettings = V9DebugSettings
elif env.get('MSVC_VERSION', Brak) == '11.0':
dbgSettings = V10DebugSettings
jeszcze:
dbgSettings = Brak

#
# 4. Dodaj słownik do słowa kluczowego DebugSettings.
#
barsrcs = ['bar.cpp', 'dllmain.cpp', 'stdafx.cpp']
barincs = ['targetver.h']
barlocalincs = ['StdAfx.h']
barresources = ['bar.rc','resource.h']
barmisc = ['ReadMe.txt']

dll = env.SharedLibrary(target = 'bar.dll',
źródło = barrcs)

env.MSVSProject(target = 'Bar' + env['MSVSPROJECTSUFFIX'],
srcs = barrcs,
incs = barinc,
localincs = barlocalincs,
zasoby = zasoby barowe,
różne = barmisc,
buildtarget = [dll[0]] * 2,
wariant = („Debuguj|Win32”, „Wydanie|Win32”),
cmdargs = 'vc=%s' % msvcver,
Ustawienia debugowania = (dbgSettings, {}))

Rozwiązanie MSVSS(), środowisko.MSVSSolution()
Kompiluje plik rozwiązania Microsoft Visual Studio.

Spowoduje to utworzenie pliku rozwiązania programu Visual Studio w oparciu o wersję programu Visual Studio, która
jest skonfigurowana (albo najnowsza zainstalowana wersja, albo wersja określona przez
$MSVS_VERSION w środowisku budowlanym). W przypadku Visual Studio 6 zostanie wygenerowany
plik .dsw. W przypadku Visual Studio 7 (.NET) wygeneruje plik .sln.

Należy określić następujące wartości:

cel
Nazwa docelowego pliku .dsw lub .sln. Prawidłowy przyrostek dla wersji
Należy użyć programu Visual Studio, ale wartość SUFIKS $MSVSSOLUTION zostanie zdefiniowany
poprawną wartość (patrz przykład poniżej).

wariant
Nazwa tego konkretnego wariantu lub lista nazw wariantów (ta ostatnia to
obsługiwane tylko dla rozwiązań MSVS 7). Są to zazwyczaj rzeczy takie jak „Debugowanie” lub
„Release”, ale tak naprawdę może to być cokolwiek chcesz. W przypadku MSVS 7 mogą również określić
platformę docelową, na przykład „Debuguj | Xbox”. Domyślna platforma to Win32.

projektowanie
Lista nazw plików projektu lub węzłów projektu zwróconych przez wywołania metody
Projekt MSVS Builder, który należy umieścić w pliku rozwiązania. Należy zauważyć że
te nazwy plików NIE są dodawane do zmiennej środowiskowej $SOURCES w formie
pliki, ale raczej jako ciągi znaków. Dzieje się tak, ponieważ reprezentują one nazwy plików
dodane do pliku rozwiązania, a nie pliki źródłowe użyte do zbudowania pliku rozwiązania.

Przykładowe użycie:

env.MSVSSolution(target = 'Bar' + env['MSVSSOLUTIONSUFFIX'], projekty = ['bar'
+ env['MSVSPROJECTSUFFIX']], wariant = 'Wydanie')

Obiekt(), środowisko.Obiekt()
Synonim dla Obiekt statyczny metoda budownicza.

Pakiet(), środowisko.Pakiet()
Tworzy pakiet binarny z podanych plików źródłowych.

env.Package(źródło = FindInstalledFiles())

Tworzy pakiety dystrybucyjne oprogramowania. Pakiety składają się z plików do zainstalowania i
informacje o opakowaniu. Ten pierwszy można określić za pomocą źródło parametr i może
zostać pominięty, w takim przypadku Znajdź zainstalowane pliki funkcja zbierze wszystkie pliki, które
mają Zainstalować or Zainstaluj jako Konstruktor w załączeniu. Jeśli cel nie jest określone, że tak będzie
można wywnioskować z dodatkowych informacji przekazanych Konstruktorowi.

Informacje o opakowaniu są określone za pomocą zmiennych konstrukcyjnych
udokumentowane poniżej. Informacje te nazywane są znacznikami, aby podkreślić, że niektóre z nich mogą
być również dołączone do plików z rozszerzeniem etykieta funkcjonować. Obowiązkowi będą narzekać, jeśli
nie zostały one określone. Różnią się one w zależności od wybranego docelowego pakowacza.

Docelowy program pakujący można wybrać za pomocą opcji wiersza poleceń „PACKAGETYPE” lub za pomocą
dotychczasowy $TYP PAKIETU zmienna konstrukcyjna. Obecnie dostępne są następujące programy pakujące:

* msi - Instalator Microsoft * obr./min - Menedżer pakietów Redhat * ipkg - Pakiet Ity
System zarządzania * tarbz2 - skompresowany tar * targz - skompresowany tar * zip - plik zip
* src_tarbz2 – skompresowane źródło tar * src_targz – skompresowane źródło tar * src_zip –
źródło pliku zip

Zaktualizowana lista jest zawsze dostępna podczas działania w opcji „typ_pakietu”.
„scons --help” w projekcie, w którym aktywowano pakiety.

env = Środowisko(tools=['domyślne', 'opakowanie'])
środowisko.Instalacja('/ bin /', 'mój_program')
env.Package( NAZWA = 'foo',
WERSJA = '1.2.3',
WERSJA PAKIETU = 0,
TYP OPAKOWANIA = 'rpm',
LICENCJA = 'gpl',
PODSUMOWANIE = 'balalalalal',
DESCRIPTION = 'to powinno być naprawdę, naprawdę długie',
X_RPM_GROUP = 'Aplikacja/fu',
ŹRÓDŁO_URL = 'http://foo.org/foo-1.2.3.tar.gz'
)

PCH(), środowisko.PCH()
Tworzy prekompilowany nagłówek Microsoft Visual C++. Wywołanie tej metody konstruktora zwraca
lista dwóch celów: PCH jako pierwszy element i plik obiektowy jako drugi
element. Zwykle plik obiektowy jest ignorowany. Ta metoda konstruktora jest dostępna tylko
gdy jako kompilator używany jest Microsoft Visual C++. Metoda konstruktora PCH to
zwykle używane w połączeniu ze zmienną konstrukcyjną PCH w celu wymuszenia plików obiektowych
aby użyć prekompilowanego nagłówka:

env['PCH'] = env.PCH('StdAfx.cpp')[0]

PDF(), koperta.PDF()
Tworzy plik .pdf z pliku wejściowego .dvi (lub, co za tym idzie, pliku .tex, .ltx lub .latex
plik wejściowy). Przyrostek określony przez $PDFSUFIKS zmienna konstrukcyjna (.pdf wg
default) jest dodawany automatycznie do celu, jeśli jeszcze go nie ma. Przykład:

# kompilacje z aaa.tex
env.PDF(target = 'aaa.pdf', źródło = 'aaa.tex')
# buduje bbb.pdf z bbb.dvi
env.PDF(target = 'bbb', źródło = 'bbb.dvi')

POInit(), środowisko.POInit()
Ten konstruktor należy do narzędzia msginit. Konstruktor inicjuje brakujące pliki PO if
$POAUTOINIT jest ustawiony. Jeśli $POAUTOINIT nie jest ustawiony (domyślnie), POInit drukuje instrukcję dot
użytkownika (czyli tłumacza), mówiącego jak powinien wyglądać plik PO
zainicjowany. W normalnych projektach ty powinien nie posługiwać się POInit i posługiwać się POAktualizacja zamiast.
POAktualizacja wybiera mądrze pomiędzy msgmerge(1) i msginit(1). POInit zawsze używa
msginit(1) i należy je uważać za budowniczego do celów specjalnych lub do użytku tymczasowego
(np. do szybkiej, jednorazowej inicjalizacji kilku plików PO) lub do testów.

Węzły docelowe zdefiniowane poprzez POInit nie są budowane domyślnie (są ignorowane z „.”
węzeł), ale są dodawane do specjalnego Aliasu (domyślnie „po-create”). Może to być pseudonim
zmienił się poprzez $POCREATE_ALIAS zmienna konstrukcyjna. Zdefiniowano wszystkie pliki PO
przez POInit można łatwo zainicjować przez szyderstwa po-tworzyć.

Przykład 1. Zainicjuj en.po i pl.po z Messages.pot:

#...
env.POInit(['en', 'pl']) # Messages.pot --> [en.po, pl.po]

Przykład 2. Zainicjuj en.po i pl.po z foo.pot:

#...
env.POInit(['en', 'pl'], ['foo']) # foo.pot --> [en.po, pl.po]

Przykład 3. Zainicjuj en.po i pl.po z foo.pot, ale używając $POTDOMAIN Budowa
zmienna:

#...
env.POInit(['en', 'pl'], POTDOMAIN='foo') # foo.pot --> [en.po, pl.po]

Przykład 4. Zainicjuj pliki PO dla języków zdefiniowanych w pliku LINGUAS. Pliki będą
zostać zainicjowane z szablonu Messages.pot:

#...
env.POInit(LINGUAS_FILE = 1) # wymaga pliku „LINGUAS”.

Przykład 5. Inicjuj pliki PO en.po i pl.pl oraz pliki dla języków zdefiniowanych w
plik LINGUAS. Pliki zostaną zainicjowane z szablonu Messages.pot:

#...
env.POInit(['en', 'pl'], LINGUAS_FILE = 1)

Przykład 6. Możesz najpierw wstępnie skonfigurować swoje środowisko, a następnie zainicjować pliki PO:

#...
env['POAUTOINIT'] = 1
env['LINGUAS_FILE'] = 1
env['POTDOMAIN'] = 'foo'
środowisko.POInit()

co ma taki sam skutek jak:

#...
env.POInit(POAUTOINIT = 1, LINGUAS_FILE = 1, POTDOMAIN = 'foo')

Postscriptum(), env.PostScript()
Tworzy plik .ps z pliku wejściowego .dvi (lub, co za tym idzie, pliku .tex, .ltx lub .latex
plik wejściowy). Przyrostek określony przez $PSSUFIKS zmienna konstrukcyjna (.ps by
default) jest dodawany automatycznie do celu, jeśli jeszcze go nie ma. Przykład:

# kompilacje z aaa.tex
env.PostScript(target = 'aaa.ps', źródło = 'aaa.tex')
# buduje bbb.ps z bbb.dvi
env.PostScript(target = 'bbb', źródło = 'bbb.dvi')

POTUaktualizacja(), środowisko.POTUpdate()
Kreator należy do narzędzia xgettext. Konstruktor aktualizuje docelowy plik POT, jeśli istnieje lub
tworzy taki, jeśli tak nie jest. Węzeł nie jest domyślnie budowany (tj. jest ignorowany
'.'), ale tylko na żądanie (tzn. gdy wymagany jest plik POT lub specjalny alias
jest wywoływany). Ten kreator dodaje swój węzeł docelowy (powiedzmy Messages.pot) do specjalnego aliasu
(domyślnie aktualizacja pot-up, patrz $POTUPDATE_ALIAS), dzięki czemu można je łatwo aktualizować/tworzyć
w szyderstwa aktualizacja garnka. Plik nie jest zapisywany, dopóki nie nastąpi żadna rzeczywista zmiana
umiędzynarodowione wiadomości (lub w komentarzach wprowadzanych do pliku POT).

Note
Możesz zobaczyć xgettekst(1) wywoływane przez narzędzie xgettext, nawet jeśli nie istnieje
rzeczywista zmiana w umiędzynarodowionych wiadomościach (więc plik POT nie jest aktualizowany).
Dzieje się tak za każdym razem, gdy zmieniany jest plik źródłowy. W takim wypadku wzywamy
xgettekst(1) i porównaj jego dane wyjściowe z zawartością pliku POT, aby zdecydować, czy
plik powinien zostać zaktualizowany, czy nie.

Przykład 1. Utwórzmy katalog po/ i umieśćmy w nim następujący skrypt SConstruct:

# SConstruct w podkatalogu 'po/'
env = Środowisko( narzędzia = ['domyślne', 'xgettext'] )
env.POTUpdate(['foo'], ['../a.cpp', '../b.cpp'])
env.POTUpdate(['bar'], ['../c.cpp', '../d.cpp'])

Następnie wywołaj scons kilka razy:

użytkownik@host:$ scons # Nie tworzy foo.pot ani bar.pot
użytkownik@host:$ scons foo.pot # Aktualizuje lub tworzy plik foo.pot
użytkownik@host:$ scons pot-update # Aktualizuje lub tworzy foo.pot i bar.pot
użytkownik@host:$ scons -c # Nie czyści foo.pot ani bar.pot.

wyniki będą takie, jak mówią powyższe komentarze.

Przykład 2. Kurs POTUaktualizacja builder może zostać użyty bez określonego celu – w takim przypadku
zostanie użyty domyślny docelowy Messages.pot. Domyślny cel można również zastąpić
ustawienie $POTDOMAIN zmienna konstrukcyjna lub podanie jej jako zastąpienia POTUaktualizacja
budowniczy:

# Skonstruuj skrypt
env = Środowisko( narzędzia = ['domyślne', 'xgettext'] )
env['POTDOMAIN'] = "foo"
env.POTUpdate(source = ["a.cpp", "b.cpp"]) # Tworzy foo.pot ...
env.POTUpdate(POTDOMAIN = "bar", source = ["c.cpp", "d.cpp"]) # i bar.pot

Przykład 3. Źródła mogą być określone na przykład w oddzielnym pliku
POTFILES.in:

# POTFILES.in w podkatalogu 'po/'
../a.cpp
../b.cpp
# koniec pliku

Nazwa pliku (POTFILES.in) zawierającego listę źródeł podawana jest poprzez
$XGETTEXTFROM:

# Plik SConstruct w podkatalogu 'po/'
env = Środowisko( narzędzia = ['domyślne', 'xgettext'] )
env.POTUpdate(XGETTEXTFROM = 'POTFILES.in')

Przykład 4. Możesz użyć $XGETTEXTPATH aby zdefiniować ścieżkę wyszukiwania źródła. Załóżmy, że
przykładowo, że masz pliki a.cpp, b.cpp, po/SConstruct, po/POTFILES.in. Wtedy twój
Pliki powiązane z POT mogą wyglądać jak poniżej:

# POTFILES.in w podkatalogu 'po/'
a.cpp
b.cpp
# koniec pliku

# Plik SConstruct w podkatalogu 'po/'
env = Środowisko( narzędzia = ['domyślne', 'xgettext'] )
env.POTUpdate(XGETTEXTFROM = 'POTFILES.in', XGETTEXTPATH='../')

Przykład 5. Na liście można zdefiniować wiele katalogów wyszukiwania, tj.
XGETTEXTPATH ​​= ['katalog1', 'katalog2', ...]. Kolejność na liście określa wyszukiwanie
kolejność plików źródłowych. Używana jest ścieżka do pierwszego znalezionego pliku.

Stwórzmy skrypt 0/1/po/SConstruct:

# Plik SConstruct w podkatalogu '0/1/po/'
env = Środowisko( narzędzia = ['domyślne', 'xgettext'] )
env.POTUpdate(XGETTEXTFROM = 'POTFILES.in', XGETTEXTPATH=['../', '../../'])

i 0/1/po/POTFILES.in:

# POTFILES.in w podkatalogu '0/1/po/'
a.cpp
# koniec pliku

Zapisz dwa pliki *.cpp, pierwszy to 0/a.cpp:

/* 0/a.cpp */
gettext("Witam z ../../a.cpp")

a drugi to 0/1/a.cpp:

/* 0/1/a.cpp */
gettext("Witam z ../a.cpp")

następnie uruchom scons. Otrzymasz 0/1/po/messages.pot z komunikatem „Witam z
../a.cpp”. Kiedy odwrócisz kolejność w $XGETTEXTFOM, tj. kiedy piszesz SConscript jako

# Plik SConstruct w podkatalogu '0/1/po/'
env = Środowisko( narzędzia = ['domyślne', 'xgettext'] )
env.POTUpdate(XGETTEXTFROM = 'POTFILES.in', XGETTEXTPATH=['../../', '../'])

wówczas plik Messages.pot będzie zawierał wiersz msgid „Hello from ../../a.cpp”, a nie msgid
„Witam z ../a.cpp”.

POAktualizacja(), środowisko.POUpdate()
Kreator należy do narzędzia msgmerge. Konstruktor aktualizuje pliki PO za pomocą msgmerge(1),
lub inicjuje brakujące pliki PO zgodnie z opisem w dokumentacji narzędzia msginit i
POInit budowniczy (zobacz także $POAUTOINIT). Uwaga, to POAktualizacja robi nie Dodaj jego cele do
po-tworzyć alias as POInit robi.

Węzły docelowe zdefiniowane poprzez POAktualizacja nie są budowane domyślnie (są ignorowane z
„.” węzeł). Zamiast tego są one automatycznie dodawane do specjalnego Aliasu („po-update” według
domyślny). Nazwę aliasu można zmienić poprzez opcję $POUPDATE_ALIAS Budowa
zmienny. Możesz łatwo zaktualizować pliki PO w swoim projekcie za pomocą szyderstwa po-aktualizacja.

Przykład 1. Zaktualizuj en.po i pl.po z szablonu Messages.pot (patrz także $POTDOMAIN),
zakładając, że ta późniejsza istnieje lub istnieje reguła jej zbudowania (por POTUaktualizacja):

#...
env.POUpdate(['en','pl']) # Messages.pot --> [en.po, pl.po]

Przykład 2. Zaktualizuj en.po i pl.po z szablonu foo.pot:

#...
env.POUpdate(['en', 'pl'], ['foo']) # foo.pot --> [en.po, pl.pl]

Przykład 3. Zaktualizuj en.po i pl.po z foo.pot (inna wersja):

#...
env.POUpdate(['en', 'pl'], POTDOMAIN='foo') # foo.pot -- > [en.po, pl.pl]

Przykład 4. Zaktualizuj pliki dla języków zdefiniowanych w pliku LINGUAS. Pliki zostały zaktualizowane
z szablonu Messages.pot:

#...
env.POUpdate(LINGUAS_FILE = 1) # wymaga pliku „LINGUAS”.

Przykład 5. To samo co powyżej, ale aktualizacja z szablonu foo.pot:

#...
env.POUpdate(LINGUAS_FILE = 1, źródło = ['foo'])

Przykład 6. Zaktualizuj pliki en.po i pl.po plus dla języków zdefiniowanych w pliku LINGUAS.
Pliki są aktualizowane z szablonu Messages.pot:

# wygeneruj 'en.po', 'pl.po' + pliki zdefiniowane w 'LINGUAS':
env.POUpdate(['en', 'pl' ], LINGUAS_FILE = 1)

Przykład 7. Zastosowanie $POAUTOINIT aby automatycznie zainicjować plik PO, jeśli nie istnieje:

#...
env.POUpdate(LINGUAS_FILE = 1, POAUTOINIT = 1)

Przykład 8. Zaktualizuj pliki PO dla języków zdefiniowanych w pliku LINGUAS. Pliki są
zaktualizowano z szablonu foo.pot. Wszystkie niezbędne ustawienia są wstępnie skonfigurowane za pośrednictwem
środowisko.

#...
env['POAUTOINIT'] = 1
env['LINGUAS_FILE'] = 1
env['POTDOMAIN'] = 'foo'
środowisko.POUpdate()

Program(), środowisko.Program()
Tworzy plik wykonywalny, biorąc pod uwagę jeden lub więcej plików obiektowych lub źródło C, C++, D lub Fortran
akta. Jeśli zostaną określone jakiekolwiek pliki źródłowe C, C++, D lub Fortran, zostaną one określone
automatycznie kompilowane do plików obiektowych przy użyciu przedmiot metoda konstruktora; zobaczyć, że
opis metody builder zawierający listę legalnych przyrostków plików źródłowych i ich opis
zinterpretowane. Przedrostek docelowego pliku wykonywalnego (określony przez rozszerzenie $PROGPREFIX
zmienna konstrukcyjna; domyślnie nic) i przyrostek (określony przez $PROGSUFIKS
zmienna konstrukcyjna; domyślnie .exe w systemach Windows, nic w systemach POSIX)
są automatycznie dodawane do celu, jeśli jeszcze ich nie ma. Przykład:

env.Program(target = 'foo', źródło = ['foo.o', 'bar.c', 'baz.f'])

OZE(), środowisko.RES()
Tworzy plik zasobów Microsoft Visual C++. Ta metoda konstruktora jest dostępna tylko wtedy, gdy
Jako kompilator używany jest Microsoft Visual C++ lub MinGW. Plik .res (lub .o dla
Do nazwy docelowej dodawany jest przyrostek MinGW), jeśli nie podano innego przyrostka. Plik źródłowy
jest skanowany pod kątem ukrytych zależności, tak jakby był plikiem C. Przykład:

środowisko.RES('zasób.rc')

RMIC(), środowisko.RMIC()
Tworzy pliki klas pośrednich i szkieletowych dla obiektów zdalnych z plików .class Java. The
target to katalog, w którym będą znajdować się pliki klas pośrednich i szkieletowych
pisemny. Źródłem mogą być nazwy plików .class lub obiekty zwracane z
Java metoda budownicza.

Jeśli zmienna konstrukcyjna $JAVACCLASSDIR jest ustawiony albo w środowisku, albo w
zadzwonić do RMIC builder, wówczas wartość zmiennej będzie wynosić
usunięty z początku nazw plików .class.

klasy = env.Java(target = 'classdir', source = 'src')
env.RMIC(target = 'outdir1', źródło = klasy)

env.RMIC(target = 'outdir2',
źródło = ['pakiet/foo.klasa', 'pakiet/bar.klasa'])

env.RMIC(target = 'outdir3',
źródło = ['classes/foo.class', 'classes/bar.class'],
JAVCLASSDIR = „klasy”)

Klient RPCGen(), środowisko.RPCGenClient()
Generuje plik pośredniczący klienta RPC (_clnt.c) z określonego pliku źródłowego RPC (.x).
Ponieważ rpcgen buduje pliki wyjściowe tylko w katalogu lokalnym, poleceniem będzie
domyślnie wykonywany w katalogu pliku źródłowego.

# Kompiluje src/rpcif_clnt.c
env.RPCGenClient('src/rpcif.x')

Nagłówek RPCGen(), env.RPCGenHeader()
Generuje plik nagłówkowy RPC (.h) z określonego pliku źródłowego RPC (.x). Ponieważ
rpcgen tworzy pliki wyjściowe tylko w katalogu lokalnym, polecenie zostanie wykonane
domyślnie w katalogu pliku źródłowego.

# Kompiluje src/rpcif.h
env.RPCGenHeader('src/rpcif.x')

Usługa RPCGen(), środowisko.RPCGenService()
Generuje plik szkieletu serwera RPC (_svc.c) z określonego pliku źródłowego RPC (.x).
Ponieważ rpcgen buduje pliki wyjściowe tylko w katalogu lokalnym, poleceniem będzie
domyślnie wykonywany w katalogu pliku źródłowego.

# Kompiluje src/rpcif_svc.c
env.RPCGenClient('src/rpcif.x')

RPCGenXDR(), środowisko.RPCGenXDR()
Generuje plik procedury RPC XDR (_xdr.c) z określonego pliku źródłowego RPC (.x).
Ponieważ rpcgen buduje pliki wyjściowe tylko w katalogu lokalnym, poleceniem będzie
domyślnie wykonywany w katalogu pliku źródłowego.

# Kompiluje src/rpcif_xdr.c
env.RPCGenClient('src/rpcif.x')

Biblioteka współdzielona(), środowisko.SharedLibrary()
Tworzy bibliotekę współdzieloną (.so w systemie POSIX, .dll w Windows) podając jedną lub więcej
pliki obiektowe lub pliki źródłowe C, C++, D lub Fortran. Jeśli zostaną podane jakieś pliki źródłowe, to
zostaną one automatycznie skompilowane do plików obiektowych. Przedrostek biblioteki statycznej i
przyrostek (jeśli istnieje) jest automatycznie dodawany do celu. Przedrostek docelowego pliku biblioteki
(określone przez $SHLIBPREFIX zmienna konstrukcyjna; domyślnie lib w POSIX
systemach, nic w systemach Windows) i przyrostek (określony przez $SHLIBSSUFIKS
zmienna konstrukcyjna; domyślnie .dll w systemach Windows, .so w systemach POSIX).
automatycznie dodany do celu, jeśli jeszcze go nie ma. Przykład:

env.SharedLibrary(target = 'bar', source = ['bar.c', 'foo.o'])

W systemach Windows plik Biblioteka współdzielona builder zawsze zbuduje import
(.lib) oprócz biblioteki współdzielonej (.dll), dodając bibliotekę .lib
tę samą nazwę bazową, jeśli nie ma już pliku .lib wyraźnie wymienionego w pliku
Cele.

W systemach Cygwin plik Biblioteka współdzielona builder zawsze zbuduje import
biblioteka (.dll.a) jako dodatek do biblioteki współdzielonej (.dll), dodanie biblioteki .dll.a
o tej samej nazwie bazowej, jeśli nie ma już pliku .dll.a wyraźnie wymienionego w
Cele.

Wszelkie pliki obiektowe wymienione w źródle muszą zostać zbudowane dla biblioteki współdzielonej (tzn
jest, używając Obiekt udostępniony metoda konstruktora). scons zgłosi błąd, jeśli taki wystąpi
niedopasowanie.

Na niektórych platformach istnieje rozróżnienie pomiędzy biblioteką współdzieloną (loaded
automatycznie przez system w celu rozpoznania odniesień zewnętrznych) i moduł do załadowania
(jawnie ładowane przez akcję użytkownika). Aby uzyskać maksymalną przenośność, użyj Ładowalny moduł
budowniczy tego ostatniego.

Podczas $SHLIBVERSION zdefiniowano zmienną konstrukcyjną, wersjonowaną bibliotekę współdzieloną
Utworzony. To modyfikuje $SHLINKFLAGS w razie potrzeby dodaje numer wersji do pliku
nazwę biblioteki i tworzy potrzebne dowiązania symboliczne.

env.SharedLibrary(target = 'bar', source = ['bar.c', 'foo.o'], SHLIBVERSION='1.5.2')

W systemie POSIX wersje z jednym tokenem tworzą dokładnie jedno dowiązanie symboliczne:
libbar.so.6 miałby dowiązania symboliczne tylko libbar.so. W systemie POSIX wersje z dwoma
lub więcej tokenów tworzy dokładnie dwa dowiązania symboliczne: libbar.so.2.3.1 będzie zawierało dowiązania symboliczne
libbar.so i libbar.so.2; w systemie Darwin (OSX) byłaby to biblioteka
libbar.2.3.1.dylib, a łącze będzie wyglądało na libbar.dylib.

W systemach Windows określenie rejestru=1 spowoduje zarejestrowanie pliku .dll później
jest zbudowany przy użyciu REGSVR32. Uruchomione polecenie (domyślnie „regsvr32”) to
zdeterminowany przez $REGSVR zmienna konstrukcyjna, a przekazywane flagi są określane przez
$REGSVRFLAGS. Domyślnie, $REGSVRFLAGS obejmuje /s opcję, aby zapobiec wyświetlaniu okien dialogowych
wyskakujące i wymagające uwagi użytkownika po uruchomieniu. Jeśli się zmienisz $REGSVRFLAGS, być
koniecznie uwzględnij /s opcja. Na przykład,

env.SharedLibrary(target = 'pasek',
źródło = ['bar.cxx', 'foo.obj'],
rejestr=1)

zarejestruje bar.dll jako obiekt COM po zakończeniu łączenia.

Wspólny obiekt(), środowisko.SharedObject()
Tworzy plik obiektowy do umieszczenia w bibliotece współdzielonej. Pliki źródłowe muszą mieć jeden z
ten sam zestaw rozszerzeń określony powyżej dla Obiekt statyczny metoda budownicza. NA
niektóre platformy budujące obiekt współdzielony wymagają dodatkowej opcji kompilatora (np.
-fPIC dla gcc) oprócz tych potrzebnych do zbudowania normalnego (statycznego) obiektu, ale dalej
na niektórych platformach nie ma różnicy między obiektem współdzielonym a normalnym (statycznym)
jeden. W przypadku różnicy SCons pozwoli na łączenie tylko obiektów współdzielonych
do biblioteki współdzielonej i będzie używać innego przyrostka dla obiektów współdzielonych. NA
platformy, na których nie ma różnicy, SCons umożliwi zarówno normalne (statyczne), jak i
obiekty współdzielone, które mają być połączone z biblioteką współdzieloną i będą używać tego samego przyrostka
obiekty współdzielone i normalne (statyczne). Przedrostek pliku obiektu docelowego (określony przez
$SHOBJPREFIX zmienna konstrukcyjna; domyślnie taki sam jak $OBJPREFIX) i przyrostek
(określone przez $SHOBJSUFIKS zmienna konstrukcyjna) są automatycznie dodawane do
cel, jeśli jeszcze go nie ma. Przykłady:

env.SharedObject(target = 'ddd', source = 'ddd.c')
env.SharedObject(target = 'eee.o', source = 'eee.cpp')
env.SharedObject(target = 'fff.obj', źródło = 'fff.for')

Należy pamiętać, że pliki źródłowe zostaną przeskanowane zgodnie z mapowaniami przyrostków w pliku
Obiekt SourceFileScanner. Więcej informacji można znaleźć w sekcji „Obiekty skanera” poniżej
informacje.

Biblioteka statyczna(), środowisko.StaticLibrary()
Tworzy bibliotekę statyczną, korzystając z jednego lub więcej plików obiektowych lub źródła C, C++, D lub Fortran
akta. Jeśli zostaną podane jakieś pliki źródłowe, zostaną one automatycznie skompilowane
pliki obiektowe. Przedrostek i przyrostek biblioteki statycznej (jeśli istnieje) są dodawane automatycznie
cel. Przedrostek docelowego pliku biblioteki (określony przez rozszerzenie $LIBPREFIX Budowa
zmienny; domyślnie lib w systemach POSIX, nic w systemach Windows) i przyrostek
(określone przez $LIBSUFIKS zmienna konstrukcyjna; domyślnie .lib w systemie Windows
systemy, .a w systemach POSIX) są automatycznie dodawane do celu, jeśli jeszcze tego nie zrobiono
obecny. Przykład:

env.StaticLibrary(target = 'bar', source = ['bar.c', 'foo.o'])

Wszelkie pliki obiektowe wymienione w źródle muszą zostać zbudowane dla biblioteki statycznej (tzn
jest, używając Obiekt statyczny metoda konstruktora). scons zgłosi błąd, jeśli taki wystąpi
niedopasowanie.

Obiekt statyczny(), środowisko.StatycznyObject()
Tworzy statyczny plik obiektowy z jednego lub większej liczby plików źródłowych C, C++, D lub Fortran.
Pliki źródłowe muszą mieć jedno z następujących rozszerzeń:

plik języka asemblera .asm
Plik języka asemblera .ASM
.c plik C
.C Windows: plik C
POSIX: plik C++
Plik .cc C++
Plik .cpp C++
Plik .cxx C++
Plik .cxx C++
.c++ Plik C++
Plik .C++ C++
plik .d D
plik .f Fortran
.F Windows: plik Fortran
POSIX: plik Fortran + preprocesor C
.dla pliku Fortran
.DLA pliku Fortran
Plik .fpp Fortran + preprocesor C
Plik .FPP Fortran + preprocesor C
.m plik obiektu C
.mm plik obiektu C++
.s plik języka asemblera
.S Windows: plik języka asemblera
ARM: CodeSourcery Sourcery Lite
.sx plik języka asemblera + preprocesor C
POSIX: plik języka asemblera + preprocesor C
.spp plik języka asemblera + preprocesor C
Plik języka asemblerowego .SPP + preprocesor C

Przedrostek pliku obiektu docelowego (określony przez $OBJPREFIX zmienna konstrukcyjna;
domyślnie nic) i przyrostek (określony przez $OBJSUFFIX zmienna konstrukcyjna;
.obj w systemach Windows, .o w systemach POSIX) są automatycznie dodawane do elementu docelowego if
nie jest już obecny. Przykłady:

env.StaticObject(target = 'aaa', source = 'aaa.c')
env.StaticObject(target = 'bbb.o', source = 'bbb.c++')
env.StaticObject(target = 'ccc.obj', źródło = 'ccc.f')

Należy pamiętać, że pliki źródłowe zostaną przeskanowane zgodnie z mapowaniami przyrostków w
Obiekt SourceFileScanner. Więcej informacji można znaleźć w sekcji „Obiekty skanera” poniżej
informacje.

Podplik(), env.Substfile()
Kurs Plik podrzędny builder tworzy pojedynczy plik tekstowy z innego pliku lub zestawu plików według
łącząc je z $LINESEPARATORA i zastępowanie tekstu za pomocą $SUBST_DICT
zmienna konstrukcyjna. Zagnieżdżone listy plików źródłowych są spłaszczane. Zobacz też Plik tekstowy.

Jeśli występuje pojedynczy plik źródłowy z przyrostkiem .in, przyrostek ten jest usuwany, a plik
pozostała część jest używana jako domyślna nazwa docelowa.

Przedrostek i przyrostek określony przez $SUBSTFILEPREFIX i $SUBSTFILESUFIKS
zmienne konstrukcyjne (domyślnie w obu przypadkach ciąg zerowy) są wykonywane automatycznie
dodane do celu, jeśli jeszcze ich nie ma.

Jeśli zmienna konstrukcyjna o nazwie $SUBST_DICT jest obecny, może to być Python
słownik lub sekwencja krotek (klucz, wartość). Jeśli jest to słownik, jest on konwertowany
na listę krotek w dowolnej kolejności, więc jeśli jeden klucz jest przedrostkiem innego klucza
lub jeśli jedno podstawienie mogłoby być dalej rozszerzone przez inne podstawienie, to tak
nie można przewidzieć, czy ekspansja nastąpi.

Wszelkie wystąpienia klucza w źródle są zastępowane odpowiednią wartością, która
może być funkcją wywoływalną w języku Python lub ciągiem znaków. Jeśli wartość jest możliwa do wywołania, tak jest
wywoływana bez argumentów, aby uzyskać ciąg znaków. Struny są rzeczownik-rozwinięte i wynik
zastępuje klucz.

env = Środowisko(narzędzia = ['domyślne', 'plik tekstowy'])

env['przedrostek'] = '/ usr / bin'
script_dict = {'@prefix@': '/kosz', @exec_prefix@: '$prefiks'}
env.Substfile('script.in', SUBST_DICT = script_dict)

conf_dict = {'%VERSION%': '1.2.3', '%BASE%': 'MójProg'}
env.Substfile('config.h.in', conf_dict, SUBST_DICT = conf_dict)

# NIEPRZEWIDYWALNY - jeden klucz jest przedrostkiem drugiego
bad_foo = {'$foo': '$foo', '$foobar': '$foobar'}
env.Substfile('foo.in', SUBST_DICT = bad_foo)

# PRZEWIDYWALNE - klucze są stosowane najdłużej
good_foo = [('$foobar', '$foobar'), ('$foo', '$foo')]
env.Substfile('foo.in', SUBST_DICT = good_foo)

# NIEPRZEWIDYWALNY - jedno podstawienie można jeszcze bardziej rozbudować
bad_bar = {'@bar@': '@soap@', '@soap@': 'ług'}
env.Substfile('bar.in', SUBST_DICT = zły_bar)

# PRZEWIDYWALNE - podstawienia są rozwijane w kolejności
dobry_bar = (('@bar@', '@mydło@'), ('@mydło@', 'ług'))
env.Substfile('bar.in', SUBST_DICT = dobry_bar)

# SUBST_DICT może być wspólny (a nie zastępowany)
podstawienia = {}
subst = Środowisko (narzędzia = ['plik tekstowy'], SUBST_DICT = podstawienia)
podstawienia['@foo@'] = 'foo'
subst['SUBST_DICT']['@bar@'] = 'pasek'
subst.Substfile('pgm1.c', [Wartość('#include "@[email chroniony]„”),
Wartość('#include "@[email chroniony]„”),
"powszechne w",
„pgm1.in”
])
subst.Substfile('pgm2.c', [Wartość('#include "@[email chroniony]„”),
Wartość('#include "@[email chroniony]„”),
"powszechne w",
„pgm2.in”
])

Smoła(), środowisko.Tar()
Tworzy archiwum tar określonych plików i/lub katalogów. W przeciwieństwie do większości konstruktorów
metody, Smoła metodę konstruktora można wywołać wielokrotnie dla danego celu; każdy
dodatkowe wywołanie dodaje do listy wpisów, które zostaną wbudowane w archiwum. Każdy
katalogi źródłowe zostaną przeskanowane w poszukiwaniu zmian w jakichkolwiek plikach na dysku, niezależnie od
czy scons wie o nich z innych wywołań Buildera lub funkcji.

env.Tar('src.tar', 'src')

# Utwórz plik stuff.tar.
env.Tar('rzeczy', ['podkatalog1', 'podkatalog2'])
# Dodaj także „kolejny” do pliku stuff.tar.
env.Tar('rzeczy', 'inne')

# Ustaw TARFLAGS, aby utworzyć archiwum filtrowane przez gzip.
env = Środowisko(TARFLAGS = '-c -z')
env.Tar('foo.tar.gz', 'foo')

# Ustaw także przyrostek na .tgz.
env = Środowisko(TARFLAGS = '-c -z',
TARSUFFIX = '.tgz')
środowisko.Tar('foo')

Plik tekstowy(), env.Plik tekstowy()
Kurs Plik tekstowy builder generuje pojedynczy plik tekstowy. Ciągi źródłowe stanowią
linie; zagnieżdżone listy źródeł są spłaszczane. $LINESEPARATORA służy do oddzielania
smyczki.

Jeśli jest obecny, $SUBST_DICT Zmienna konstrukcyjna służy do wcześniejszej modyfikacji ciągów
są napisane; zobacz Plik podrzędny opis szczegółów.

Przedrostek i przyrostek określony przez $TEXTFILEPREFIX i $TEXTFILESUFIKS
zmienne konstrukcyjne (domyślnie odpowiednio ciąg zerowy i .txt).
automatycznie dodawane do celu, jeśli jeszcze ich nie ma. Przykłady:

# buduje/zapisuje plik foo.txt
env.Textfile(target = 'foo.txt', źródło = ['Goethe', 42, 'Schiller'])

# buduje/zapisuje plik bar.txt
env.Textfile(target = 'pasek',
źródło = ['lalala', 'tanteratei'],
SEPARATOR LINI ='|*')

# zagnieżdżone listy są automatycznie spłaszczane
env.Textfile(target = 'blob',
źródło = ['lalala', ['Goethe', 42 'Schiller'], 'tanteratei'])

# plików można użyć jako danych wejściowych, zawijając je w File()
env.Textfile(target = 'concat', # łączy pliki ze znacznikiem pomiędzy nimi
źródło = [Plik('concat1'), Plik('concat2')],
ROZDZIELACZ LINI = '====================\n')

Wyniki to:
foo.txt
....8<----
Goethe
42
Schiller
....8<---- (bez przesuwu wiersza na końcu)

bar.txt:
....8<----
lalala|*przepraszam
....8<---- (bez przesuwu wiersza na końcu)

blob.txt
....8<----
lalala
Goethe
42
Schiller
tanteratei
....8<---- (bez przesuwu wiersza na końcu)

Tłumaczyć(), środowisko.Tłumacz()
Ten pseudokonstruktor należy do zestawu narzędzi gettext. Konstruktor wydobywa umiędzynarodowione
wiadomości z plików źródłowych, aktualizuje szablon POT (jeśli to konieczne), a następnie aktualizuje PO
tłumaczenia (w razie potrzeby). Jeśli $POAUTOINIT jest ustawiony, brakujące pliki PO zostaną uzupełnione
tworzone automatycznie (tzn. bez interwencji tłumacza). Zmienne
$LINGUAS_FILE i $POTDOMAIN też są brane pod uwagę. Cała inna konstrukcja
zmienne używane przez POTUaktualizacja, POAktualizacja też tu pracować.

Przykład 1. Najprostszym sposobem jest określenie plików wejściowych i języków wyjściowych bezpośrednio w pliku
Skrypt SCons podczas wywoływania Tłumacz

# SConscript w katalogu 'po/'
env = Środowisko( narzędzia = ["domyślne", "gettext"] )
env['POAUTOINIT'] = 1
env.Translate(['en','pl'], ['../a.cpp','../b.cpp'])

Przykład 2. Jeśli chcesz, możesz także pozostać przy konwencjonalnym stylu znanym z autotools,
tj. przy użyciu plików POTFILES.in i LINGUAS

# LINGUAS
en l.mn
#kończyć się

# POTFILES.in
a.cpp
b.cpp
# kończyć się

# S Poborowy
env = Środowisko( narzędzia = ["domyślne", "gettext"] )
env['POAUTOINIT'] = 1
env['XGETTEXTPATH'] = ['../']
env.Translate(LINGUAS_FILE = 1, XGETTEXTFROM = 'POTFILES.in')

To ostatnie podejście jest być może zalecane. Umożliwia łatwy podział
internacjonalizacja/lokalizacja na osobne skrypty SCons, gdzie skrypt jest w
drzewo źródeł odpowiada za tłumaczenia (ze źródeł do plików PO) i skrypty
pod katalogami wariantowymi są odpowiedzialne za kompilację plików PO do MO do i dla
instalacja plików MO. Zatem „czynnikiem klejącym” synchronizującym te dwa skrypty jest
zawartość pliku LINGUAS. Pamiętaj, że zaktualizowane pliki POT i PO zwykle są instalowane
mają zostać przekazane z powrotem do repozytorium, dlatego muszą zostać zaktualizowane w źródle
katalogu (a nie w katalogach wariantów). Dodatkowo lista plików po/
katalog zawiera plik LINGUAS, więc drzewo źródłowe wygląda znajomo tłumaczom, oraz
mogą pracować nad projektem w zwykły sposób.

Przykład 3. Przygotujmy drzewo rozwoju jak poniżej

projekt/
+ SKonstrukcja
+ kompilacja/
+ źródło/
+ po/
+ SC poborowy
+ SConscript.i18n
+ POTFILES.in
+ JĘZYKI

z buildem będącym katalogiem wariantowym. Napisz skrypt najwyższego poziomu SConstruct w następujący sposób

# SKonstrukcja
env = Środowisko( narzędzia = ["domyślne", "gettext"] )
VariantDir('kompilacja', 'src', duplikat = 0)
env['POAUTOINIT'] = 1
SConscript('src/po/SConscript.i18n', eksport = 'env')
SConscript('build/po/SConscript', eksport = 'env')

src/po/SConscript.i18n jako

# src/po/SConscript.i18n
Importuj('środowisko')
env.Translate(LINGUAS_FILE=1, XGETTEXTFROM='POTFILES.in', XGETTEXTPATH=['../'])

i src/po/SConscript

# src/po/SConscript
Importuj('środowisko')
env.MOFiles(LINGUAS_FILE = 1)

Taka konfiguracja tworzy pliki POT i PO w drzewie źródłowym w plikach src/po/ i binarnych MO
w drzewie wariantów w build/po/. W ten sposób pliki POT i PO są oddzielone
inne pliki wyjściowe, których nie wolno przesyłać z powrotem do repozytoriów źródłowych (np. MO
Pliki).

Note
W powyższym przykładzie pliki PO nie są aktualizowane ani tworzone automatycznie, gdy ty
problem szyderstwa '.' Komenda. Pliki należy zaktualizować (utworzyć) ręcznie za pomocą szyderstwa
po-aktualizacja a następnie pliki MO można skompilować, uruchamiając szyderstwa '.'.

TypBiblioteka(), środowisko.TypeLibrary()
Tworzy plik biblioteki typów systemu Windows (.tlb) z wejściowego pliku IDL (.idl). Ponadto,
zbuduje powiązane pliki źródłowe interfejsu i proxy, nadając im nazwy
zgodnie z podstawową nazwą pliku .idl. Na przykład,

env.TypeLibrary(source="foo.idl")

Utworzy pliki foo.tlb, foo.h, foo_i.c, foo_p.c i foo_data.c.

Uic(), środowisko.Uic()
Tworzy plik nagłówkowy, plik implementacyjny i plik moc z pliku interfejsu użytkownika. I
zwraca odpowiednie węzły w powyższej kolejności. Ten kreator jest dostępny tylko
po użyciu narzędzia „qt”. Uwaga: możesz określić pliki .ui bezpośrednio jako pliki źródłowe
dotychczasowy Program, Biblioteka i Biblioteka współdzielona builders bez użycia tego kreatora. Używając tego
builder pozwala zastąpić standardowe konwencje nazewnictwa (uważaj: przedrostki to
zawsze dodawany do nazw budowanych plików; jeśli nie chcesz prefiksów, możesz je ustawić
do ``). Zobacz $QTDIR zmienna, aby uzyskać więcej informacji. Przykład:

env.Uic('foo.ui') # -> ['foo.h', 'uic_foo.cc', 'moc_foo.cc']
env.Uic(target = Split('include/foo.h gen/uicfoo.cc gen/mocfoo.cc'),
źródło = 'foo.ui') # -> ['include/foo.h', 'gen/uicfoo.cc', 'gen/mocfoo.cc']

Zamek błyskawiczny(), środowisko.Zip()
Tworzy archiwum ZIP określonych plików i/lub katalogów. W przeciwieństwie do większości konstruktorów
metody, Zamek błyskawiczny metodę konstruktora można wywołać wielokrotnie dla danego celu; każdy
dodatkowe wywołanie dodaje do listy wpisów, które zostaną wbudowane w archiwum. Każdy
katalogi źródłowe zostaną przeskanowane w poszukiwaniu zmian w jakichkolwiek plikach na dysku, niezależnie od
czy scons wie o nich z innych wywołań Buildera lub funkcji.

env.Zip('src.zip', 'src')

# Utwórz plik stuff.zip.
env.Zip('rzeczy', ['podkatalog1', 'podkatalog2'])
# Dodaj także „kolejny” do pliku stuff.tar.
env.Zip('rzeczy', 'inny')

Wszystkie cele metod konstruktora automatycznie zależą od ich źródeł. Wyraźne
zależność można określić za pomocą Zależy metoda środowiska konstrukcyjnego (patrz
poniżej).

Dodatkowo, szyderstwa automatycznie skanuje pliki źródłowe pod kątem różnych języków programowania, tzw
zależności nie muszą być określone jawnie. Domyślnie SCons może używać źródła C
pliki, pliki źródłowe C++, pliki źródłowe Fortran z .F (tylko systemy POSIX), .fpp, or .FPP
rozszerzenia plików i pliki języka asemblera z .S (tylko systemy POSIX), .spp, or .SPP
rozszerzenia plików dla zależności preprocesora C. SCons ma również domyślną obsługę
skanowanie plików źródłowych D. Możesz także napisać własne skanery, aby dodać obsługę
dodatkowe typy plików źródłowych. Można je dodać do domyślnego obiektu skanera używanego przez
przedmiot() Obiekt statyczny(), oraz Obiekt udostępniony() Konstruktorzy, dodając je do
Skaner plików źródłowych obiekt. Aby uzyskać więcej informacji, zobacz sekcję „Obiekty skanera” poniżej
o definiowaniu własnych obiektów Scanner i korzystaniu z Skaner plików źródłowych obiekt.

Metody i Funkcje do Do Atrakcje
Oprócz metod Buildera, szyderstwa zapewnia szereg innych środowisk konstrukcyjnych
metody i funkcje globalne do manipulowania konfiguracją kompilacji.

Zwykle jest to metoda środowiska konstrukcyjnego i funkcja globalna o tej samej nazwie
istnieją, abyś nie musiał pamiętać, czy konkretny fragment funkcjonalności musi
wywoływać ze środowiskiem konstrukcyjnym lub bez niego. Na poniższej liście, jeśli zadzwonisz
coś jako funkcja globalna wygląda tak:

Funkcjonować(argumenty)

a jeśli wywołasz coś w środowisku konstrukcyjnym, wygląda to tak:

env.Funkcja(argumenty)

Jeśli możesz wywołać tę funkcjonalność na oba sposoby, wówczas na liście pojawią się oba formularze.

Funkcje globalne można wywoływać z niestandardowych modułów Pythona, które importujesz do pliku
SConscript, dodając do modułu Python:

z importu SCons.Script *

O ile nie zaznaczono inaczej, metoda środowiska konstrukcyjnego o tej samej nazwie i metoda globalna
zapewniają dokładnie tę samą funkcjonalność. Jedyna różnica polega na tym, gdzie
stosowne, wywołanie funkcjonalności poprzez środowisko konstrukcyjne zastąpi
zmienne konstrukcyjne na dowolne dostarczone ciągi znaków. Na przykład:

env = Środowisko(FOO = „foo”)
Domyślny('$FOO')
środowisko.Default('$FOO')

W powyższym przykładzie pierwsze wywołanie metody global Domyślny() funkcja faktycznie doda a
cel nazwany $FOO do listy domyślnych celów, podczas gdy drugie wywołanie metody
środowisko.Domyślne() Metoda środowiska konstrukcyjnego rozszerzy wartość i doda element docelowy o nazwie
bla do listy celów domyślnych. Więcej informacji na temat rozszerzania zmiennych konstrukcyjnych można znaleźć w artykule
następna sekcja poświęcona zmiennym konstrukcyjnym.

Metody środowiska konstrukcyjnego i funkcje globalne obsługiwane przez szyderstwa zawierać:

Akcja(akcja, [cmd/str/fun, [var, ...]] [opcja=wartość, ...]), env.Akcja(akcja,
[cmd/str/fun, [var, ...]] [opcja=wartość, ...])
Tworzy obiekt Action dla określonego akcja. Zobacz sekcję „Obiekty akcji”
poniżej, aby uzyskać pełne wyjaśnienie argumentów i zachowań.

Zauważ, że env.Akcja() forma wywołania rozwinie zmienne konstrukcyjne
w dowolnych ciągach argumentów, w tym akcja argument, w momencie, gdy jest on nazywany użyciem
zmienne konstrukcyjne w env środowisko budowlane, przez które
env.Akcja() został wezwany. The Działania() form opóźnia całą ekspansję zmiennych do momentu
Obiekt akcji jest rzeczywiście używany.

AddMethod(obiekt, funkcja, [nazwa]), env.AddMethod(funkcja, [nazwa])
Po wywołaniu z Dodaj metodę() formularz, dodaje określone funkcjonować na określony
przedmiot jako określona metoda Nazwa. Po wywołaniu za pomocą env.AddMethod() forma, dodaje
określony funkcjonować do środowiska budowlanego env jako określona metoda
Nazwa. W obu przypadkach, jeśli Nazwa zostanie pominięty lub Brak, nazwa określonego funkcjonować
sama jest używana jako nazwa metody.

Przykłady:

# Zauważ, że pierwszym argumentem funkcji jest
# być dołączone jako metoda musi być obiektem
# jaka metoda zostanie wywołana; Pythona
# konwencją jest nazywanie tego „ja”.
def moja_metoda(self, arg):
print „my_method() dostałem”, arg

# Użyj globalnej funkcji AddMethod(), aby dodać metodę
# do klasy Środowisko. Ten
AddMethod(Środowisko, moja_metoda)
env = Środowisko()
env.my_method('arg')

# Dodaj funkcję jako metodę, używając funkcji
# nazwa wywołania metody.
env = Środowisko()
env.AddMethod(moja_metoda, 'inna_nazwa_metody')
env.other_method_name('inny argument')

Dodaj opcję (argumenty)
Ta funkcja dodaje nową opcję wiersza poleceń, którą należy rozpoznać. Określony argumenty
są takie same, jak obsługiwane przez standardowy Python optparse.add_opcja() metoda (z a
kilka dodatkowych możliwości wymienionych poniżej); zobacz dokumentację optparse dla a
dokładne omówienie jego możliwości przetwarzania opcji.

Oprócz argumentów i wartości obsługiwanych przez optparse.add_opcja() metoda,
SCons Dodaj opcję funkcja pozwala ustawić wartość słowa kluczowego nars na '?' (A
ciąg znaków zawierający tylko znak zapytania), aby wskazać, że określone długie opcje
wziąć(a) fakultatywny argument. Kiedy nars = „?” zostaje przekazany do Dodaj opcję funkcjonować,
argument słowa kluczowego const może zostać użyty do podania wartości „domyślnej”, jaka powinna być
używane, gdy opcja jest podana w wierszu poleceń bez jawnego argumentu.

Jeśli podczas wywoływania nie podano argumentu słowa kluczowego default= Dodaj opcję, opcja będzie
mają domyślną wartość Brak.

Po dodaniu nowej opcji wiersza poleceń za pomocą Dodaj opcję, wartość opcji może wynosić
dostęp za pomocą Pobierz opcję or środowisko.GetOpcja(). Wartość można również ustawić za pomocą
Ustaw opcję or środowisko.SetOption(), jeśli warunki w SConscript wymagają zastąpienia któregokolwiek
domyślna wartość. Należy jednak pamiętać, że wartość podana w wierszu poleceń będzie zawsze
zastąpić wartość ustawioną przez dowolny plik SConscript.

Wszelkie określone ciągi znaków pomocy= dla nowych opcji zostaną wyświetlone przez -H or -h
opcje (te ostatnie tylko wtedy, gdy w plikach SConscript nie określono żadnego innego tekstu pomocy).
Tekst pomocy dla opcji lokalnych określonych przez Dodaj opcję pojawi się poniżej SCons
samych opcji, pod oddzielnym nagłówkiem Opcje lokalne. Opcje pojawią się w
tekst pomocy w kolejności, w jakiej Dodaj opcję występują połączenia.

Przykład:

AddOption('--przedrostek',
dest='przedrostek',
nars=1, typ='string',
akcja='sklep',
metavar='DIR',
pomoc='prefiks instalacji')
env = Środowisko(PREFIX = GetOption('przedrostek'))

AddPostAction(cel, akcja), env.AddPostAction(cel, akcja)
Organizuje dla określonego akcja do wykonania po określonym czasie cel został
wybudowany. Określone akcje mogą być obiektem akcji lub czymkolwiek innym
przekonwertowany na obiekt Action (patrz poniżej).

Gdy dostarczonych jest wiele celów, akcję można wywołać wielokrotnie, jednorazowo
po każdej akcji generującej jeden lub więcej celów na liście.

AddPreAction(cel, akcja), env.AddPreAction(cel, akcja)
Organizuje dla określonego akcja należy wykonać przed określonym terminem cel is
wybudowany. Określone akcje mogą być obiektem akcji lub czymkolwiek innym
przekonwertowany na obiekt Action (patrz poniżej).

Jeśli określono wiele celów, akcję można wywołać wielokrotnie, jednorazowo
przed każdą akcją generującą jeden lub więcej celów na liście.

Należy pamiętać, że jeśli którykolwiek z celów zostanie zbudowany w kilku etapach, akcja zostanie wykonana
wywoływane tuż przed „ostateczną” akcją, która konkretnie generuje określone
cel(e). Na przykład podczas budowania programu wykonywalnego z określonego źródła .c
plik poprzez pośredni plik obiektowy:

foo = Program('foo.c')
AddPreAction(foo, 'pre_action')

Określona akcja wstępna zostanie wykonana, zanim scons wywoła polecenie łącza
faktycznie generuje plik wykonywalny binarny foo, nie przed kompilacją pliku foo.c
plik do pliku obiektowego.

Alias(alias, [cele, [akcja]]), env.Alias(alias, [cele, [akcja]])
Tworzy jeden lub więcej fałszywych celów, które rozszerzają się na jeden lub więcej innych celów. Jakiś
fakultatywny akcja (polecenie) lub listę akcji, które zostaną wykonane
zawsze, gdy którykolwiek z celów aliasów jest nieaktualny. Zwraca obiekt Node
reprezentujący alias, który istnieje poza jakimkolwiek systemem plików. Ten obiekt węzła lub
nazwa aliasu może być używana jako zależność od dowolnego innego celu, w tym innego
Alias. Alias można wywołać wiele razy dla tego samego aliasu, aby dodać kolejny
targets do aliasu lub dodatkowe akcje do listy dla tego aliasu.

Przykłady:

Alias ​​(„zainstaluj”)
Alias('zainstaluj', '/ usr / bin')
Alias(['install', 'install-lib'], '/ usr / local / lib')

env.Alias('zainstaluj', ['/ usr / local / bin'"/ usr / local / lib'])
env.Alias('zainstaluj', ['/ usr / local / man'])

env.Alias('update', ['file1', 'file2'], "update_database $SOURCES")

Zezwalaj na wyjątki ([wyjątek, ...])
Określa wyjątki, które będą dozwolone podczas rozwijania zmiennych konstrukcyjnych.
Domyślnie wszelkie rozwinięcia zmiennych konstrukcyjnych generujące błąd NameError lub
Wyjątek IndexError rozwinie się do „” (łańcuch zerowy) i nie spowoduje niepowodzenia skanowania.
Wszystkie wyjątki spoza określonej listy spowodują wygenerowanie komunikatu o błędzie i zakończenie
przetwarzanie.

If Zezwalaj na wyjątki SubstException jest wywoływany wiele razy, każde wywołanie całkowicie zastępuje plik
poprzednia lista dozwolonych wyjątków.

Przykład:

# Wymaga istnienia wszystkich nazw zmiennych konstrukcyjnych.
# (Możesz to zrobić, jeśli chcesz ściśle egzekwować
# że wszystkie zmienne konstrukcyjne muszą zostać zdefiniowane przed użyciem.)
Zezwalaj na wyjątki()

# Zezwalaj także na ciąg znaków zawierający rozwinięcie przez dzielenie zera
# jak „${1 / 0}”, aby uzyskać wartość „”.
Zezwalaj na wyjątki (IndexError, NameError, ZeroDivisionError)

AlwaysBuild(target, ...), env.AlwaysBuild(target, ...)
Zaznacza każdy podany cel tak więc zawsze zakłada się, że jest nieaktualny i tak będzie
zawsze należy odbudować, jeśli zajdzie taka potrzeba. Zauważ jednak, że Zawsze buduj nie dodaje
target(s) do domyślnej listy celów, więc cele zostaną zbudowane tylko wtedy, gdy są
określone w wierszu poleceń lub są zależne od celu określonego w poleceniu
linii – ale tak się stanie zawsze zostać zbudowany, jeśli tak określono. Można przekazać wiele celów
na jedno połączenie Zawsze buduj.

env.Append(key=val, [...])
Dołącza określone argumenty słów kluczowych na końcu zmiennych konstrukcyjnych w pliku
środowisko. Jeśli środowisko nie ma określonej zmiennej konstrukcyjnej, to
jest po prostu dodawany do środowiska. Jeśli wartości zmiennej konstrukcyjnej i
argumenty słowa kluczowego są tego samego typu, wówczas te dwie wartości zostaną po prostu dodane.
W przeciwnym razie zmienna konstrukcyjna i wartość argumentu słowa kluczowego są zarówno zmienną konstrukcyjną, jak i wartością argumentu słowa kluczowego
zmuszeni do tworzenia list, a listy są dodawane do siebie. (Zobacz także metodę Prepend,
poniżej.)

Przykład:

env.Append(CCFLAGS = ' -g', FOO = ['foo.yyy'])

env.AppendENVPath(nazwa, nowa ścieżka, [nazwa środowiska, sep, usuń_istniejące])
Spowoduje to dodanie nowych elementów ścieżki do podanej ścieżki w określonym środowisku zewnętrznym
(domyślnie ENV). Spowoduje to dodanie określonej ścieżki tylko raz (pozostawiając ostatnią ścieżkę
spotkania i ignorowanie reszty, aby zachować porządek ścieżki) i pomóc to zapewnić,
znormalizuje wszystkie ścieżki (używając ścieżka os.normpath i os.path.normcase). To też może
obsłużyć przypadek, w którym podana stara zmienna ścieżki jest listą, a nie ciągiem znaków, in
w takim przypadku zamiast ciągu zostanie zwrócona lista.

If usuń_istniejące wynosi 0, wówczas dodanie ścieżki, która już istnieje, nie spowoduje jej przeniesienia
koniec; pozostanie tam, gdzie jest na liście.

Przykład:

drukuj „przed:”, env [„ENV” [„INCLUDE”]
include_path = '/foo/bar:/foo'
env.AppendENVPath('INCLUDE', include_path)
print 'po:',env['ENV']['INCLUDE']

plony:
wcześniej: /foo:/biz
po: /biz:/foo/bar:/foo

env.AppendUnique(klucz=val, [...], usuń_istniejące=0)
Dołącza określone argumenty słów kluczowych na końcu zmiennych konstrukcyjnych w pliku
środowisko. Jeśli środowisko nie ma określonej zmiennej konstrukcyjnej, to
jest po prostu dodawany do środowiska. Jeśli dodawana zmienna konstrukcyjna to
listę, wówczas zostaną uwzględnione wszystkie wartości, które już istnieją w zmiennej konstrukcyjnej nie be
ponownie dodany do listy. Jeśli jednak Delete_existing ma wartość 1, istniejące pasujące wartości
są usuwane jako pierwsze, więc istniejące wartości na liście argumentów zostaną przeniesione na koniec listy.

Przykład:

env.AppendUnique(CCFLAGS = '-g', FOO = ['foo.yyy'])

środowisko.BitKeeper()
Funkcja fabryczna, która zwraca obiekt Builder, który ma być używany do pobierania plików źródłowych
za pomocą BitKeepera. Zwrócony Builder ma zostać przekazany do Kod źródłowy
funkcja.

Ta funkcja jest przestarzała. Szczegóły znajdziesz we wpisie dot Kod źródłowy funkcja.

Przykład:

env.SourceCode('.', env.BitKeeper())

BuildDir(katalog_kompilacji, katalog_src, [duplikat]), env.KatalogBuild(katalog_kompilacji, katalog_src, [duplikat])
Przestarzałe synonimy dla WariantDir i env.VariantDir(). ten katalog_budowlany argument
staje się wariant_katalog argument WariantDir or env.VariantDir().

Konstruktor(akcja, [argumenty]), środowisko.Builder(akcja, [argumenty])
Tworzy obiekt Builder dla określonego akcja. Zobacz sekcję „Obiekty konstruktora”,
poniżej, aby uzyskać pełne wyjaśnienie argumentów i zachowań.

Zauważ, że env.Builder() forma wywołania rozwinie zmienne konstrukcyjne
w dowolnych ciągach argumentów, w tym akcja argument w momencie jego wywołania
używając zmiennych konstrukcyjnych w pliku env środowisko budowlane, przez które
env.Builder() został wezwany. The Budowniczy form opóźnia całe rozwinięcie zmiennych do czasu późniejszego
faktycznie wywoływany jest obiekt Builder.

CacheDir(cache_dir), env.CacheDir(cache_dir)
Określa, że ​​scons będzie utrzymywać pamięć podręczną plików pochodnych katalog_pamięci podręcznej. Pochodne
pliki w pamięci podręcznej zostaną udostępnione wszystkim kompilacjom korzystającym z tego samego Katalog pamięci podręcznej połączenie.
Określanie katalog_pamięci podręcznej of None wyłącza buforowanie plików pochodnych.

powołanie env.CacheDir() będzie miało wpływ tylko na cele zbudowane zgodnie z określonymi wartościami
środowisko budowlane. Powołanie Katalog pamięci podręcznej ustawia globalną wartość domyślną, która będzie używana przez
wszystkie cele zbudowane w środowiskach konstrukcyjnych, które to robią nie mają env.CacheDir()
określony.

Kiedy Katalog pamięci podręcznej() jest używany, a scons znajduje plik pochodny, który musi zostać użyty
przebudowany, najpierw zajrzy do pamięci podręcznej, aby sprawdzić, czy plik pochodny już tam nie był
zbudowany z identycznych plików wejściowych i identycznej akcji kompilacji (włączonej do
sygnatura kompilacji MD5). Jeśli tak, scons pobierze plik z pamięci podręcznej. Jeśli
pochodny plik nie znajduje się w pamięci podręcznej, scons odbuduje go, a następnie umieści kopię
skompilowanego pliku w pamięci podręcznej (identyfikowanego przez podpis kompilacji MD5), aby mógł
zostać pobrane przez inne kompilacje, które muszą zbudować ten sam plik pochodny z identycznych
wejścia.

Użycie określonego Katalog pamięci podręcznej można wyłączyć dla dowolnego wywołania za pomocą opcji
--cache-wyłącz opcja.

Jeśli --siła pamięci podręcznej opcja jest używana, scons umieści kopię cała kolekcja pliki pochodne w formacie
pamięci podręcznej, nawet jeśli już istniały i nie zostały zbudowane przez to wywołanie. To jest
przydatne do zapełnienia pamięci podręcznej za pierwszym razem Katalog pamięci podręcznej jest dodawany do kompilacji lub po użyciu
dotychczasowy --cache-wyłącz opcja.

Podczas używania Katalog pamięci podręcznej, scons zgłosi „Pobrano `plik' z pamięci podręcznej”, chyba że
--pokaz pamięci podręcznej opcja jest używana. Kiedy --pokaz pamięci podręcznej opcja zostanie użyta, scons to zrobi
wydrukuj akcję, która by zostały użyte do zbudowania pliku, bez żadnych wskazówek
że plik faktycznie został pobrany z pamięci podręcznej. Jest to przydatne do generowania pliku build
dzienniki, które są równoważne niezależnie od tego, czy dany plik pochodny został zbudowany
na miejscu lub pobrane z pamięci podręcznej.

Kurs Brak pamięci podręcznej metody można użyć do wyłączenia buforowania określonych plików. To może być
przydatne, jeśli nie można przewidzieć danych wejściowych i/lub wyników jakiegoś narzędzia lub
zaporowo duży.

Wyczyść(cele, katalogi_plików), środowisko.Wyczyść(cele, katalogi_plików)
Określa listę plików lub katalogów, które powinny zostać usunięte za każdym razem
cele są określone za pomocą -c opcja wiersza poleceń. Określonymi celami mogą być: a
listę lub indywidualny cel. Wiele połączeń do Czyszczenie są legalne i tworzą nowe
targets lub dodaj pliki i katalogi do czystej listy dla określonych celów.

Należy określić wiele plików lub katalogów jako osobne argumenty metody
Czyszczenie metodę lub jako listę. Czyszczenie zaakceptuje również wartość zwracaną przez dowolny z nich
środowisko konstrukcyjne Metody budowniczego. Przykłady:

Powiązane Brak czyszczenia funkcja zastępuje wywołanie Czyszczenie dla tego samego celu i dowolnego
cele przekazane do obu funkcji will nie zostać usunięty przez -c opcja.

Przykłady:

Clean('foo', ['bar', 'baz'])
Clean('dist', env.Program('hello', 'hello.c'))
Clean(['foo', 'bar'], 'coś_else_to_clean')

W tym przykładzie instalacja projektu tworzy podkatalog dla dokumentacji.
Ta instrukcja powoduje usunięcie podkatalogu w przypadku deinstalacji projektu.

Clean(docdir, os.path.join(docdir, nazwa projektu))

env.Clone([klucz=wartość, ...])
Zwraca oddzielną kopię środowiska konstrukcyjnego. Jeśli są jakieś słowa kluczowe
podane argumenty, są one dodawane do zwróconej kopii, zastępując istniejące
wartości słów kluczowych.

Przykład:

env2 = env.Clone()
env3 = env.Clone(CCFLAGS = '-g')

Dodatkowo można określić listę narzędzi i ścieżkę narzędzia, tak jak w Środowisku
konstruktor:

def MyTool(env): env['FOO'] = 'pasek'
env4 = env.Clone(tools = ['msvc', MyTool])

Kurs parse_flags rozpoznawany jest również argument słowa kluczowego:

# utwórz środowisko do kompilowania programów korzystających z wxWidgets
wx_env = env.Clone(parse_flags = '!wx-config --cflags --cxxflags')

Polecenie(cel, źródło, akcja, [klucz=wartość, ...]), env.Command(cel, źródło, akcja,
[klucz=wartość, ...])
Wykonuje określoną akcję (lub listę akcji) w celu zbudowania docelowego pliku lub plików. Ten
jest wygodniejsze niż definiowanie oddzielnego obiektu Buildera dla pojedynczego przypadku specjalnego
budować.

Jako szczególny przypadek, skaner_źródłowy Argument słowa kluczowego może zostać użyty do określenia a
Obiekt skanera, który będzie używany do skanowania źródeł. (Globalny obiekt DirScanner
można użyć, jeśli którekolwiek ze źródeł będzie katalogami, które należy przeskanować na dysku
zmiany w plikach, które nie zostały jeszcze określone w innych wywołaniach funkcji Konstruktora.)

Wszelkie inne określone argumenty słów kluczowych zastępują dowolną istniejącą konstrukcję o tej samej nazwie
zmiennych.

Akcja może być poleceniem zewnętrznym określonym jako ciąg znaków lub wywoływalnym językiem Python
obiekt; zobacz „Obiekty akcji” poniżej, aby uzyskać pełniejsze informacje. Należy również pamiętać, że A
ciąg znaków określający polecenie zewnętrzne może być poprzedzony znakiem @ (at), aby go pominąć
wypisanie danego polecenia lub znak - (myślnik), aby zignorować status wyjścia
polecenie zewnętrzne.

Przykłady:

env.Command('foo.out', 'foo.in',
„$FOO_BUILD < $ŹRÓDŁA > $TARGET”)

env.Command('bar.out', 'bar.in',
["rm -f $CEL",
"$BAR_BUILD < $ŹRÓDŁA > $TARGET"],
ENV = {'ŚCIEŻKA' : '/ usr / local / bin /'})

def zmień nazwę(środowisko, cel, źródło):
zaimportować cię
os.rename('.tmp', str(target[0]))

env.Command('baz.out', 'baz.in',
["$BAZ_BUILD <$ŹRÓDŁA> .tmp",
Przemianować ])

Zauważ, że Command Funkcja zwykle domyślnie zakłada, że ​​określony
cele i/lub źródła są plikami, jeśli nie identyfikuje ich żadna inna część konfiguracji
jaki to rodzaj wpisu. Jeśli to konieczne, możesz jawnie określić, że cele lub
węzły źródłowe powinny być traktowane jak katalogi przy użyciu metody Państwo or env.Dir()
funkcje.

Przykłady:

env.Command('ddd.list', Dir('ddd'), 'ls -l $ŹRÓDŁO > $TARGET')

env['DISTDIR'] = 'miejsce docelowe/katalog'
env.Command(env.Dir('$DISTDIR')), Brak, make_distdir)

(Pamiętaj również, że SCons zwykle automatycznie tworzy dowolny katalog niezbędny do
przechowuj plik docelowy, więc zwykle nie musisz ręcznie tworzyć katalogów.)

Configure(env, [custom_tests, conf_dir, log_file, config_h]), env.Configure([custom_tests,
katalog_konf, plik_dziennika, konfiguracja_h])
Tworzy obiekt Configure dla zintegrowanej funkcjonalności podobnej do GNU autoconf. Widzieć
w sekcji „Konfigurowanie kontekstów” poniżej znajdziesz pełne wyjaśnienie argumentów
i zachowanie.

env.Copy([klucz=wartość, ...])
Obecnie przestarzały synonim środowisko.Klon().

env.CVS(repozytorium, moduł)
Funkcja fabryczna, która zwraca obiekt Builder, z którego można pobrać pliki źródłowe
określonego CVS składnica. Zwrócony Builder ma zostać przekazany do
Kod źródłowy funkcja.

Ta funkcja jest przestarzała. Szczegóły znajdziesz we wpisie dot Kod źródłowy funkcja.

Określono opcję opcjonalną moduł zostanie dodany na początku wszystkich ścieżek repozytorium
nazwy; zasadniczo można tego użyć do usunięcia początkowych nazw katalogów z pliku
nazwy ścieżek repozytoriów, dzięki czemu wystarczy zreplikować tylko część repozytorium
hierarchia katalogów w lokalnym katalogu kompilacji.

Przykłady:

# Pobierze foo/bar/src.c
# z /usr/local/CVSROOT/foo/bar/src.c.
env.SourceCode('.', env.CVS('/usr/local/CVSROOT'))

# Pobierze bar/src.c
# z /usr/local/CVSROOT/foo/bar/src.c.
env.SourceCode('.', env.CVS('/usr/local/CVSROOT', 'foo'))

# Pobierze src.c
# z /usr/local/CVSROOT/foo/bar/src.c.
env.SourceCode('.', env.CVS('/usr/local/CVSROOT', 'foo/bar'))

Decyder(funkcja), env.Decider(funkcja)
Określa, że ​​wszystkie aktualne decyzje dotyczące celów zbudowanych na podstawie tej konstrukcji
środowisko będzie obsługiwane przez określone funkcjonować, funkcjonować może być jednym z
następujące ciągi znaków określające typ funkcji decyzyjnej, która ma zostać wykonana:

sygnatura czasowa-nowsza
Określa, że ​​cel zostanie uznany za nieaktualny i odbudowany, jeśli
znacznik czasu zależności jest nowszy niż znacznik czasu pliku docelowego. To jest
zachowanie klasycznego narzędzia Make, a make może być używane jako synonim
sygnatura czasowa-nowsza.

dopasowanie znacznika czasu
Określa, że ​​cel zostanie uznany za nieaktualny i odbudowany, jeśli
znacznik czasu zależności jest inny niż znacznik czasu zarejestrowany ostatnim razem
zbudowano cel. Zapewnia to zachowanie bardzo podobne do klasycznego narzędzia Make
(w szczególności pliki nie są otwierane w celu sprawdzenia sumy kontrolnej ich zawartości)
z tą różnicą, że element docelowy również zostanie odbudowany, jeśli przywrócony zostanie plik zależności
do wersji z wcześniej znacznik czasu, co może się zdarzyć podczas przywracania plików
z archiwów kopii zapasowych.

MD5
Określa, że ​​cel zostanie uznany za nieaktualny i odbudowany, jeśli
zawartość zależności zmieniła się od czasu ostatniej budowy celu, as
należy wykonać sumę kontrolną MD5 dla zawartości zależności i
porównując ją z sumą kontrolną zarejestrowaną podczas ostatniej budowy celu. treść
może być używany jako synonim MD5.

Znacznik czasu MD5
Określa, że ​​cel zostanie uznany za nieaktualny i odbudowany, jeśli
zawartość zależności zmieniła się od chwili ostatniego zbudowania celu, z wyjątkiem
te zależności ze znacznikiem czasu zgodnym z ostatnim czasem, w którym cel był
przebudowany zostanie uznany za aktualny i nie odbudowany. To zapewnia zachowanie
bardzo podobne do zachowania MD5 polegającego na ciągłym sumowaniu zawartości pliku, z rozszerzeniem
optymalizacja polegająca na nie sprawdzaniu zawartości plików, których znaczniki czasu nie
zmieniony. Wadą jest to, że SCons to zrobi nie wykryć, czy zawartość pliku ma
zmieniony, ale jego znacznik czasu jest taki sam, co może się zdarzyć w zautomatyzowanym skrypcie
uruchamia kompilację, aktualizuje plik i uruchamia kompilację ponownie, a wszystko to w ramach jednego pliku
druga.

Przykłady:

# Domyślnie używaj dokładnych dopasowań sygnatur czasowych.
Decyder('dopasowanie znacznika czasu')

# Używaj sygnatur zawartości MD5 dla wszelkich zbudowanych celów
# z dołączonym środowiskiem konstrukcyjnym.
env.Decider('treść')

Oprócz powyższych już dostępnych funkcji, funkcjonować argumentem może być
rzeczywista funkcja Pythona, która przyjmuje następujące trzy argumenty:

zależność
Węzeł (plik), który powinien spowodować cel do odbudowania, jeśli się „zmieniło”
od ostatniego razu cel był zbudowany.

cel
Budowany węzeł (plik). W normalnym przypadku właśnie to powinno zostać odbudowane
Jeśli zależność zmienił się."

poprzedni_ni
Przechowywane informacje o stanie zależność ostatni raz cel była
wybudowany. Można to sprawdzić, aby dopasować różne cechy pliku, takie jak
znacznik czasu, rozmiar lub podpis treści.

Kurs funkcjonować powinien zwrócić wartość True (niezerową), jeśli zależność zmienił się"
od ostatniego razu cel został zbudowany (co wskazuje, że plik docelowy powinien be
przebudowany) i False (zero) w przeciwnym razie (wskazując, że cel powinien nie be
odbudowany). Należy pamiętać, że decyzję można podjąć na podstawie dowolnych odpowiednich kryteriów.
Ignorowanie niektórych lub wszystkich argumentów funkcji jest całkowicie normalne.

Przykład:

def my_decider(zależność, cel, prev_ni):
zwróć nie os.path.exists(str(target))

env.Decydujący(my_decider)

Domyślne (cele), środowisko. Domyślne (cele)
Określa listę domyślnych celów, która zostanie zbudowana przez scons, jeśli nie zostanie to wyraźnie określone
cele są podawane w wierszu poleceń. Wiele połączeń do Domyślnie są legalne i dodaj do
listę domyślnych celów.

Wiele celów należy określić jako osobne argumenty metody Domyślnie metoda, lub
jako lista. Domyślnie zaakceptuje również węzeł zwrócony przez dowolną konstrukcję
metody budowania środowiska.

Przykłady:

Domyślnie('foo', 'bar', 'baz')
środowisko.Default(['a', 'b', 'c'])
hello = env.Program('hello', 'hello.c')
env.Default(witaj)

Argument do Domyślnie Opcja Brak spowoduje wyczyszczenie wszystkich domyślnych celów. Później dzwoni do Domyślnie
doda do (teraz pustej) listy domyślnych celów jak zwykle.

Aktualna lista celów dodanych za pomocą Domyślnie funkcja lub metoda jest dostępna w
lista DEFAULT_TARGETS; patrz poniżej.

Środowisko domyślne([args])
Tworzy i zwraca domyślny obiekt środowiska konstrukcyjnego. Ta konstrukcja
Środowisko jest używane wewnętrznie przez SCons w celu wykonywania wielu globalnych operacji
funkcji na tej liście oraz do przezroczystego pobierania plików źródłowych z kodu źródłowego
systemy zarządzania.

Zależy (cel, zależność), środowisko.Zależy (cel, zależność)
Określa jawną zależność; the cel zostanie odbudowany za każdym razem, gdy zależność
zmienił się. Obydwa określone cel i zależność może być ciągiem znaków (zwykle
nazwa ścieżki pliku lub katalogu) lub obiekty Node, lub lista ciągów znaków lub Node
obiekty (takie jak zwrócone przez wywołanie Builder). Powinno to być konieczne tylko w przypadkach
gdzie zależność nie została przechwycona przez skaner pliku.

Przykład:

env.Depends('foo', 'inny-plik-wejściowy-dla-foo')

mylib = env.Library('mylib.c')
zainstalowany_lib = env.Install('lib', mylib)
bar = środowisko.Program('bar.c')

# Przygotuj bibliotekę do skopiowania do instalacji
# przed próbą zbudowania programu „bar”.
# (Zauważ, że jest to tylko przykładowa „prawdziwa” biblioteka
# zależność normalnie konfiguruje się poprzez $LIBS
# i $LIBPATH, bez użycia wywołania env.Depends().)

env.Depends(bar, install_lib)

env.Słownik([vars])
Zwraca obiekt słownika zawierający kopie wszystkich zmiennych konstrukcyjnych w
środowisko. Jeśli określono nazwy zmiennych, tylko określone
zmienne konstrukcyjne są zwracane w słowniku.

Przykład:

dict = env.Słownik()
cc_dict = env.Dictionary('CC', 'CCFLAGS', 'CCCOM')

Dir(nazwa, [katalog]), env.Dir(nazwa, [katalog])
Zwraca to węzeł katalogu, obiekt reprezentujący określony katalog Nazwa.
Nazwa może być ścieżką względną lub bezwzględną. katalog jest opcjonalnym katalogiem, który to zrobi
być używany jako katalog nadrzędny. Jeśli nie katalog jest określony, bieżący skrypt
katalog jest używany jako nadrzędny.

If Nazwa jest listą, SCons zwraca listę węzłów Dir. Zmienne konstrukcyjne są
rozszerzony w Nazwa.

Węzły katalogowe mogą być używane wszędzie tam, gdzie jako nazwę katalogu można podać ciąg znaków
metoda lub funkcja Konstruktora. Węzły katalogowe mają atrybuty i metody, które są
przydatny w wielu sytuacjach; zobacz „Węzły plików i katalogów” poniżej.

środowisko.Dump([klawisz])
Zwraca całkiem nadającą się do wydruku reprezentację środowiska. klucz, jeśli nie Żaden,
powinien być ciągiem znaków zawierającym nazwę interesującej zmiennej.

Ta konstrukcja S:

env=Środowisko()
drukuj środowisko.Zrzut('CCCOM')

wydrukuje:

'$CC -c -o $TARGET $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS $ŹRÓDŁA'

Podczas gdy ten SConstruct:

env=Środowisko()
drukuj środowisko.Dump()

wydrukuje:

{ 'AR': 'ar',
'ARCOM': '$AR $ARFLAGS $TARGET $SOURCES\n$RANLIB $RANLIBFLAGS $TARGET',
„ARFLAGS”: ['r'],
„AS”: „jak”,
'ASCOM': '$AS $ASFLAGS -o $TARGET $SOURCES',
„ASFLAG”: [],
...

SurePythonVersion (główny, drugorzędny), env.EnsurePythonVersion (główny, drugorzędny)
Upewnij się, że wersja Pythona to co najmniej poważny.moll. Ta funkcja zostanie wydrukowana
komunikat o błędzie i wyjdź z SCons z niezerowym kodem zakończenia, jeśli aktualna wersja Pythona
nie jest wystarczająco późno.

Przykład:

Upewnij się, że wersja Pythona (2,2)

SureSConsVersion(główny, drugorzędny, [wersja]), env.EnsureSConsVersion(główny, drugorzędny,
[rewizja])
Upewnij się, że wersja SCons to co najmniej główny.mniejszylub wersja główna.drobna.rewizja. gdyby
rewizja jest specyficzne. Ta funkcja wydrukuje komunikat o błędzie i zakończy SCons
z niezerowym kodem wyjścia, jeśli aktualna wersja SCons nie jest wystarczająco późna.

Przykłady:

ZapewnijSConsVersion(0,14)

ZapewnijSConsVersion(0,96,90)

Środowisko([klucz=wartość, ...]), środowisko.Środowisko([klucz=wartość, ...])
Zwróć nowe środowisko konstrukcyjne zainicjowane z określonym klucz=wartość par.

Wykonaj (akcja, [strfunkcja, lista var]), env.Wykonaj (akcja, [funkcja str, lista var])
Wykonuje obiekt Action. Określony akcja może być obiektem akcji (zobacz
w sekcji „Obiekty akcji” poniżej, aby uzyskać pełne wyjaśnienie argumentów i
zachowanie) lub może to być ciąg wiersza poleceń, lista poleceń lub plik wykonywalny w języku Python
funkcję, z których każda zostanie przekonwertowana na obiekt akcji, a następnie wykonana. The
zostanie zwrócona wartość wyjściowa polecenia lub wartość zwracana przez funkcję Pythona.

Pamiętaj, że scons wyświetli komunikat o błędzie, jeśli zostanie wykonany akcja zawodzi – tzn.
kończy się lub zwraca wartość różną od zera. sknery to zrobią niejednak automatycznie
zakończ kompilację, jeśli określono akcja kończy się niepowodzeniem. Jeśli chcesz, aby kompilacja się zatrzymała
odpowiedź na niepowodzenie Wykonać wywołanie, musisz jawnie sprawdzić, czy nie ma zwrotu niezerowego
wartość:

Wykonaj(Kopiuj('plik.out', 'plik.in'))

if Execute("mkdir pod/katalog/ectory"):
# Nie udało się mkdir, nie próbuj budować.
Wyjście(1)

Wyjście([wartość]), środowisko.Wyjście([wartość])
To mówi sconsowi, aby natychmiast zakończył działanie z określonym wartość. Domyślna wartość wyjściowa
Jeśli nie określono żadnej wartości, używane jest 0 (zero).

Eksportuj(vars), env.Export(vars)
To mówi sconsowi, aby wyeksportował listę zmiennych z bieżącego pliku SConscript do wszystkich
inne pliki SConscript. Wyeksportowane zmienne są przechowywane w kolekcji globalnej, tzw
kolejne wezwania do Export nadpisze poprzednie eksporty o tej samej nazwie.
Można przekazać wiele nazw zmiennych Export jako osobne argumenty lub jako lista.
Argumentów słów kluczowych można używać do podawania nazw i ich wartości. Słownik może być
używany do mapowania zmiennych na inną nazwę podczas eksportu. Zarówno zmienne lokalne, jak i
można eksportować zmienne globalne.

Przykłady:

env = Środowisko()
# Udostępnij env dla wszystkich plików SConscript w funkcji Import().
Eksportuj("środowisko")

pakiet = 'moja_nazwa'
# Udostępnij env i pakiet dla wszystkich plików SConscript:.
Eksportuj("środowisko", "pakiet")

# Udostępnij env i pakiet dla wszystkich plików SConscript:
Eksportuj(["środowisko", "pakiet"])

# Udostępnij env, używając nazwy debug:
Eksportuj (debugowanie = env)

# Udostępnij env, używając nazwy debug:
Eksportuj({"debug":env})

Zauważ, że S Poborowy funkcja obsługuje eksport argument, który to ułatwia
aby wyeksportować zmienną lub zestaw zmiennych do pojedynczego pliku SConscript. Zobacz
opis S Poborowy funkcja, poniżej.

Plik(nazwa, [katalog]), env.Plik(nazwa, [katalog])
Zwraca to węzeł pliku, obiekt reprezentujący określony plik Nazwa. Nazwa mogą
być ścieżką względną lub bezwzględną. katalog jest opcjonalnym katalogiem, który będzie używany
jako katalog nadrzędny.

If Nazwa jest listą, SCons zwraca listę węzłów plików. Zmienne konstrukcyjne są
rozszerzony w Nazwa.

Węzły plików mogą być używane wszędzie tam, gdzie można podać ciąg znaków jako nazwę pliku Konstruktorowi
metoda lub funkcja. Węzły plików mają atrybuty i metody przydatne w wielu przypadkach
sytuacje; zobacz „Węzły plików i katalogów” poniżej.

FindFile(plik, katalogi), env.FindFile(plik, katalogi)
Szukaj filet w ścieżce określonej przez dirs. dirs może być listą nazw katalogów
lub pojedynczą nazwę katalogu. Oprócz wyszukiwania plików istniejących w formacie
system plików, ta funkcja wyszukuje również pliki pochodne, które jeszcze nie zostały
wybudowany.

Przykład:

foo = env.FindFile('foo', ['katalog1', 'katalog2'])

FindInstalledFiles(), env.FindInstalledFiles()
Zwraca listę celów ustawioną przez Zainstalować or Zainstaluj jako budowniczych.

Ta funkcja służy jako wygodna metoda wybierania zawartości pliku binarnego
pakiet.

Przykład:

Zainstalować( '/kosz', [ 'plik wykonywalny_a', 'plik wykonywalny_b' ])

# zwróci listę węzłów pliku
# [ '/bin/executable_a', '/bin/executable_b' ]
ZnajdźInstalledFiles()

Zainstalować( '/ lib', [ 'jakaś_biblioteka' ])

# zwróci listę węzłów pliku
# [ '/bin/executable_a', '/bin/executable_b', '/lib/jakaś_library' ]
ZnajdźInstalledFiles()

FindPathDirs (zmienna)
Zwraca funkcję (właściwie wywoływalny obiekt Pythona), która ma być używana jako
funkcja_ścieżki obiektu skanera. Zwrócony obiekt wyszuka określony
zmienna w środowisku konstrukcyjnym i traktuj wartość zmiennej konstrukcyjnej jako
lista ścieżek katalogów, które powinny zostać przeszukane (np $CPPATH, $LIBPATHItp.).

Zwróć uwagę, że korzystanie z FindPathDirs jest ogólnie lepsze niż pisanie własnych
funkcja_ścieżki z następujących powodów: 1) Zwrócona lista będzie zawierać wszystkie
odpowiednie katalogi znalezione w drzewach źródłowych (w przypadku gdy WariantDir jest używany) lub w kodzie
repozytoria (kiedy Magazyn albo -Y opcja jest używana). 2) Skons zidentyfikują
rozwinięcia zmienna które w rzeczywistości odnoszą się do tej samej listy katalogów, co w rzeczywistości
tej samej listy i jeśli to możliwe, unikaj ponownego skanowania katalogów w poszukiwaniu plików.

Przykład:

def mój_skan(węzeł, środowisko, ścieżka, argument):
# Tutaj znajduje się kod do skanowania zawartości pliku...
zwróć pliki_uwzględniające

skaner = Skaner(nazwa = 'mójskaner',
funkcja = mój_skan,
path_function = FindPathDirs('MOJA ŚCIEŻKA'))

FindSourceFiles(node='"."), env.FindSourceFiles(node='"."')
Zwraca listę węzłów, które służą jako źródło zbudowanych plików. Robi to poprzez
sprawdzanie drzewa zależności zaczynając od opcjonalnego argumentu węzeł które domyślne
do węzła „.””. Następnie zwróci wszystkie liście węzeł. To wszystko są dzieci
które nie mają już więcej dzieci.

Ta funkcja jest wygodną metodą wybierania zawartości pakietu źródłowego.

Przykład:

Program('src/main_a.c')
Program('src/main_b.c')
Program('main_c.c')

# zwraca ['main_c.c', 'src/main_a.c', 'SConstruct', 'src/main_b.c']
Znajdźpliki źródłowe()

# zwraca ['src/main_b.c', 'src/main_a.c' ]
FindSourceFiles( 'src')

Jak widać pliki obsługi kompilacji (SConstruct w powyższym przykładzie) również będą
zwracane przez tę funkcję.

Spłaszcz (sekwencja), otoczenie. Spłaszcz (sekwencja)
Pobiera sekwencję (czyli listę lub krotkę języka Python), która może zawierać sekwencje zagnieżdżone
i zwraca spłaszczoną listę zawierającą wszystkie pojedyncze elementy w any
sekwencja. Może to być pomocne przy zbieraniu list zwracanych przez wywołania do Builders;
inni konstruktorzy automatycznie spłaszczą listy określone jako dane wejściowe, ale kierują Pythonem
manipulowanie tymi listami nie.

Przykłady:

foo = Obiekt('foo.c')
bar = Obiekt('bar.c')

# Ponieważ `foo' i `bar' są listami zwracanymi przez Konstruktora Object(),
# `obiekty' będą listą zawierającą listy zagnieżdżone:
obiekty = ['f1.o', foo, 'f2.o', bar, 'f3.o']

# Przekazanie takiej listy innemu Konstruktorowi jest w porządku, ponieważ
# Konstruktor automatycznie spłaszczy listę:
Program(źródło = obiekty)

# Jeśli chcesz manipulować listą bezpośrednio przy użyciu Pythona, musisz to zrobić
# samodzielnie wywołaj funkcję Flatten() lub w inny sposób obsługuj zagnieżdżone listy:
dla obiektu w Flatten(obiekty):
drukuj str(obiekt)

GetBuildFailures()
Zwraca listę wyjątków dla akcji, które nie powiodły się podczas próby kompilacji
cele. Każdy element na zwróconej liście jest obiektem BuildError z następującymi elementami
atrybuty rejestrujące różne aspekty niepowodzenia kompilacji:

.node Węzeł, który był budowany, gdy wystąpił błąd kompilacji.

.status Numeryczny status wyjścia zwrócony przez polecenie lub funkcję Pythona, która zakończyła się niepowodzeniem
podczas próby zbudowania określonego węzła.

.errstr Ciąg znaków błędu SCons opisujący niepowodzenie kompilacji. (Często jest to plik ogólny
komunikat taki jak „Błąd 2”, wskazujący, że wykonane polecenie zakończyło się ze statusem
2.)

.filename Nazwa pliku lub katalogu, który faktycznie spowodował błąd. Tego maja
różnić się od atrybutu .node. Na przykład, jeśli próbujesz zbudować cel
o nazwie sub/dir/target kończy się niepowodzeniem, ponieważ nie można utworzyć katalogu pod/katalog
atrybut .node będzie miał wartość sub/dir/target, ale atrybut .filename będzie taki
pod/reż.

.executor Obiekt SCons Executor dla budowanego węzła docelowego. Można to wykorzystać
w celu pobrania środowiska konstrukcyjnego użytego w przypadku nieudanej akcji.

.action Rzeczywisty obiekt akcji SCons, który zakończył się niepowodzeniem. Będzie to jedno konkretne działanie
z możliwej listy działań, które zostałyby wykonane, aby zbudować cel.

.command Rzeczywiste rozwinięte polecenie, które zostało wykonane i nie powiodło się po rozwinięciu
$CEL, $ŹRÓDŁOi inne zmienne konstrukcyjne.

Zauważ, że PobierzBuildFailures funkcja zawsze zwróci pustą listę, dopóki nie wystąpi żadna
wystąpił błąd kompilacji, co oznacza, że PobierzBuildFailures zawsze zwróci
pusta lista podczas odczytywania plików SConscript. Jego głównym przeznaczeniem jest
funkcje, które zostaną wykonane przed wyjściem SCons poprzez przekazanie ich do standardu
Python atexit.register() funkcja. Przykład:

importuj atexit

def print_build_failures():
z SCons.Script importuj GetBuildFailures
dla bf w GetBuildFailures():
wydrukuj „%s nie powiodło się: %s” % (bf.node, bf.errstr)

atexit.register(print_build_failures)

GetBuildPath(plik, [...]), env.GetBuildPath(plik, [...])
Zwraca nazwę (lub nazwy) ścieżki scons dla określonego filet (lub pliki). The
określony filet lub plikami mogą być węzły scons lub ciągi znaków reprezentujące nazwy ścieżek.

GetLaunchDir(), środowisko.GetLaunchDir()
Zwraca bezwzględną nazwę ścieżki katalogu, z którego początkowo pochodził scons
wywołany. Może to być przydatne podczas korzystania z -u, -U or -D opcje, które wewnętrznie
przejdź do katalogu, w którym znajduje się plik SConstruct.

GetOption(nazwa), środowisko.GetOption(nazwa)
Ta funkcja umożliwia sprawdzenie wartości opcji SCons ustawionych w poleceniu scons
linii (lub ustawić za pomocą Ustaw opcję funkcjonować). Obsługiwane opcje to:

cache_debug
co odpowiada --cache-debug;

pamięć podręczna_wyłączona
co odpowiada --cache-disable;

pamięć podręczna_force
co odpowiada --cache-force;

cache_show
co odpowiada --cache-show;

kleń
co odpowiada -c, --clean i --remove;

config
co odpowiada --config;

katalog
co odpowiada katalogom -C i --;

sprawdzanie dysku
co odpowiada --diskcheck

duplikat
co odpowiada --duplicate;

filet
co odpowiada -f, --file, --makefile i --sconstruct;

pomoc
co odpowiada -h i --help;

ignorować_błędy
co odpowiada --ignore-errors;

implicit_cache
co odpowiada --implicit-cache;

implicit_deps_changed
co odpowiada --implicit-deps-changed;

implicit_deps_unchanged
co odpowiada --implicit-deps-unchanged;

interaktywne
co odpowiada --interact i --interactive;

kontynuować
co odpowiada -k i --keep-going;

max_drift
co odpowiada --max-drift;

nie_exec
co odpowiada -n, --no-exec, --just-print, --dry-run i --recon;

no_site_dir
co odpowiada --no-site-dir;

liczba_prac
co odpowiada -j i --jobs;

plik_profilu
co odpowiada --profile;

pytanie
co odpowiada -q i --pytanie;

przypadkowy
co odpowiada --random;

składnica
co odpowiada -Y, --repository i --srcdir;

cichy
co odpowiada -s, --silent i --quiet;

katalog_strony
co odpowiada --site-dir;

rozmiar_stosu
co odpowiada --stack-size;

plik_tracemastera_zadań
co odpowiada --taskmastertrace; I

ostrzec
co odpowiada --warn i --warning.

Informacje na temat tego obiektu można znaleźć w dokumentacji odpowiedniego obiektu wiersza poleceń
każdą konkretną opcję.

Glob(wzorzec, [ondysk, źródło, ciągi znaków, wyklucz]), env.Glob(wzorzec, [ondysk, źródło,
ciągi znaków, wyklucz])
Zwraca węzły (lub ciągi znaków) pasujące do określonego wzorzec, względem katalogu
bieżącego pliku SConscript. The środowisko.Glob() formularz wykonuje podstawienie ciągu znaków
wzorzec i zwraca wszystko, co pasuje do wynikowego rozwiniętego wzorca.

Określony wzorzec używa metaznaków w stylu powłoki Unix do dopasowywania:

*pasuje do wszystkiego
? dopasowuje dowolny pojedynczy znak
[sekwencja] dopasowuje dowolny znak w sekwencji
[!seq] dopasowuje dowolny znak spoza seq

Jeśli pierwszym znakiem nazwy pliku jest kropka, należy ją jawnie dopasować.
Dopasowania postaci tak nie separatory katalogów span.

Kurs Glob wie o repozytoriach (zobacz Magazyn funkcja) i katalogi źródłowe
(Patrz WariantDir funkcja) i zwraca węzeł (lub ciąg znaków, jeśli tak skonfigurowano) w pliku
katalog lokalny (SConscript), jeśli pasujący węzeł zostanie znaleziony w dowolnym miejscu odpowiedniego pliku
repozytorium lub katalog źródłowy.

Kurs ondysk argument może zostać ustawiony na False (lub dowolną inną wartość nieprawdziwą), aby wyłączyć
szukaj dopasowań na dysku, zwracając w ten sposób tylko dopasowania wśród już skonfigurowanych
Węzły pliku lub katalogu. Domyślnym zachowaniem jest zwracanie odpowiednich węzłów dla dowolnego
Znaleziono dopasowania na dysku.

Kurs źródło argument może być ustawiony na True (lub dowolną równoważną wartość), aby określić, kiedy
katalog lokalny to a WariantDir, zwrócone węzły powinny pochodzić z
odpowiedni katalog źródłowy, a nie katalog lokalny.

Kurs smyczki argument może być ustawiony na True (lub dowolną równoważną wartość), aby mieć Glob
funkcja zwraca ciągi znaków, a nie węzły, które reprezentują dopasowane pliki lub katalogi.
Zwrócone ciągi będą odnosić się do katalogu lokalnego (SConscript). (Zauważ to
Może to ułatwić dowolną manipulację nazwami plików, ale jeśli
zwrócone ciągi znaków są przekazywane do innego pliku SConscript, tak będzie w przypadku dowolnej translacji Node
być względny w stosunku do innego katalogu SConscript, a nie do oryginalnego katalogu SConscript.)

Kurs wykluczać argument może być ustawiony na wzorzec lub listę wzorców (zgodnie z tym samym
Semantyka powłoki Unix), które należy odfiltrować ze zwróconych elementów. Elementy
dopasowanie co najmniej jednego wzorca z tej listy zostanie wykluczone.

Przykłady:

Program('foo', Glob('*.c'))
Zip('/tmp/wszystko', Glob('.??*') + Glob('*'))
źródła = Glob('*.cpp', wyklucz=['os_*_specific_*.cpp']) + Glob('os_%s_specific_*.cpp'%currentOS)

Pomoc(tekst, append=False), env.Help(text, append=False)
Określa tekst pomocy, który ma zostać wydrukowany, jeśli plik -h argument podaje się sknerom. Jeśli Pomoc
jest wywoływany wielokrotnie, tekst jest dodawany w takiej kolejności Pomoc is
zwany. Przy dołączaniu ustawionym na False, dowolny Pomoc tekst wygenerowany za pomocą Dodaj opcję jest zatkany.
Jeśli append ma wartość True, pomoc AddOption jest dodawana na początku ciągu pomocy, co powoduje zachowanie
dotychczasowy -h wiadomość.

Ignore(cel, zależność), env.Ignore(cel, zależność)
Określone pliki zależności zostaną zignorowane przy podejmowaniu decyzji, czy pliki docelowe
trzeba odbudować.

Można również użyć ignorować aby usunąć cel z domyślnej kompilacji. Aby to zrobić
musisz określić katalog, w którym element docelowy zostanie wbudowany jako element docelowy, oraz plik
chcesz pominąć budowanie jako zależność.

Pamiętaj, że spowoduje to usunięcie tylko wymienionych zależności z plików zbudowanych przez
domyślny. Będzie nadal budowany, jeśli ta zależność będzie potrzebna innemu obiektowi
wybudowany. Zobacz trzeci i czwarty przykład poniżej.

Przykłady:

env.Ignore('foo', 'foo.c')
env.Ignore('bar', ['bar1.h', 'bar2.h'])
env.Ignore('.','foobar.obj')
env.Ignore('bar','bar/foobar.obj')

Import(vars), env.Import(vars)
Mówi to sconsowi, aby zaimportował listę zmiennych do bieżącego pliku SConscript. Ten
zaimportuje zmienne, które zostały wyeksportowane za pomocą Export lub eksport argument drugi
S Poborowy. Zmienne eksportowane przez S Poborowy mieć pierwszeństwo. Wiele nazw zmiennych
można przekazać do import jako osobne argumenty lub jako lista. Zmienna „*” może być
używany do importowania wszystkich zmiennych.

Przykłady:

Importuj("środowisko")
Import("środowisko", "zmienna")
Import(["środowisko", "zmienna"])
Import("*")

Literal(string), env.Literal(string)
Określony ciąg zostaną zachowane w niezmienionej postaci i nie będą miały zmiennych konstrukcyjnych
rozszerzony.

Lokalne (cele), środowisko.Lokalne (cele)
Określony cele będzie miał kopie utworzone w drzewie lokalnym, nawet jeśli już
aktualna kopia znajduje się w repozytorium. Zwraca listę docelowego węzła lub węzłów.

env.MergeFlags(arg, [unikalny])
Łączy określone arg wartości dla konstrukcji środowiska budowlanego
zmienne. Jeśli arg argument nie jest słownikiem, jest konwertowany na jeden poprzez wywołanie
env.ParseFlags na argumencie przed połączeniem wartości. Zauważ to arg musi być
pojedynczą wartość, dlatego wiele ciągów należy przekazać jako listę, a nie osobno
argumenty do env.MergeFlags.

Domyślnie duplikaty wartości są eliminowane; możesz jednak określić Unique=0 to
zezwolić na dodanie zduplikowanych wartości. Eliminując zduplikowane wartości, any
Zmienne konstrukcyjne zakończone ciągiem PATH zachowują unikalną wartość znajdującą się najbardziej po lewej stronie.
Wszystkie pozostałe zmienne konstrukcyjne zachowują unikalną wartość znajdującą się najbardziej po prawej stronie.

Przykłady:

# Dodaj flagę optymalizacji do $CCFLAGS.
env.MergeFlags('-O3')

# Połącz flagi zwrócone po uruchomieniu pkg-config z optymalizacją
# flagę i połącz wynik ze zmiennymi konstrukcyjnymi.
env.MergeFlags(['!pkg-config gtk+-2.0 --cflags', '-O3'])

# Połącz flagę optymalizacji z flagami zwróconymi po uruchomieniu pkg-config
# dwa razy i połącz wynik ze zmiennymi konstrukcyjnymi.
env.MergeFlags(['-O3',
'!pkg-config gtk+-2.0 --cflags --libs',
'!pkg-config libpng12 --cflags --libs'])

NoCache(target, ...), env.NoCache(target, ...)
Określa listę plików, które powinny nie być buforowane za każdym razem, gdy Katalog pamięci podręcznej metoda ma
został aktywowany. Określone cele mogą być listą lub pojedynczym celem.

Należy określić wiele plików jako osobne argumenty metody Brak pamięci podręcznej metoda
lub jako lista. Brak pamięci podręcznej zaakceptuje również wartość zwracaną dowolnej konstrukcji
Metody konstruktora środowiska.

powołanie Brak pamięci podręcznej na katalogach i innych typach węzłów innych niż plik nie ma żadnego wpływu, ponieważ
buforowane są tylko węzły plików.

Przykłady:

NoCache('foo.elf')
NoCache(env.Program('witaj', 'witaj.c'))

NoClean(cel, ...), środowisko.NoClean(cel, ...)
Określa listę plików lub katalogów, które powinny nie zostać usunięte za każdym razem, gdy
cele (lub ich zależności) są określone za pomocą -c opcja wiersza poleceń. The
określone cele mogą być listą lub pojedynczym celem. Wiele połączeń do Brak czyszczenia jest
legal i zapobiegają usuwaniu każdego określonego celu przez wywołania metody -c opcja.

Należy określić wiele plików lub katalogów jako osobne argumenty metody
Brak czyszczenia metodę lub jako listę. Brak czyszczenia zaakceptuje również wartość zwracaną przez dowolny z nich
środowisko konstrukcyjne Metody budowniczego.

powołanie Brak czyszczenia dla celu zastępuje wezwanie Czyszczenie dla tego samego celu i dowolnego
cele przekazane do obu funkcji will nie zostać usunięty przez -c opcja.

Przykłady:

NoClean('foo.elf')
NoClean(env.Program('witaj', 'witaj.c'))

env.ParseConfig(polecenie, [funkcja, unikalna])
Wywołuje określone funkcjonować zmodyfikować środowisko zgodnie z danymi wyjściowymi
komenda. Domyślny funkcjonować is env.MergeFlags, który oczekuje wyniku typowego
*-config (na przykład gtk-config) i dodaje opcje do odpowiedniego
zmienne konstrukcyjne. Domyślnie zduplikowane wartości nie są dodawane do żadnej konstrukcji
zmienne; możesz określić Unique=0, aby zezwolić na dodanie zduplikowanych wartości.

Interpretowane opcje i zmienne konstrukcyjne, na które wpływają, są takie, jak określono
dotychczasowy env.ParseFlags metoda (którą wywołuje ta metoda). Zobacz opis tej metody,
poniżej znajduje się tabela opcji i zmiennych konstrukcyjnych.

ParseDepends(nazwa pliku, [musi_istnieć, tylko_jeden]), env.ParseDepends(nazwa pliku, [musi_istnieć,
tylko jeden])
Analizuje zawartość określonego filename jako lista zależności w stylu
Make lub mkdep i jawnie ustanawia wszystkie wymienione zależności.

Domyślnie nie jest to błąd, jeśli określono filename nie istnieje. Opcjonalne
musi_istnieć argument może być ustawiony na wartość różną od zera, aby scons zgłosił wyjątek
i wygeneruj błąd, jeśli plik nie istnieje lub jest niedostępny w inny sposób.

Opcjonalne tylko jeden Argument może być ustawiony na wartość różną od zera, aby scons wygenerował komunikat
wyjątek i wygenerować błąd, jeśli plik zawiera więcej informacji o zależnościach
niż jeden cel. Może to zapewnić niewielką kontrolę poprawności plików, które mają być
generowane na przykład przez flagę gcc -M, która zazwyczaj powinna tylko zapisywać
informacje o zależnościach jednego pliku wyjściowego do odpowiedniego pliku .d.

Kurs filename i wszystkie wymienione w nim pliki będą interpretowane w odniesieniu do
katalog pliku SConscript, który wywołuje plik PrzeanalizujZależy funkcja.

env.ParseFlags(flagi, ...)
Analizuje jeden lub więcej ciągów zawierających typowe flagi wiersza poleceń dla łańcuchów narzędzi GCC
i zwraca słownik z wartościami flag rozdzielonymi na odpowiednie SCons
zmienne konstrukcyjne. Ma to służyć jako dodatek do env.MergeFlags metoda
ale pozwala na modyfikację wartości w zwróconym słowniku, jeśli to konieczne,
przed połączeniem ich ze środowiskiem konstrukcyjnym. (Zauważ to env.MergeFlags będzie
wywołaj tę metodę, jeśli jej argumentem nie jest słownik, więc zwykle nie jest to konieczne
zadzwonić env.ParseFlags bezpośrednio, chyba że chcesz manipulować wartościami.)

Jeśli pierwszym znakiem dowolnego ciągu jest wykrzyknik (!), reszta
string jest wykonywany jako polecenie, a dane wyjściowe polecenia są analizowane jako narzędzie GCC
chain flagi wiersza poleceń i dodane do wynikowego słownika.

Wartości flag są tłumaczone zgodnie ze znalezionym przedrostkiem i dodawane do poniższych
zmienne konstrukcyjne:

-arch CCFLAGS, LINKFLAGS
-D CPPDEFINES
-RAMY RAMOWE
-frameworkdir= ŚCIEŻKA RAMKI
-uwzględnij CCFLAGS
-isysroot CCFLAGS, LINKFLAGS
-JA CPPPATH
-l LIBS
-L LIBPATH
-mno-cygwin CCFLAGS, LINKFLAGS
-mwindows FLAGI LINKÓW
-pthread CCFLAGS, LINKFLAGS
-std= CFLAGI
-Wa, ASFLAGI, CCFLAGS
-Wl, -rpath=RPAT
-W1, -R, RPATH
-W1, -R ŚCIEŻKA
-Wl, LINKFLAG
-Wp, CPPFLAGI
- CCFLAG
+ CCFLAG, LINKFLAG

Zakłada się, że wszelkie inne ciągi znaków niezwiązane z opcjami są nazwami bibliotek
i dodano do $LIBS zmienna konstrukcyjna.

Przykłady (z których wszystkie dają ten sam wynik):

dict = env.ParseFlags('-O2 -Dfoo -Dbar=1')
dict = env.ParseFlags('-O2', '-Dfoo', '-Dbar=1')
dict = env.ParseFlags(['-O2', '-Dfoo -Dbar=1'])
dict = env.ParseFlags('-O2', '!echo -Dfoo -Dbar=1')

środowisko.Perforce()
Funkcja fabryczna, która zwraca obiekt Builder, z którego można pobrać pliki źródłowe
system zarządzania kodem źródłowym Perforce. Zwrócony Konstruktor ma być
przekazane do Kod źródłowy funkcja.

Ta funkcja jest przestarzała. Szczegóły znajdziesz we wpisie dot Kod źródłowy funkcja.

Przykład:

env.SourceCode('.', env.Perforce())

Perforce do swojego działania wykorzystuje szereg zewnętrznych zmiennych środowiskowych.
W związku z tym funkcja ta dodaje następujące zmienne z zewnętrznych danych użytkownika
środowisko do słownika ENV środowiska konstrukcyjnego: P4CHARSET, P4CLIENT,
P4LANGUAGE, P4PASSWD, P4PORT, P4USER, SystemRoot, USER i NAZWA UŻYTKOWNIKA.

Platforma (string)
Kurs Platforma form zwraca obiekt, który można wywołać, którego można użyć do zainicjowania a
środowisko konstrukcyjne przy użyciu słowa kluczowego platformy Środowisko funkcja.

Przykład:

env = Środowisko(platforma = Platforma('win32'))

Kurs środowisko.Platforma formularz stosuje wywoływalny obiekt dla określonej platformy ciąg do
środowisko, za pośrednictwem którego wywołano metodę.

env.Platform('posix')

Należy pamiętać, że platforma win32 dodaje zmienne SystemDrive i SystemRoot z pliku
środowiska zewnętrznego użytkownika do środowiska budowlanego $ENW słownik. To jest
tak, aby wszelkie wykonane polecenia korzystające z gniazd do łączenia się z innymi systemami (takie jak
pobieranie plików źródłowych ze specyfikacji zewnętrznego repozytorium CVS, np
:pserwer:[email chroniony]:/cvsroot/scons) będzie działać w systemach Windows.

Cenny(cel, ...), otoczenie.Drogocenny(cel, ...)
Zaznacza każdy podany cel jako cenne, aby nie zostały usunięte przed odbudowaniem.
Zwykle Skons usuwa cel przed jego zbudowaniem. Można przekazać wiele celów
na jedno połączenie Cenny.

env.Prepend(key=val, [...])
Dołącza określone argumenty słów kluczowych na początek zmiennych konstrukcyjnych w
środowisko. Jeśli środowisko nie ma określonej zmiennej konstrukcyjnej,
jest po prostu dodawany do środowiska. Jeśli wartości zmiennej konstrukcyjnej i
argumenty słowa kluczowego są tego samego typu, wówczas te dwie wartości zostaną po prostu dodane
razem. W przeciwnym razie zmienna konstrukcyjna i wartość argumentu słowa kluczowego
obaj są zmuszeni do tworzenia list, a listy są dodawane razem. (Zobacz także Dodatek
metoda powyżej.)

Przykład:

env.Prepend(CCFLAGS = '-g ', FOO = ['foo.yyy'])

env.PrependENVPath(nazwa, nowa ścieżka, [nazwa środowiska, sep, usuń_istniejące])
Spowoduje to dodanie nowych elementów ścieżki do podanej ścieżki w określonym środowisku zewnętrznym
($ENW domyślnie). Spowoduje to dodanie określonej ścieżki tylko raz (pozostawiając pierwszą
napotyka i ignoruje resztę, aby zachować porządek ścieżki) i pomóc to zapewnić,
znormalizuje wszystkie ścieżki (używając os.path.normpath i os.path.normcase). To również może
obsłużyć przypadek, w którym podana stara zmienna ścieżki jest listą, a nie ciągiem znaków, in
w takim przypadku zamiast ciągu zostanie zwrócona lista.

If usuń_istniejące wynosi 0, wówczas dodanie ścieżki, która już istnieje, nie spowoduje jej przeniesienia
początek; pozostanie tam, gdzie jest na liście.

Przykład:

drukuj „przed:”, env [„ENV” [„INCLUDE”]
include_path = '/foo/bar:/foo'
env.PrependENVPath('INCLUDE', include_path)
print 'po:',env['ENV']['INCLUDE']

Powyższy przykład wydrukuje:

wcześniej: /biz:/foo
po: /foo/bar:/foo:/biz

env.PrependUnique(key=val, usuń_istniejące=0, [...])
Dołącza określone argumenty słów kluczowych na początek zmiennych konstrukcyjnych w
środowisko. Jeśli środowisko nie ma określonej zmiennej konstrukcyjnej,
jest po prostu dodawany do środowiska. Jeśli zmienna konstrukcyjna, do której jest dołączona
jest listą, wówczas będą nią wszelkie wartości, które już istnieją w zmiennej konstrukcyjnej nie
zostać ponownie dodany do listy. Jeśli jednak Delete_existing ma wartość 1, istniejące pasujące wartości
są usuwane jako pierwsze, więc istniejące wartości na liście argumentów są przenoszone na początek listy.

Przykład:

env.PrependUnique(CCFLAGS = '-g', FOO = ['foo.yyy'])

Postęp (wywoływalny, [interwał]), Postęp (string, [interwał, plik, nadpisanie]),
Postęp(list_of_strings, [interwał, plik, nadpisanie])
Umożliwia SCons pokazanie postępu podczas kompilacji poprzez wyświetlenie ciągu znaków lub wywołanie
funkcja podczas oceny węzłów (np. plików).

Jeśli pierwszy określony argument jest wywoływalny w języku Python (funkcja lub obiekt, który ma
a __połączenie__()), funkcja będzie wywoływana raz na każdy czas interwał razy węzeł
oceniane. Do wywołania zostanie przekazany oceniony węzeł jako jedyny argument. (Dla
przyszłą kompatybilność, dobrym pomysłem jest dodanie *args i **kw jako argumentów do pliku
funkcja lub metoda. Zapobiegnie to złamaniu kodu, jeśli SCons kiedykolwiek zmieni plik
interfejs, aby w przyszłości wywołać funkcję z dodatkowymi argumentami.)

Przykład prostej niestandardowej funkcji postępu, która wypisuje ciąg znaków zawierający
Nazwa węzła co 10 węzłów:

def my_progress_function(węzeł, *args, **kw):
print 'Oceniam węzeł %s!' %węzeł
Postęp(moja_funkcja_postępu, interwał=10)

Bardziej skomplikowany przykład niestandardowego obiektu wyświetlania postępu, który drukuje ciąg znaków
zawierający liczbę każdych 100 ocenianych węzłów. Zwróć uwagę na użycie \r (powrót karetki)
na końcu, aby ciąg znaków nadpisał się na wyświetlaczu:

import sys
klasa ProgressCounter(obiekt):
liczba = 0
def __call__(self, węzeł, *args, **kw):
self.count += 100
sys.stderr.write('Ocenione %s węzłów\r' % self.count)
Postęp(LicznikProgress(), interwał=100)

Jeśli pierwszy argument Postęp jest ciągiem, ciąg będzie wyświetlany co
interwał oceniane węzły. Domyślnie ciąg znaków jest wypisywany na standardowe wyjście; jakiś
alternatywny strumień wyjściowy można określić za pomocą argumentu plik=. Poniższe będą
wypisz serię kropek na wyjściu błędu, jedna kropka na każde 100 ocenionych węzłów:

import sys
Postęp('.', interwał=100, plik=sys.stderr)

Jeśli ciąg zawiera dosłowny podciąg $CEL, zostanie ono zastąpione przez
Węzeł. Należy pamiętać, że ze względu na wydajność tak jest nie zwykła zmienna SCons
podstawienie, więc nie można używać innych zmiennych ani używać nawiasów klamrowych. Następujące
przykład wydrukuje nazwę każdego ocenianego węzła, używając \r (powrót karetki) do
powoduje zastąpienie każdej linii następną linią oraz argument słowa kluczowego overwrite=
aby upewnić się, że poprzednio wydrukowana nazwa pliku została nadpisana spacjami:

import sys
Postęp('$TARGET\r', nadpisanie=prawda)

Jeśli pierwszy argument do Postęp jest listą ciągów, następnie każdy ciąg na liście
będą wyświetlane rotacyjnie co interwał oceniane węzły. Można to wykorzystać
zaimplementować „pokrętło” na ekranie użytkownika w następujący sposób:

Postęp(['-\r', '\\\r', '|\r', '/\r'], interwał=5)

Pseudo(cel, ...), środowisko.Pseudo(cel, ...)
Oznacza to, że każdy dany cel nie powinny być tworzone przez regułę kompilacji i if
cel zostanie utworzony, zostanie wygenerowany błąd. Jest to podobne do gnu make
Cel .PHONY. Jednak w zdecydowanej większości przypadków an Alias jest bardziej odpowiednie.
W jednym wywołaniu można przekazać wiele celów Rzekomy.

środowisko.RCS()
Funkcja fabryczna, która zwraca obiekt Builder, z którego można pobrać pliki źródłowe
RCS. Zwrócony Builder ma zostać przekazany do Kod źródłowy funkcjonować:

Ta funkcja jest przestarzała. Szczegóły znajdziesz we wpisie dot Kod źródłowy funkcja.

Przykłady:

env.SourceCode('.', env.RCS())

Pamiętaj, że scons automatycznie pobierze pliki źródłowe z podkatalogów RCS, więc
skonfigurowanie RCS, jak pokazano w powyższym przykładzie, powinno być konieczne tylko wtedy, gdy
pobierają z plików RCS,v w tym samym katalogu, co pliki źródłowe, lub jeśli
należy wyraźnie określić RCS dla konkretnego podkatalogu.

env.Replace(key=val, [...])
Zastępuje zmienne konstrukcyjne w środowisku określonym słowem kluczowym
argumenty.

Przykład:

env.Replace(CCFLAGS = '-g', FOO = 'foo.xxx')

Repozytorium(katalog), env.Repository(katalog)
Określa, że katalog to repozytorium, w którym należy wyszukiwać pliki. Wiele połączeń do
Magazyn są legalne i każde z nich dodaje się do listy repozytoriów, które będą
wyszukiwane.

Dla sconsa repozytorium jest kopią drzewa źródłowego, zaczynając od katalogu najwyższego poziomu
down, który może zawierać zarówno pliki źródłowe, jak i pliki pochodne, które można wykorzystać do kompilacji
cele w lokalnym drzewie źródłowym. Przykładem kanonicznym byłoby oficjalne źródło
drzewo utrzymywane przez integratora. Jeśli repozytorium zawiera pliki pochodne, wówczas plik
pliki pochodne powinny zostać zbudowane przy użyciu scons, aby repozytorium zawierało plik
niezbędne informacje dotyczące podpisu, aby umożliwić oszustom zorientowanie się, kiedy jest to właściwe
użyj kopii repozytorium pliku pochodnego, zamiast budować go lokalnie.

Należy pamiętać, że jeśli w repozytorium istnieje już aktualny plik pochodny, narzędzie scons to zrobi nie
wykonaj kopię w lokalnym drzewie katalogów. Aby zagwarantować, że lokalna kopia będzie
zostać wykonane, użyj miejscowy Metoda.

Requires(cel, warunek wstępny), env.Requires(cel, warunek wstępny)
Określa relację dotyczącą tylko kolejności między określonymi plikami docelowymi a plikiem
określone pliki wymagań wstępnych. Wstępnie wymagane pliki zostaną (prze)budowane, jeśli
niezbędny, zanim plik(i) docelowy, ale plik(i) docelowy w rzeczywistości nie są od niego zależne
wymagania wstępne i nie zostaną odbudowane tylko dlatego, że pliki wymagań wstępnych
zmienić.

Przykład:

env.Requires('foo', 'plik-który-należy-zbudować-przed-foo')

Return([vars..., stop=])
Domyślnie powoduje to zatrzymanie przetwarzania bieżącego pliku SConscript i powrót do pliku
wywołując plik SConscript wartości zmiennych wymienionych w pliku Vars ciąg
argumenty. Można przekazać wiele ciągów zawierających nazwy zmiennych Powrót, Każdy
ciągi znaków zawierające białe znaki

Opcjonalny argument słowa kluczowego stop= może zostać ustawiony na wartość fałszywą, aby kontynuować przetwarzanie
reszta pliku SConscript po Powrót dzwonić. To było zachowanie domyślne
przed SCons 0.98. Jednak zwrócone wartości są nadal wartościami metody
zmienne w nazwie Vars w punkcie Powrót nazywa się.

Przykłady:

# Zwraca bez zwracania wartości.
Powrót()

# Zwraca wartość zmiennej Pythona „foo”.
Powrót("foo")

# Zwraca wartości zmiennych Pythona „foo” i „bar”.
Return("foo", "pasek")

# Zwraca wartości zmiennych Pythona „val1” i „val2”.
Return('wartość1 wartość2')

Skaner (funkcja, [argument, klucze, funkcja_ścieżki, klasa_węzła, fabryka_węzła, sprawdzenie_skanowania,
rekurencyjne]), env.Scanner(funkcja, [argument, klucze, funkcja_ścieżki, klasa_węzła,
node_factory, scan_check, rekurencyjne])
Tworzy obiekt Scanner dla określonego funkcjonować. Zobacz sekcję „Skaner
Obiekty” poniżej, aby uzyskać pełne wyjaśnienie argumentów i zachowań.

środowisko.SCCS()
Funkcja fabryczna, która zwraca obiekt Builder, z którego można pobrać pliki źródłowe
SCCS. Zwrócony Builder ma zostać przekazany do Kod źródłowy funkcja.

Przykład:

env.SourceCode('.', env.SCCS())

Pamiętaj, że scons automatycznie pobierze pliki źródłowe z podkatalogów SCCS, więc
skonfigurowanie SCCS, jak pokazano w powyższym przykładzie, powinno być konieczne tylko wtedy, gdy
pobierasz z plików s.SCCS w tym samym katalogu, co pliki źródłowe, lub jeśli
należy wyraźnie określić SCCS dla określonego podkatalogu.

SConscript(skrypty, [eksport, katalog_wariantu, duplikat]), env.SConscript(skrypty, [eksport,
katalog_wariantu, duplikat]), SConscript(katalogi=katalogi podrzędne, [nazwa=skrypt, eksport, katalog_wariantu,
duplikat]), env.SConscript(katalogi=katalogi podrzędne, [nazwa=skrypt, eksport, katalog_wariantu, duplikat])
To mówi sconsowi, aby wykonał jeden lub więcej pomocniczych plików SConscript (konfiguracyjnych).
Wszelkie zmienne zwrócone przez wywołany skrypt using Powrót zostanie zwrócony przez połączenie do
S Poborowy. Istnieją dwa sposoby wywoływania S Poborowy funkcja.

Pierwszy sposób, w jaki możesz zadzwonić S Poborowy polega na wyraźnym określeniu jednego lub więcej skrypty as
pierwszy argument. Pojedynczy skrypt może być określony jako ciąg znaków; wiele skryptów
musi być określony jako lista (jawnie lub utworzona przez funkcję taką jak
Split). Przykłady:

SConscript('SConscript') # uruchamia SConscript w bieżącym katalogu
SConscript('src/SConscript') # uruchamia SConscript w katalogu src
SConscript(['src/SConscript', 'doc/SConscript'])
config = SConscript('MyConfig.py')

Drugi sposób, w jaki możesz zadzwonić S Poborowy polega na określeniu listy nazw (pod)katalogów jako
katalog=podkatalogi argument słowa kluczowego. W takim przypadku scons domyślnie wykona a
pomocniczy plik konfiguracyjny o nazwie SConscript w każdym z określonych katalogów.
Możesz określić nazwę inną niż SConscript, podając opcjonalną nazwę=scenariusz
argument słowa kluczowego. Pierwsze trzy przykłady poniżej mają taki sam efekt jak pierwszy
trzy przykłady powyżej:

SConscript(dirs='.') # uruchom SConscript w bieżącym katalogu
SConscript(dirs='src') # uruchom SConscript w katalogu src
SConscript(dirs=['src', 'doc'])
SConscript(dirs=['sub1', 'sub2'], name='MójSConscript')

Opcjonalne eksport argument udostępnia listę nazw zmiennych lub słownik
nazwane wartości, które mają zostać wyeksportowane do pliku skrypt(y). Zmienne te są eksportowane lokalnie tylko do
określony skrypt(y)i nie mają wpływu na globalną pulę zmiennych używanych przez
Export funkcjonować. Spółka zależna skrypt(y) musi użyć import funkcja importowania
zmienne. Przykłady:

foo = SConscript('sub/SConscript', eksport='env')
SConscript('katalog/SConscript', eksport=['env', 'zmienna'])
SConscript(dirs='podkatalog', eksport='zmienna env')
SConscript(dirs=['jeden', 'dwa', 'trzy'], eksport='shared_info')

Jeśli opcjonalne wariant_katalog argument jest obecny, powoduje on efekt równoważny do
WariantDir metoda opisana poniżej. (Jeśli wariant_katalog nie jest obecny,

duplikat argument jest ignorowany.) The wariant_katalog argument jest interpretowany w odniesieniu do
katalog wywołującego pliku SConscript. Zobacz opis WariantDir
poniżej, aby uzyskać dodatkowe informacje i ograniczenia.

If wariant_katalog jest obecny, katalog źródłowy jest katalogiem, w którym znajduje się plik
Plik SConscript znajduje się i jest oceniany tak, jakby znajdował się w pliku
wariant_katalog katalog:

SConscript('src/SConscript', wariant_katalog = 'kompilacja')

odpowiada

Katalog Wariantu('kompilacja', 'źródło')
SConscript('kompilacja/SConscript')

Ten późniejszy paradygmat jest często używany, gdy źródła znajdują się w tym samym katalogu co plik
SKonstrukcja:

SConscript('SConscript', wariant_dir = 'kompilacja')

odpowiada

Katalog Wariantu('kompilacja', '.')
SConscript('kompilacja/SConscript')

Oto kilka złożonych przykładów:

# zbierz informacje konfiguracyjne i użyj ich do zbudowania src i doc
Shared_info = SConscript('MyConfig.py')
SConscript('src/SConscript', eksport='shared_info')
SConscript('doc/SConscript', eksport='shared_info')

# Kompiluj wersje debugujące i produkcyjne. S Poborowy
# może użyć Dir('.').path do określenia wariantu.
SConscript('SConscript', wariant_dir='debug', duplikat=0)
SConscript('SConscript', wariant_dir='prod', duplikat=0)

# Kompiluj wersje debugujące i produkcyjne. S Poborowy
# to przekazywane flagi do użycia.
opts = { 'CPPDEFINES': ['DEBUG'], 'CCFLAGS': '-pgdb' }
SConscript('SConscript', wariant_dir='debug', duplikat=0, eksport=opcje)
opts = { 'CPPDEFINES': ['NODEBUG'], 'CCFLAGS': '-O' }
SConscript('SConscript', wariant_dir='prod', duplikat=0, eksport=opcje)

# buduj wspólną dokumentację i kompiluj dla różnych architektur
SConscript('doc/SConscript', wariant_katalog='kompilacja/doc', duplikat=0)
SConscript('src/SConscript', wariant_katalog='kompilacja/x86', duplikat=0)
SConscript('src/SConscript', wariant_katalog='kompilacja/ppc', duplikat=0)

SConscriptChdir(wartość), env.SConscriptChdir(wartość)
Domyślnie scons zmienia swój katalog roboczy na katalog, w którym znajduje się każdy
zależny plik SConscript żyje. To zachowanie można wyłączyć, określając:

SCConscriptChdir(0)
env.SConscriptChdir(0)

w takim przypadku scons pozostaną w katalogu najwyższego poziomu podczas czytania całego skryptu SConscript
akta. (Może to być konieczne podczas budowania z repozytoriów, gdy wszystkie pliki
katalogi, w których można znaleźć pliki SConscript, niekoniecznie istnieją lokalnie.)
Możesz włączyć i wyłączyć tę możliwość, wywołując wielokrotnie funkcję SConscriptChdir().

Przykład:

env = Środowisko()
SCConscriptChdir(0)
SConscript('foo/SConscript') # nie przekieruje na foo
env.SConscriptChdir(1)
SConscript('bar/SConscript') # przekieruje na bar

SConsignFile([plik, moduł_dbm]), env.SConsignFile([plik, moduł_dbm])
To mówi sconsowi, aby przechowywał wszystkie podpisy plików w określonej bazie danych filet, Jeśli
filet nazwa jest pominięta, domyślnie używany jest .sconsign. (Rzeczywiste nazwy plików zapisane w
dysk może mieć odpowiedni przyrostek dołączony przez
moduł_dbm.) Gdyby filet nie jest bezwzględną nazwą ścieżki, plik jest w niej umieszczany
jako plik SConstruct najwyższego poziomu.

If filet ma wartość Brak, wówczas scons będzie przechowywać podpisy plików w oddzielnym pliku .sconsign
każdym katalogu, a nie w jednym globalnym pliku bazy danych. (Było to domyślne zachowanie wcześniej
do SCons 0.96.91 i 0.97.)

Opcjonalne moduł_dbm argumentu można użyć do określenia modułu bazy danych Pythona
Domyślnie używany jest niestandardowy moduł SCons.dblite, który korzysta z wyselekcjonowanych danych języka Python
struktur i który działa na wszystkich wersjach Pythona.

Przykłady:

# Jawnie przechowuje podpisy w „.sconsign.dblite”
# w katalogu SConstruct najwyższego poziomu (plik
# zachowanie domyślne).
SConsignFile()

# Przechowuje podpisy w pliku „etc/scons-signatures”
# względem katalogu SConstruct najwyższego poziomu.
SConsignFile("etc/scons-podpisy")

# Przechowuje podpisy w podanej bezwzględnej nazwie pliku.
SConsignFile("/home/me/SCons/podpisy")

# Przechowuje podpisy w oddzielnym pliku .sconsign
# w każdym katalogu.
SConsignFile (Brak)

env.SetDefault(klucz=wartość, [...])
Ustawia zmienne konstrukcyjne na wartości domyślne określone za pomocą argumentów słów kluczowych if
(i tylko wtedy, gdy) zmienne nie są jeszcze ustawione. Poniższe stwierdzenia są
równowartość:

env.SetDefault(FOO = 'foo')

jeśli 'FOO' nie jest w env: env['FOO'] = 'foo'

SetOption(nazwa, wartość), env.SetOption(nazwa, wartość)
Ta funkcja umożliwia ustawienie wybranego podzbioru opcji wiersza poleceń scons
z pliku SConscript. Obsługiwane opcje to:

kleń
co odpowiada -c, --clean i --remove;

duplikat
co odpowiada --duplicate;

pomoc
co odpowiada -h i --help;

implicit_cache
co odpowiada --implicit-cache;

max_drift
co odpowiada --max-drift;

nie_exec
co odpowiada -n, --no-exec, --just-print, --dry-run i --recon;

liczba_prac
co odpowiada -j i --jobs;

przypadkowy
co odpowiada --random; I

rozmiar_stosu
co odpowiada --stack-size.

Informacje na temat tego obiektu można znaleźć w dokumentacji odpowiedniego obiektu wiersza poleceń
każdą konkretną opcję.

Przykład:

SetOption('max_drift', 1)

SideEffect(efekt_boczny, cel), env.SideEffect(efekt_boczny, cel)
Deklaruje efekt uboczny jako skutek uboczny budowy cel. Zarówno efekt uboczny i cel
może być listą, nazwą pliku lub węzłem. Efektem ubocznym jest utworzony plik docelowy
lub aktualizowane jako efekt uboczny budowania innych celów. Na przykład plik PDB systemu Windows
jest tworzony jako efekt uboczny budowania plików .obj dla biblioteki statycznej, oraz
tworzone są różne pliki dziennika, aktualizowane jako skutki uboczne różnych poleceń TeX-a. Jeśli
target jest efektem ubocznym wielu poleceń kompilacji, scons zapewni, że tylko jedno
zestaw poleceń jest wykonywany jednocześnie. W związku z tym wystarczy zastosować tylko tę metodę
dla celów efektów ubocznych, które są budowane w wyniku wielu poleceń kompilacji.

Ponieważ wiele poleceń kompilacji może aktualizować ten sam plik efektów ubocznych, domyślnie plik
efekt uboczny celem jest nie automatycznie usuwane, gdy cel zostaje usunięty przez -c
opcja. (Należy jednak pamiętać, że efekt uboczny mogą zostać usunięte w ramach czyszczenia
katalog, w którym się znajduje.) Jeśli chcesz się upewnić, że efekt uboczny jest czyszczony
kiedykolwiek konkretny cel jest czyszczone, należy to wyraźnie określić za pomocą parametru Czyszczenie
or otoczenie.Czyste funkcja.

SourceCode(wpisy, konstruktor), env.SourceCode(wpisy, konstruktor)
Ta funkcja i powiązane z nią funkcje fabryczne są przestarzałe. Nie ma
wymiana. Zamierzonym zastosowaniem było synchronizowanie lokalnego drzewa z archiwum, ale w
w rzeczywistości funkcja powoduje jedynie pobranie archiwum przy pierwszym uruchomieniu.
Synchronizację z archiwum najlepiej przeprowadzić poza SCons.

Zorganizuj pobranie nieistniejących plików źródłowych z modułu zarządzania kodem źródłowym
system przy użyciu określonych budowniczy. Określony wpisy może być węzłem, ciągiem znaków lub
lista obu i może reprezentować pojedyncze pliki źródłowe lub katalogi, w których
można znaleźć pliki źródłowe.

W przypadku nieistniejących plików źródłowych scons przeszuka drzewo katalogów i użyje metody
drugim Kod źródłowy budowniczy, którego znajdzie. Określony budowniczy może mieć wartość Brak, w takim przypadku
scons nie użyje kreatora do pobrania plików źródłowych dla określonego wpisy, nawet jeśli
a Kod źródłowy builder został określony dla katalogu znajdującego się wyżej w drzewie.

scons domyślnie pobierze pliki z podkatalogów SCCS lub RCS bez wyraźnego wskazania
konfiguracja. Wyszukiwanie niezbędnych danych zajmuje trochę więcej czasu
pliki zarządzania kodem źródłowym na dysku. Możesz uniknąć tych dodatkowych wyszukiwań i przyspieszyć
swoją kompilację, wyłączając te wyszukiwania w następujący sposób:

env.SourceCode('.', Brak)

Należy pamiętać, że jeśli określono budowniczy to taki, który tworzysz ręcznie, musi mieć
powiązane środowisko konstrukcyjne do użycia podczas pobierania pliku źródłowego.

scons udostępnia zestaw gotowych funkcji fabrycznych, które zwracają odpowiednie konstruktory
różne popularne systemy zarządzania kodem źródłowym. Kanoniczne przykłady inwokacji
zawierać:

env.SourceCode('.', env.BitKeeper('/usr/local/BKsources'))
env.SourceCode('src', env.CVS('/usr/local/CVSROOT'))
env.SourceCode('/', env.RCS())
env.SourceCode(['f1.c', 'f2.c'], env.SCCS())
env.SourceCode('no_source.c', Brak)

SourceSignatures(typ), env.SourceSignatures(type)
Uwaga: chociaż nie jest to jeszcze oficjalnie przestarzałe, użycie tej funkcji już tak
zniechęcony. Zobacz Decider funkcję, aby uzyskać bardziej elastyczny i prosty sposób
skonfigurować proces decyzyjny SCons.

Kurs Podpisy źródłowe funkcja mówi sconsowi, jak zdecydować, czy plik źródłowy (plik, który
nie jest zbudowany z żadnych innych plików) uległ zmianie od czasu, gdy był do tego przyzwyczajony po raz ostatni
zbuduj konkretny plik docelowy. Dopuszczalne wartości to MD5 lub znacznik czasu.

Jeśli używana jest metoda środowiskowa, używany jest tylko określony typ podpisu źródłowego
przy podejmowaniu decyzji, czy cele zbudowane w tym środowisku są aktualne, czy też muszą być
odbudowany. Jeśli używana jest funkcja globalna, określony typ podpisu źródłowego
staje się wartością domyślną używaną przy wszystkich decyzjach dotyczących aktualności elementów docelowych.

MD5 oznacza, że ​​scons decyduje, że plik źródłowy uległ zmianie, jeśli jego suma kontrolna MD5
zawartość uległa zmianie od czasu, gdy ostatni raz została użyta do przebudowania określonego celu
plik.

znacznik czasu oznacza, że ​​scons decyduje, że plik źródłowy uległ zmianie, jeśli jego znacznik czasu
(czas modyfikacji) zmienił się od czasu ostatniego użycia go do przebudowy a
konkretny plik docelowy. (Zauważ, że chociaż jest to podobne do zachowania Make,
domyślnie zostanie również odbudowany, jeśli zależność jest starszych niż ostatnim razem
użyte do odbudowania pliku docelowego.)

Nie ma różnicy między tymi dwoma zachowaniami w Pythonie wartość obiekty węzłowe.

Obliczenia podpisów MD5 zajmują więcej czasu, ale są dokładniejsze niż znacznik czasu
podpisy. Wartość domyślna to MD5.

Zauważ, że domyślna Podpisy docelowe ustawienie (patrz poniżej) polega na użyciu tego
Podpisy źródłowe ustawienie dla dowolnych plików docelowych, które są używane do budowania innego celu
akta. W związku z tym zmiana wartości Podpisy źródłowe będzie domyślnie mieć wpływ
aktualna decyzja dla wszystkich plików w kompilacji (lub wszystkich plików zbudowanych z określonym
środowisko budowlane, kiedy env.SourceSignatures jest używany).

Podziel(arg), otocz.Podziel(arg)
Zwraca listę nazw plików lub innych obiektów. Jeśli arg jest ciągiem znaków, zostanie on podzielony
ciągi białych znaków w ciągu, co ułatwia pisanie długich znaków
listy nazw plików. Jeśli arg jest już listą, lista zostanie zwrócona nietknięta. Jeśli
arg jest obiektem dowolnego innego typu, zostanie zwrócony jako lista zawierająca tylko
obiekt.

Przykład:

pliki = Split("f1.c f2.c f3.c")
pliki = env.Split("f4.c f5.c f6.c")
pliki = Podziel("""
f7.c
f8.c
f9.c
„””)

env.subst(input, [surowe, docelowe, źródło, konw.])
Wykonuje interpolację zmiennej konstrukcyjnej na określonym ciągu lub sekwencji
argument wkład.

Domyślnie początkowe lub końcowe białe znaki zostaną usunięte z wyniku. i wszystkich
sekwencje białych znaków zostaną skompresowane do pojedynczego znaku spacji. Dodatkowo,
wszelkie sekwencje znaków $( i $) zostaną usunięte ze zwróconego ciągu znaków, The
fakultatywny surowy argument może być ustawiony na 1, jeśli chcesz zachować białe znaki i $(-$)
sekwencje. ten surowy argument może być ustawiony na 2, jeśli chcesz usunąć wszystkie znaki
pomiędzy dowolnymi parami $( i $) (tak jak ma to miejsce w przypadku obliczania podpisu).

Jeżeli danymi wejściowymi jest sekwencja (lista lub krotka), poszczególne elementy sekwencji
zostanie rozwinięta, a wyniki zostaną zwrócone w postaci listy.

Opcjonalne cel i źródło Argumenty słów kluczowych muszą być ustawione na listy elementów docelowych i
odpowiednio węzły źródłowe, jeśli chcesz $CEL, CELE $, $ŹRÓDŁO i $ŹRÓDŁA do
być dostępny do rozbudowy. Jest to zwykle konieczne, jeśli dzwonisz otoczenie.subst
z poziomu funkcji Pythona używanej jako akcja SCons.

Zwracane wartości ciągu lub elementy sekwencji są konwertowane na ich ciąg
reprezentacja domyślnie. Opcjonalne konw argument może określać konwersję
funkcja, która będzie używana zamiast wartości domyślnej. Na przykład, jeśli chcesz Python
obiekty (w tym węzły SCons), które mają być zwracane jako obiekty Pythona, możesz użyć metody
Python — idiom do przekazywania nienazwanej funkcji, która po prostu zwraca jej nieprzekonwertowaną wartość
argumenty.

Przykład:

print env.subst("Kompilator C to: $CC")

def kompilacja (cel, źródło, środowisko):
katalog źródłowy = env.subst("${SOURCE.srcdir}",
cel=cel,
źródło=źródło)

węzły_źródłowe = env.subst('$EXPAND_TO_NODELIST',
konv=lambda x: x)

Tag(węzeł, tagi)
Adnotuje węzły pliku lub katalogu z informacjami o tym, jak Pakiet Budowniczy
powinien spakować te pliki lub katalogi. Wszystkie tagi są opcjonalne.

Przykłady:

# upewnia się, że zbudowana biblioteka zostanie zainstalowana z plikiem 0644
# tryb dostępu
Tag(Biblioteka( 'lib.c' ), UNIX_ATTR="0644" )

# oznacza plik2.txt jako plik dokumentacji
Tag( 'plik2.txt', DOC )

TargetSignatures(typ), env.TargetSignatures(type)
Uwaga: chociaż nie jest to jeszcze oficjalnie przestarzałe, użycie tej funkcji już tak
zniechęcony. Zobacz Decider funkcję, aby uzyskać bardziej elastyczny i prosty sposób
skonfigurować proces decyzyjny SCons.

Kurs Podpisy docelowe funkcja mówi sconsowi, jak zdecydować, czy plik docelowy (plik, który
is zbudowany z innych plików) uległ zmianie od czasu, gdy ostatni raz był używany do kompilacji
jakiś inny plik docelowy. Wartości prawne to „kompilacja”; „treść” (lub jej synonim „MD5”);
"znak czasu"; lub „źródło”.

Jeśli używana jest metoda środowiskowa, używany jest tylko określony typ podpisu docelowego
dla celów zbudowanych w tym środowisku. Jeśli używana jest funkcja globalna, określony
typ podpisu staje się domyślnym używanym dla wszystkich plików docelowych, które nie mają rozszerzenia
jawny typ podpisu docelowego określony dla ich środowisk.

„treść” (lub jej synonim „MD5”) oznacza, że ​​scons decyduje, że plik docelowy uległ zmianie, jeśli
suma kontrolna MD5 jej zawartości zmieniła się od czasu, gdy była do tego przyzwyczajona po raz ostatni
odbuduj inny plik docelowy. Oznacza to, że scons otworzy sumę MD5
target po ich zbudowaniu i może zdecydować, że nie ma potrzeby przebudowywania
„dalsze” pliki docelowe, jeśli plik został odbudowany z dokładnie taką samą zawartością jak plik
ostatni raz.

„znacznik czasu” oznacza, że ​​scons decyduje, że plik docelowy uległ zmianie, jeśli jego znacznik czasu
(czas modyfikacji) uległ zmianie od czasu, gdy ostatni raz był używany do przebudowy innego
plik docelowy. (Zauważ, że chociaż jest to domyślnie podobne do zachowania Make
zostanie również odbudowany, jeśli zależność jest starszych niż ostatnim razem, do którego był przyzwyczajony
odbuduj plik docelowy.)

„źródło” oznacza, że ​​scons decyduje, że plik docelowy został zmieniony zgodnie z określeniem
odpowiedni Podpisy źródłowe ustawienie („MD5” lub „znacznik czasu”). Oznacza to, że scons
potraktuje wszystkie pliki wejściowe jako docelowe w ten sam sposób, niezależnie od tego, czy są
źródłowych lub zostały zbudowane z innych plików.

„kompilacja” oznacza, że ​​scons decyduje, że plik docelowy uległ zmianie, jeśli został odbudowany
tego wywołania lub jeśli jego treść lub znacznik czasu uległy zmianie zgodnie z określeniem
odpowiedni Podpisy źródłowe ustawienie. Spowoduje to „propagowanie” statusu odbudowanego pliku
tak, że inne pliki docelowe „dalszych” plików docelowych będą zawsze odbudowywane, nawet jeśli ich zawartość
lub znacznik czasu nie uległ zmianie.

Podpisy „kompilacyjne” są najszybsze, ponieważ podpisy „treści” (lub „MD5”) trwają dłużej
obliczenia, ale są dokładniejsze niż podpisy „znacznika czasu” i mogą zapobiegać
niepotrzebne „dalsze” przebudowy, gdy plik docelowy jest przebudowywany dokładnie w taki sam sposób
zawartość jak w poprzedniej wersji. Ustawienie „źródło” zapewnia najbardziej spójne
zachowanie, gdy inne pliki docelowe mogą zostać odbudowane zarówno z danych źródłowych, jak i docelowych
akta. Wartość domyślna to „źródło”.

Ponieważ ustawienie domyślne to „źródło”, użycie Podpisy źródłowe jest ogólnie
lepiej niż Podpisy docelowe, tak aby aktualna decyzja była spójna dla
wszystkie pliki (lub wszystkie pliki zbudowane w określonym środowisku konstrukcyjnym). Zastosowanie
Podpisy docelowe zapewnia specyficzną kontrolę nad wpływem zbudowanych plików docelowych na ich pliki
zależności „dalsze”.

Narzędzie(string, [ścieżka narzędzia, **kw]), środowisko.Narzędzie(string, [ścieżka narzędzia, **kw])
Kurs Narzędzie forma funkcji zwraca wywoływalny obiekt, którego można użyć do inicjalizacji
środowisko konstrukcyjne przy użyciu słowa kluczowego Tools metody Environment(). The
obiekt można wywołać ze środowiskiem konstrukcyjnym jako argumentem, w takim przypadku
obiekt doda niezbędne zmienne do środowiska konstrukcyjnego i nazwę
narzędzia zostanie dodany do $NARZĘDZIA zmienna konstrukcyjna.

Dodatkowe argumenty słów kluczowych są przekazywane do narzędzia Generować() metoda.

Przykłady:

env = Środowisko(narzędzia = [Narzędzie('msvc') ])

env = Środowisko()
t = Narzędzie('msvc')
t(env) # dodaje „msvc” do zmiennej TOOLS
u = Narzędzie('opengl', ścieżka narzędzia = ['narzędzia'])
u(env) # dodaje „opengl” do zmiennej TOOLS

Kurs środowisko.Narzędzie forma funkcji stosuje wywoływalny obiekt dla określonego narzędzia
ciąg do środowiska, za pośrednictwem którego wywołano metodę.

Dodatkowe argumenty słów kluczowych są przekazywane do narzędzia Generować() metoda.

środowisko.Narzędzie('gcc')
env.Tool('opengl', ścieżka narzędzia = ['kompilacja/narzędzia'])

Wartość(wartość, [wartość_budowana]), wartość otoczenia(wartość, [wartość_budowana])
Zwraca obiekt Node reprezentujący określoną wartość języka Python. Można używać węzłów wartości
jako zależności celów. Jeśli wynik wywołania str(wartość) zmiany pomiędzy SCons
działa, dowolne cele w zależności od wartość(wartość) zostanie odbudowany. (Jest to prawdą nawet wtedy, gdy
używając znaczników czasu, aby zdecydować, czy pliki są aktualne.) Podczas korzystania ze źródła znacznika czasu
podpisów, znaczniki czasu węzłów wartości są równe czasowi systemowemu, w którym węzeł jest
utworzony.

Zwrócony obiekt węzła wartości ma napisać() metoda, której można użyć do „budowania” a
Węzeł wartości, ustawiając nową wartość. Opcjonalne zbudowana_wartość można określić argument
kiedy tworzony jest węzeł wartości, aby wskazać, że węzeł powinien już zostać uwzględniony
"wybudowany." Istnieje odpowiednik czytać() metoda, która zwróci zbudowaną wartość
węzeł.

Przykłady:

env = Środowisko()

def utwórz(cel, źródło, środowisko):
# Funkcja zapisująca „prefiks=$SOURCE”
# ciąg do nazwy pliku określonej jako
# $CEL.
f = open(str(cel[0]), 'wb')
f.write('prefix=' + źródło[0].get_contents())

# Pobierz argument prefix=, jeśli istnieje, z polecenia
# linia i użyj / Usr / local jako domyślny.
przedrostek = ARGUMENTY.get('przedrostek', '/ Usr / local')

# Dołącz narzędzie budujące .Config() dla powyższej akcji funkcji
# do środowiska budowlanego.
env['BUILDERS']['Config'] = Konstruktor(akcja = utwórz)
env.Config(target = 'pakiet-config', źródło = Wartość (przedrostek))

def wartość_kompilacji(cel, źródło, środowisko):
# Funkcja, która „buduje” wartość Pythona poprzez aktualizację
# wartość Pythona z zawartością pliku
# określono jako źródło wywołania Buildera ($SOURCE).
cel[0].write(źródło[0].get_contents())

wyjście = env.Value('przed')
input = env.Value('po')

# Dołącz konstruktor .UpdateValue() dla powyższej funkcji
# działanie na rzecz środowiska budowlanego.
env['BUILDERS']['UpdateValue'] = Builder(action = build_value)
env.UpdateValue(target = wartość (wyjście), źródło = wartość (wejście))

Katalog Variant(katalog_wariantu, katalog_src, [duplikat]), env.KatalogVariant(katalog_wariantu, katalog_src,
[duplikować])
Użyj WariantDir funkcję tworzenia kopii źródeł w innej lokalizacji: jeśli a
imię pod wariant_katalog nie został znaleziony, ale istnieje pod katalog_src, plik lub katalog to
skopiowane do wariant_katalog. Pliki docelowe można zbudować w innym katalogu niż plik
oryginalnych źródeł, po prostu odnosząc się do źródeł (i celów) w ramach wariantu
drzewo.

WariantDir można wywołać wiele razy z tym samym katalog_src aby ustawić wiele
buduje się z różnymi opcjami (warianty). katalog_src lokalizacja musi znajdować się w lub
pod katalogiem pliku SConstruct i wariant_katalog może nie być pod spodem
katalog_src.

Domyślnym zachowaniem scons jest fizyczne duplikowanie plików źródłowych w pliku
drzewo wariantów. Zatem kompilacja przeprowadzona w drzewie wariantów będzie gwarantowana
identyczny z kompilacją wykonaną w drzewie źródłowym, nawet jeśli są to pośrednie pliki źródłowe
są generowane podczas kompilacji lub wyszukiwane są przez preprocesory lub inne skanery
plików względem pliku źródłowego lub poszczególnych kompilatorów lub innych wywoływanych narzędzi
zakodowany na stałe, aby umieszczać pliki pochodne w tym samym katalogu, co pliki źródłowe.

Jeśli to możliwe na platformie, duplikacja odbywa się poprzez linkowanie, a nie
biurowy; zobacz także --duplikować opcja wiersza poleceń. Co więcej, tylko potrzebne pliki
dla kompilacji są duplikowane; nieużywane pliki i katalogi nie są obecne
in wariant_katalog.

Powielanie drzewa źródłowego można wyłączyć, ustawiając argument duplikatu na 0
(zero). Spowoduje to, że scons będą wywoływać Buildery przy użyciu nazw ścieżek plików źródłowych
in katalog_src oraz nazwy ścieżek plików pochodnych wariant_katalog. To zawsze jest więcej
wydajne niż duplikat=1 i zwykle jest bezpieczne dla większości kompilacji (ale patrz wyżej
przypadkach, które mogą powodować problemy).

Należy pamiętać, że WariantDir działa najbardziej naturalnie z pomocniczym plikiem SConscript. Jednakże,
wywołałbyś wówczas plik zależny SConscript nie w katalogu źródłowym, ale w
dotychczasowy wariant_katalog, niezależnie od wartości duplikatu. Tak się mówi sknerom
który wariant drzewa źródłowego zbudować:

# uruchom src/SConscript w dwóch wariantach katalogów
VariantDir('kompilacja/wariant1', 'źródło')
SConscript('kompilacja/wariant1/SConscript')
VariantDir('kompilacja/wariant2', 'źródło')
SConscript('kompilacja/wariant2/SConscript')

Zobacz też S Poborowy funkcję opisaną powyżej, aby uzyskać inny sposób określenia a
katalog wariantowy w połączeniu z wywoływaniem pomocniczego pliku SConscript.

Przykłady:

# używaj nazw z katalogu kompilacji, a nie z katalogu źródłowego
VariantDir('kompilacja', 'src', duplikat=0)
Program('kompilacja/prog', 'kompilacja/źródło.c')

# powoduje to utworzenie zarówno źródła, jak i dokumentów w oddzielnym poddrzewie
Katalog Wariantów('kompilacja', '.', duplikat=0)
SConscript(dirs=['kompilacja/src','kompilacja/doc'])

# taki sam jak poprzedni przykład, ale używa tylko SConscript
SConscript(dirs='src', wariant_dir='build/src', duplikat=0)
SConscript(dirs='doc', wariant_dir='build/doc', duplikat=0)

WhereIs(program, [ścieżka, tekst ścieżki, odrzucenie]), env.WhereIs(program, [ścieżka, tekst ścieżki, odrzucenie])
Wyszukuje określony plik wykonywalny program, zwracając pełną nazwę ścieżki do pliku
program, jeśli zostanie znaleziony, i zwrócenie None, jeśli nie. Wyszukuje określone ścieżkaThe
wartość PATH środowiska wywołującego (env['ENV']['PATH']) lub bieżąca ścieżka użytkownika
domyślnie zewnętrzna ŚCIEŻKA (os.environ['PATH']). W systemach Windows wyszukuje
programy wykonywalne z dowolnym rozszerzeniem plików wymienionym w określonym ścieżka dźwiękowa,
Ścieżka środowiska wywołującego (env['ENV']['PATHEXT']) lub bieżąca ścieżka użytkownika
ŚCIEŻKA (os.environ['PATHEXT']) domyślnie. Nie wybierze żadnej nazwy ścieżki ani nazw w
określony odrzucać lista, jeśli taka istnieje.

S Poborowy Zmienne
Oprócz globalnych funkcji i metod, szyderstwa obsługuje wiele języków Python
zmienne, których można użyć w plikach SConscript, aby wpłynąć na to, jak ma wyglądać kompilacja
wykonane. Dostęp do tych zmiennych można uzyskać z niestandardowych modułów Pythona, do których importujesz
plik SConscript, dodając do modułu Python:

z importu SCons.Script *

LISTA ARGL
Lista keyword=wartość argumenty określone w wierszu poleceń. Każdy element na liście
jest krotką zawierającą (keyword,wartość) argumentu. Oddzielne keyword i
wartość Dostęp do elementów krotki można uzyskać poprzez subskrypcję elementu [0] i [1] of
odpowiednio krotka.

Przykład:

wydrukuj „pierwsze słowo kluczowe, wartość =", ARGLIST[0][0], ARGLIST[0][1]
wydrukuj „drugie słowo kluczowe, wartość =", ARGLIST[1] [0], ARGLIST[1] [1]
trzecia_krotka = ARGLIST[2]
wydrukuj „trzecie słowo kluczowe, wartość =", trzecia_krotka[0], trzecia_krotka[1]
dla klucza, wartość w ARGLIST:
# klucz i wartość procesu

ARGUMENTY
Słownik wszystkich keyword=wartość argumenty określone w wierszu poleceń. The
słownik nie jest w porządku i jeśli danemu słowu kluczowemu przypisano więcej niż jedną wartość
w wierszu poleceń, ostatnia (najbardziej na prawo) wartość to ta w pliku ARGUMENTY
słownik.

Przykład:

if ARGUMENTY.get('debugowanie', 0):
env = Środowisko(CCFLAGS = „-g”)
jeszcze:
env = Środowisko()

BUILD_TARGETS
Lista celów, które szyderstwa faktycznie spróbuje zbudować, niezależnie od tego, czy
zostały one określone w wierszu poleceń lub za pośrednictwem pliku Domyślnie() funkcja lub metoda. The
elementami tej listy mogą być ciągi znaków or węzłów, więc powinieneś uruchomić listę przez
Python str funkcję, aby upewnić się, że nazwy ścieżek węzłów są konwertowane na ciągi znaków.

Ponieważ listę tę można pobrać z listy celów określonych za pomocą Domyślnie()
funkcji lub metody, zawartość listy może ulec zmianie przy każdym kolejnym wywołaniu
Domyślnie(). Zobacz DEFAULT_TARGETS listę poniżej, aby uzyskać dodatkowe informacje.

Przykład:

jeśli „foo” w BUILD_TARGETS:
print "Nie zapomnij przetestować programu `foo'!"
jeśli „specjalny/program” w BUILD_TARGETS:
SCConscript('specjalny')

Zauważ, że BUILD_TARGETS lista zawiera tylko cele oczekiwane, wymienione w wierszu poleceń
lub za pośrednictwem połączeń telefonicznych Domyślnie() funkcja lub metoda. To robi nie zawierają wszystkie zależne
cele, które zostaną zbudowane w wyniku sprawdzenia jawnie określonych celów
są aktualne.

COMMAND_LINE_TARGETS
Lista celów jawnie określonych w wierszu poleceń. Jeśli nie ma
targetów określonych w wierszu poleceń, lista jest pusta. Można to wykorzystać np
na przykład podjęcie określonych działań tylko wtedy, gdy określony cel lub cele są wyraźnie określone
jest budowane.

Przykład:

jeśli „foo” w COMMAND_LINE_TARGETS:
print "Nie zapomnij przetestować programu `foo'!"
jeśli „specjalny/program” w COMMAND_LINE_TARGETS:
SCConscript('specjalny')

DEFAULT_TARGETS
Lista celu węzły które zostały określone za pomocą Domyślnie() funkcja lub
metoda. Elementy listy są węzłami, więc musisz je uruchomić za pomocą Pythona
str funkcja, aby uzyskać nazwę ścieżki dla każdego węzła.

Przykład:

drukuj str(DEFAULT_TARGETS[0])
jeśli „foo” na mapie (str, DEFAULT_TARGETS):
print "Nie zapomnij przetestować programu `foo'!"

Zawartość DEFAULT_TARGETS zmiana listy przy każdym kolejnym wywołaniu metody
Domyślnie() funkcja:

drukuj mapę(str, DEFAULT_TARGETS) # pierwotnie []
Domyślnie('foo')
drukuj mapę(str, DEFAULT_TARGETS) # teraz węzeł ['foo']
Domyślny („pasek”)
drukuj mapę(str, DEFAULT_TARGETS) # teraz węzeł ['foo', 'bar']
Domyślny (brak)
drukuj mapę(str, DEFAULT_TARGETS) # wróć do []

W związku z tym koniecznie skorzystaj DEFAULT_TARGETS dopiero po wykonaniu wszystkich swoich Domyślnie()
wywołania lub po prostu uważaj na kolejność tych instrukcji w plikach SConscript
dzięki czemu nie będziesz szukać konkretnego domyślnego celu, zanim zostanie on faktycznie dodany
Lista.

Budownictwo Zmienne
Ze środowiskiem konstrukcyjnym powiązany jest słownik Budowa zmienne To jest
używane przez wbudowane lub dostarczone przez użytkownika reguły kompilacji. Zmienne konstrukcyjne muszą być zgodne z tym samym
zasady dla identyfikatorów Pythona: znak początkowy musi być podkreśleniem lub literą,
po którym następuje dowolna liczba podkreśleń, liter lub cyfr.

Liczba przydatnych zmiennych konstrukcyjnych jest automatycznie definiowana przez scons dla każdej z nich
obsługiwana platforma, a dodatkowe zmienne konstrukcyjne mogą być definiowane przez użytkownika. The
poniżej znajduje się lista automatycznie zdefiniowanych zmiennych konstrukcyjnych:

__FLGI WERSJI LDMODUŁU
Ta zmienna konstrukcyjna jest automatycznie wprowadzana $_LDMODULEVERSIONFLAGS if
$LDMODULEVERSION jest ustawiony. W przeciwnym razie zwraca pusty ciąg znaków.

__SHLIBVERSIONFLAGI
Ta zmienna konstrukcyjna jest automatycznie wprowadzana $_SHLIBVERSIONFLAGS if
$SHLIBVERSION jest ustawiony. W przeciwnym razie zwraca pusty ciąg znaków.

AR
Archiwizator bibliotek statycznych.

ARCHITEKTURA
Określa architekturę systemu, dla której tworzony jest pakiet. Wartość domyślna to
architektura systemu maszyny, na której działa SCons. Służy do napełniania
w polu Architektura: w pliku kontrolnym Ipkg oraz jako część nazwy pliku a
wygenerowany plik RPM.

ARCOM
Wiersz poleceń używany do generowania biblioteki statycznej z plików obiektowych.

ARCOMSTR
Ciąg wyświetlany, gdy plik obiektowy jest generowany ze źródła języka asemblera
plik. Jeśli nie jest to ustawione, to $ARCOM (wiersz poleceń).

env = Środowisko(ARCOMSTR = "Archiwizacja $TARGET")

ARFLAGI
Opcje ogólne przekazane do archiwizatora biblioteki statycznej.

AS
Asembler.

ASCOM
Wiersz poleceń używany do generowania pliku obiektowego ze źródła w języku asemblera
plik.

ASCOMSTR
Ciąg wyświetlany, gdy plik obiektowy jest generowany ze źródła języka asemblera
plik. Jeśli nie jest to ustawione, to $ASCOM (wiersz poleceń).

env = Środowisko(ASCOMSTR = „Asemblowanie $TARGET”)

ASFLAGI
Opcje ogólne przekazywane asemblerowi.

ASPPCOM
Wiersz poleceń używany do składania pliku źródłowego języka asemblera w plik obiektowy
po pierwszym uruchomieniu pliku przez preprocesor C. Wszelkie opcje określone w
$ASFLAG i $CPPFLAGS zmienne konstrukcyjne są zawarte w tym wierszu poleceń.

ASPPCOMSTR
Ciąg wyświetlany, gdy plik obiektowy jest generowany ze źródła języka asemblera
file po pierwszym uruchomieniu pliku przez preprocesor C. Jeśli nie jest to ustawione, to
$ASPPCOM (wiersz poleceń).

env = Środowisko(ASPPCOMSTR = „Asemblowanie $TARGET”)

ASPPFLAGI
Ogólne opcje podczas składania pliku źródłowego języka asemblera w obiekt
file po pierwszym uruchomieniu pliku przez preprocesor C. Domyślnym ustawieniem jest użycie
wartość $ASFLAG.

BIBTEX
Generator bibliografii dla formatera i zecera TeX oraz LaTeX
formator strukturalny i zecer.

BIBTEXCOM
Wiersz poleceń używany do wywoływania generatora bibliografii dla formatera TeX i
zecer oraz formater i zecer o strukturze LaTeX.

BIBTEXCOMSTR
Ciąg wyświetlany podczas generowania bibliografii dla TeX-a lub LaTeX-a. Jeśli tak nie jest
zestaw $BIBTEXCOM (wiersz poleceń).

env = Środowisko(BIBTEXCOMSTR = "Generowanie bibliografii $TARGET")

FLAGI BIBTEX
Opcje ogólne przekazywane do generatora bibliografii dla formatera TeX-owego i
zecer oraz formater i zecer o strukturze LaTeX.

BITKEEPER
Plik wykonywalny BitKeepera.

BITKEEPERCOM
Wiersz poleceń do pobierania plików źródłowych za pomocą BitKeepera.

BITKEEPERCOMSTR
Ciąg wyświetlany podczas pobierania pliku źródłowego przy użyciu BitKeepera. Jeśli nie jest to ustawione,
następnie $BITKEEPERCOM (wiersz poleceń).

BITKEEPERGET
Komenda ($BITKEEPER) i podkomenda do pobierania plików źródłowych przy użyciu BitKeepera.

BITKEEPERGETFLAGI
Opcje przekazywane do BitKeepera otrzymać podkomenda.

BUDOWLANE
Słownik mapujący nazwy konstruktorów dostępnych w tym środowisku
bazowe obiekty Buildera. Konstruktorzy o nazwach Alias, CFile, CXXFile, DVI, Library,
Obiekt, PDF, PostScript i Program są dostępne domyślnie. Jeśli to zainicjujesz
zmienna podczas tworzenia środowiska:

env = Środowisko(BUILDERS = {'NowyBuilder': foo})

domyślne kreatory nie będą już dostępne. Aby użyć nowego obiektu Builder w
oprócz domyślnych Builderów dodaj nowy obiekt Builder w następujący sposób:

env = Środowisko()
env.Append(BUILDERS = {'NowyBuilder' : foo})

albo to:

env = Środowisko()
env['BUILDERS]['NowyBuilder'] = foo

CC
Kompilator C.

CCCOM
Wiersz poleceń używany do kompilowania pliku źródłowego C do (statycznego) pliku obiektowego. Każdy
opcje określone w $CFLAG, $CCFLAG i $CPPFLAGS zmienne konstrukcyjne są
zawarte w tym wierszu poleceń.

CCCOMSTR
Ciąg wyświetlany, gdy plik źródłowy C jest kompilowany do (statycznego) pliku obiektowego. Jeśli
w takim razie nie jest to ustawione $CCCOM (wiersz poleceń).

env = Środowisko(CCCOMSTR = "Kompilowanie obiektu statycznego $TARGET")

CCFLAGI
Opcje ogólne przekazywane do kompilatorów C i C++.

CCPCHFLAGI
Opcje dodane do wiersza poleceń kompilatora w celu obsługi budowania za pomocą prekompilowanych
nagłówki. Wartość domyślna rozwija się do odpowiedniego Microsoft Visual C++
opcje wiersza poleceń, gdy $PCH zmienna konstrukcyjna jest ustawiona.

CCPDBFLAG
Opcje dodane do wiersza poleceń kompilatora w celu obsługi przechowywania informacji debugowania
plik PDB Microsoft Visual C++. Wartość domyślna rozwija się do odpowiedniego
Opcje wiersza poleceń Microsoft Visual C++, gdy plik $PDB zmienna konstrukcyjna jest ustawiona.

Opcja kompilatora Visual C++, której SCons używa domyślnie do generowania informacji PDB
is /Z7. Działa to poprawnie z połączeniem równoległym (-j) kompiluje się, ponieważ osadza plik debug
informacji w pośrednich plikach obiektowych, zamiast udostępniać pojedynczy plik PDB
pomiędzy wieloma plikami obiektowymi. Jest to również jedyny sposób uzyskania informacji debugowania
osadzony w bibliotece statycznej. Używając /Zi zamiast tego może zapewnić lepszy czas połączenia
wydajność, chociaż kompilacje równoległe nie będą już działać.

Możesz generować pliki PDB za pomocą /Zi przełącz, zastępując ustawienie domyślne $CCPDBFLAGS
zmienna w następujący sposób:

env['CCPDBFLAGS'] = ['${(PDB i "/Zi /Fd%s" % pliku(PDB)) lub ""}']

Alternatywą byłoby użycie /Zi aby umieścić informacje dotyczące debugowania w osobnym pliku
.pdb dla każdego pliku obiektowego, zastępując plik .pdb $CCPDBFLAGS zmienna w następujący sposób:

env['CCPDBFLAGS'] = '/Zi /Fd${TARGET}.pdb'

WERSJA
Numer wersji kompilatora C. Można to ustawić lub nie, w zależności od
używany konkretny kompilator C.

CFILESUFIKS
Przyrostek dla plików źródłowych C. Jest to używane przez wewnętrzny konstruktor CFile, gdy
generowanie plików C z plików wejściowych Lex (.l) lub YACC (.y). Domyślny przyrostek, of
oczywiście to .c (małe litery). W systemach niewrażliwych na wielkość liter (takich jak Windows), SCons również
traktuje pliki .C (wielkie litery) jako pliki C.

CFLAGI
Opcje ogólne przekazywane do kompilatora C (tylko C, nie C++).

ZMIEŃ PLIK SPEC
Hak do modyfikowania pliku sterującego kompilacją pakietu (.spec dla RPM,
kontrola dla Ipkg, plik .wxs dla MSI). Jeśli ustawione, funkcja zostanie wywołana po
Napisano szablon SCons dla pliku. XXX

ZMIENIONO_ŹRÓDŁA
Zastrzeżona nazwa zmiennej, której nie można ustawić ani używać w środowisku konstrukcyjnym.
(Patrz „Podstawianie zmiennych” poniżej.)

CHANGED_TARGETS
Zastrzeżona nazwa zmiennej, której nie można ustawić ani używać w środowisku konstrukcyjnym.
(Patrz „Podstawianie zmiennych” poniżej.)

CHANGELOG
Nazwa pliku zawierającego tekst dziennika zmian, który ma zostać dołączony do pakietu. Ten
jest zawarty jako sekcja %changelog pliku RPM .spec.

_połączenie
Funkcja używana do tworzenia zmiennych takich jak $_CPPINCFLAGS. Potrzeba czterech lub pięciu
argumenty: przedrostek do łączenia z każdym elementem, lista elementów, przyrostek
łączenie na każdym elemencie, środowisko dla interpolacji zmiennych i
opcjonalna funkcja, która zostanie wywołana w celu przekształcenia listy przed połączeniem.

env['_CPPINCFLAGS'] = '$( ${_concat(INCPREFIX, CPPPATH, INCSUFFIX, __env__, RDirs)} $)',

KONFIGUROWANYKIER
Nazwa katalogu, w którym zapisywane są pliki testów kontekstowych konfiguracji. The
wartość domyślna to .sconf_temp w katalogu najwyższego poziomu zawierającym plik SConstruct.

KONFIGURELOG
Nazwa pliku dziennika konfiguracji kontekstu. Wartość domyślna to config.log na najwyższym poziomie
katalog zawierający plik SConstruct.

_CPPDEFFLAG
Automatycznie wygenerowana zmienna konstrukcyjna zawierająca preprocesor języka C
opcje wiersza poleceń do definiowania wartości. Wartość $_CPPDEFFLAG jest tworzony przez
dołączanie $CPPDEFPREFIX i $CPPDEFSUFIKS na początku i na końcu każdej definicji
in $CPPDEFINES.

CPDDEFINIUJE
Niezależna od platformy specyfikacja definicji preprocesora C. Definicje
zostanie dodany do linii poleceń poprzez automatycznie wygenerowany plik $_CPPDEFFLAG
zmienna konstrukcyjna (patrz wyżej), która jest konstruowana zgodnie z typem wartości
of $CPPDEFINES:

If $CPPDEFINES jest ciągiem znaków, wartościami $CPPDEFPREFIX i $CPPDEFSUFIKS
zmienne konstrukcyjne zostaną dodane na początku i na końcu.

# Doda -Dxyz do linii poleceń kompilatora POSIX,
# i /Dxyz do wiersza poleceń Microsoft Visual C++.
env = Środowisko(CPPDEFINES='xyz')

If $CPPDEFINES jest listą, wartościami $CPPDEFPREFIX i $CPPDEFSUFIKS
zmienne konstrukcyjne zostaną dodane na początku i na końcu każdego elementu w
Lista. Jeśli jakikolwiek element jest listą lub krotką, pierwszym elementem jest nazwa
zdefiniowany, a drugi element to jego wartość:

# Doda -DB=2 -DA do linii poleceń kompilatora POSIX,
# i /DB=2 /DA do wiersza poleceń Microsoft Visual C++.
env = Środowisko(CPPDEFINES=[('B', 2), 'A'])

If $CPPDEFINES jest słownikiem, wartości $CPPDEFPREFIX i $CPPDEFSUFIKS
zmienne konstrukcyjne zostaną dodane na początku i na końcu każdego elementu z pliku
słownik. Kluczem każdego elementu słownika jest nazwa definiowana w słowniku
odpowiednia wartość przedmiotu; jeśli wartością jest Brak, wówczas nazwa jest definiowana bez
wyraźna wartość. Należy pamiętać, że wynikowe flagi są sortowane według słów kluczowych, aby mieć pewność, że
kolejność opcji w wierszu poleceń jest stała przy każdym uruchomieniu scons.

# Doda -DA -DB=2 do linii poleceń kompilatora POSIX,
# i /DA /DB=2 do wiersza poleceń Microsoft Visual C++.
env = Środowisko(CPPDEFINES={'B':2, 'A':Brak})

PREFIKS CPPDEF
Przedrostek używany do określenia definicji preprocesora w wierszu poleceń kompilatora C.
Zostanie to dołączone na początku każdej definicji w pliku $CPPDEFINES
zmienna konstrukcyjna, gdy $_CPPDEFFLAG zmienna jest generowana automatycznie.

PRZYKŁADEK CPDEF
Przyrostek używany do określenia definicji preprocesora w wierszu poleceń kompilatora C.
Zostanie to dołączone na końcu każdej definicji w pliku $CPPDEFINES Budowa
zmienna, gdy $_CPPDEFFLAG zmienna jest generowana automatycznie.

FLAGI CPP
Opcje preprocesora C określone przez użytkownika. Zostaną one uwzględnione w każdym używanym poleceniu
preprocesora C, obejmującego nie tylko kompilację plików źródłowych C i C++ za pośrednictwem
$CCCOM, $SHCCCOM, $CXXCOM i $SHCXXCOM wiersze poleceń, ale także plik $FORTRANPPCOM,
$SHFORTRANPPCOM, $F77PPCOM i $SHF77PPCOM wiersze poleceń używane do kompilacji Fortranu
plik źródłowy i $ASPPCOM wiersz poleceń używany do asemblowania języka asemblera
źródłowy, po pierwszym uruchomieniu każdego pliku przez preprocesor C. Zauważ, że to
zmienna tak nie zawierać -I (lub podobne) zawierają opcje ścieżki wyszukiwania, które skanują
generuje automatycznie z $CPPATH. Zobaczyć $_CPPINCFLAGSponiżej dla zmiennej that
rozszerza się o te opcje.

_CPPINCFLAGS
Automatycznie wygenerowana zmienna konstrukcyjna zawierająca preprocesor języka C
opcje wiersza poleceń umożliwiające określenie katalogów, w których mają być przeszukiwane pliki dołączane. The
wartość $_CPPINCFLAGS jest tworzony poprzez dołączenie $INCPREFIKS i $INCSUFFIX do
początek i koniec każdego katalogu w $CPPATH.

ŚCIEŻKA CPP
Lista katalogów, które preprocesor C będzie wyszukiwał, obejmuje katalogi.
Niejawny skaner zależności C/C++ przeszuka te katalogi w poszukiwaniu plików dołączanych.
Nie umieszczaj jawnie argumentów katalogu włączającego w CCFLAGS lub CXXFLAGS, ponieważ
wynik nie będzie przenośny, a katalogi nie będą przeszukiwane według zależności
skaner. Uwaga: nazwy katalogów w CPPPATH będą wyszukiwane w odniesieniu do SConscript
katalog, gdy są używane w poleceniu. Aby zmusić scons do przejrzenia katalogu
w stosunku do korzenia drzewa źródłowego użyj #:

env = Środowisko(CPPPATH='#/include')

Przeszukiwanie katalogów można również wymusić za pomocą metody Państwo() funkcja:

obejmują = Dir('uwzględnij')
env = Środowisko(CPPPATH=include)

Lista katalogów zostanie dodana do linii poleceń poprzez automatycznie wygenerowany plik
$_CPPINCFLAGS zmienna konstrukcyjna, która jest konstruowana poprzez dołączenie wartości
dotychczasowy $INCPREFIKS i $INCSUFFIX zmienne konstrukcyjne na początku i na końcu każdego z nich
katalog w $CPPATH. Wszelkie zdefiniowane wiersze poleceń, które wymagają katalogu CPPPATH
lista powinna zawierać $_CPPINCFLAGS:

env = Środowisko(CCCOM="mój_kompiler $_CPPINCFLAGS -c -o $TARGET $SOURCE")

PRZYKŁADKI CPP
Lista przyrostków plików, które będą skanowane w poszukiwaniu ukrytego preprocesora C
zależności (#uwzględnij linie). Domyślna lista to:

[.c", ".C", ".cxx", ".cpp", ".c++", ".cc",
„.h”, „.H”, „.hxx”, „.hpp”, „.hh”,
„.F”, „.fpp”, „.FPP”,
„.m”, „.mm”,
„.S”, „.spp”, „.SPP”]

CVS
Plik wykonywalny CVS.

CVSCOFLAG
Opcje przekazywane do podkomendy CVS checkout.

CVSCOM
Wiersz poleceń używany do pobierania plików źródłowych z repozytorium CVS.

CVSCOMSTR
Ciąg wyświetlany podczas pobierania pliku źródłowego z repozytorium CVS. Jeśli tak nie jest
zestaw $CVSCOM (wiersz poleceń).

CVSFLAGI
Opcje ogólne przekazywane do CVS. Domyślnie jest to ustawione na -d $CVSREPOSITORY
aby określić, skąd pliki mają zostać pobrane.

CVSREPOSITORY
Ścieżka do repozytorium CVS. Jest to wspomniane w pliku default $CVSFLAGS wartość.

CXX
Kompilator C++.

CXXCOM
Wiersz poleceń używany do kompilowania pliku źródłowego C++ do pliku obiektowego. Wszelkie opcje
określone w $CXXFLAGS i $CPPFLAGS uwzględniono w tym zmienne konstrukcyjne
wiersz poleceń.

CXXCOMSTR
Ciąg wyświetlany, gdy plik źródłowy C++ jest kompilowany do (statycznego) pliku obiektowego. Jeśli
w takim razie nie jest to ustawione $CXXCOM (wiersz poleceń).

env = Środowisko(CXXCOMSTR = "Kompilowanie obiektu statycznego $TARGET")

CXXFILESUFIKS
Przyrostek plików źródłowych C++. Jest to używane przez wewnętrzny konstruktor CXXFile, gdy
generowanie plików C++ z plików wejściowych Lex (.ll) lub YACC (.yy). Domyślny przyrostek to
.cc. SCons traktuje także pliki z przyrostkami .cpp, .cxx, .c++ i .C++ jako C++
pliki i pliki z przyrostkami .mm jako pliki Objective C++. W systemach rozróżniających wielkość liter
(Linux, UNIX i inne wersje POSIX), SCons traktuje również pliki .C (wielkie litery) jako C++
akta.

CXXFLAGI
Opcje ogólne przekazywane do kompilatora C++. Domyślnie obejmuje to
wartość $CCFLAG, więc to ustawienie $CCFLAG wpływa zarówno na kompilację C, jak i C++. Jeśli ty
chcesz dodać flagi specyficzne dla C++, musisz ustawić lub zastąpić wartość $CXXFLAGS.

WERSJA CXX
Numer wersji kompilatora C++. Można to ustawić lub nie, w zależności od
używany konkretny kompilator C++.

DC
DC.

DCOM
DCOM.

DDEBUG
DDEBUG.

_DDEBUGFLAGS
_DDEBUGFLAGS.

DDEBUGPREFIX
DDEBUGPREFIX.

DDEBUGSUFIKS
DDEBUGSUFIKS.

OPIS
Długi opis pakowanego projektu. Jest to uwzględnione w odpowiednich
sekcja pliku kontrolująca kompilację pakietu.

DESCRIPTION_język
Długi opis specyficzny dla określonego języka lang. Służy do wypełniania
sekcja %description -l pliku RPM .spec.

DFILESUFIKS
DFILESUFIKS.

DFLAGPREFIX
DFLAGPREFIX.

_DFLAGI
_DFLAGI.

DFLAGI
DFLAGI.

DFLAGSUFIKS
DFLAGSUFIKS.

_DINCFLAG
_DINCFLAG.

DINCPREFIX
DINCPREFIX.

DINCSUFIKS
DINCSUFIKS.

Państwo
Funkcja konwertująca ciąg znaków na instancję Dir względem obiektu docelowego
wybudowany.

Funkcja konwertująca ciąg znaków na instancję Dir względem obiektu docelowego
wybudowany.

Reżyseria
Funkcja konwertująca listę ciągów znaków na listę instancji Dir względem
budowany cel.

DLIB
DLIB.

DLIBCOM
DLIBCOM.

_DLIBDIRFLAGS
_DLIBDIRFLAGS.

DLIBDIRPREFIKS
DLIBDIRPREFIKS.

DLIBDIRSUFIKS
DLIBDIRSUFIKS.

PREFIKS DLIBFLAG
PREFIKS DLIBFLAG.

_DLIBFLAG
_DLIBFLAG.

SUFIKAT DLIBFLAG
SUFIKAT DLIBFLAG.

PREFIKS DLIBLINK
PREFIKS DLIBLINK.

PRZYSZECHNIK DLIBLINK
PRZYSZECHNIK DLIBLINK.

Dlink
DLINK.

DLINKCOM
DLINKCOM.

PREFIKS FLAGI DLINK
PREFIKS FLAGI DLINK.

DLINKFLAGI
DLINKFLAGI.

DLINKSUFIKS FLAGI
DLINKSUFIKS FLAGI.

DOCBOOK_DEFAULT_XSL_EPUB
Domyślny plik XSLT dla DokumentacjaEpub builder w bieżącym środowisku, jeśli
żaden inny XSLT nie jest określony za pomocą słowa kluczowego.

DOCBOOK_DEFAULT_XSL_HTML
Domyślny plik XSLT dla Dokument HTML builder w bieżącym środowisku, jeśli
żaden inny XSLT nie jest określony za pomocą słowa kluczowego.

DOCBOOK_DEFAULT_XSL_HTMLCHUNKED
Domyślny plik XSLT dla DocbookHtmlPołączony budowniczy w nurcie
środowisku, jeśli żaden inny XSLT nie zostanie określony za pomocą słowa kluczowego.

DOCBOOK_DEFAULT_XSL_HTMLHELP
Domyślny plik XSLT dla DocbookHtmlhelp konstruktor w obecnym środowisku,
jeśli żaden inny XSLT nie zostanie określony za pomocą słowa kluczowego.

DOCBOOK_DEFAULT_XSL_MAN
Domyślny plik XSLT dla DocbookMan builder w bieżącym środowisku, jeśli nie
inne XSLT są określane za pomocą słowa kluczowego.

DOCBOOK_DEFAULT_XSL_PDF
Domyślny plik XSLT dla Dokument PDF builder w bieżącym środowisku, jeśli nie
inne XSLT są określane za pomocą słowa kluczowego.

DOCBOOK_DEFAULT_XSL_SLIDESHTML
Domyślny plik XSLT dla DocbookSlidesHtml budowniczy w nurcie
środowisku, jeśli żaden inny XSLT nie zostanie określony za pomocą słowa kluczowego.

DOCBOOK_DEFAULT_XSL_SLIDESPDF
Domyślny plik XSLT dla DokumentSlajdyPdf konstruktor w obecnym środowisku,
jeśli żaden inny XSLT nie zostanie określony za pomocą słowa kluczowego.

DOCBOOK_FOP
Ścieżka do modułu renderującego PDF, fop lub xep, jeśli jeden z nich jest zainstalowany (fop jest sprawdzany
pierwszy).

DOCBOOK_FOPCOM
Pełna linia poleceń dla modułu renderującego PDF FOP lub XEP.

DOCBOOK_FOPCOMSTR
Ciąg wyświetlany, gdy do tworzenia pliku wyjściowego w formacie PDF używany jest moduł renderujący, taki jak fop lub xep
plik XML.

DOCBOOK_FOPFLAGS
Dodatkowe flagi wiersza poleceń dla modułu renderującego PDF FOP lub XEP.

DOCBOOK_XMLINT
Ścieżka do zewnętrznego pliku wykonywalnego xmllint, jeśli jest zainstalowany. Uwaga, to jest to
używany tylko jako ostatnia pomoc awaryjna do rozwiązywania XIncludes, jeśli nie ma libxml2 lub lxml Python
powiązanie można zaimportować do bieżącego systemu.

DOCBOOK_XMLLINTCOM
Pełna linia poleceń dla zewnętrznego pliku wykonywalnego xmllint.

DOCBOOK_XMLLINTCOMSTR
Ciąg wyświetlany, gdy xmllint jest używany do rozpoznawania XInclude dla danego pliku XML.

DOCBOOK_XMLLINTFLAGS
Dodatkowe flagi wiersza poleceń dla zewnętrznego pliku wykonywalnego xmllint.

DOCBOOK_XSLTPROC
Ścieżka do zewnętrznego pliku wykonywalnego xsltproc (lub saxon, xalan), jeśli jednym z nich jest
zainstalowany. Należy pamiętać, że jest to używane tylko jako ostatnia wersja rezerwowa dla transformacji XSL, jeśli
w bieżącym systemie nie można importować powiązań Pythona z bibliotekami libxml2 ani lxml.

DOCBOOK_XSLTPROCCOM
Pełna linia poleceń dla zewnętrznego pliku wykonywalnego xsltproc (lub saxon, xalan).

DOCBOOK_XSLTPROCCOMSTR
Ciąg wyświetlany, gdy xsltproc jest używany do transformacji pliku XML za pomocą danego XSLT
arkusz stylów.

DOCBOOK_XSLTPROCFLAGS
Dodatkowe flagi wiersza poleceń dla zewnętrznego pliku wykonywalnego xsltproc (lub saxon, xalan).

DOCBOOK_XSLTPROCPARAMS
Dodatkowe parametry, które nie są przeznaczone dla pliku wykonywalnego procesora XSLT, ale
Samo przetwarzanie XSL. Domyślnie są one dołączane na końcu wiersza poleceń
odpowiednio dla saxon i saxon-xslt.

ŚCIEŻKA
DPATH.

DSUFIKSY
Lista przyrostków plików, które będą skanowane w poszukiwaniu zaimportowanych plików pakietu D. The
domyślna lista to:

['.D']

_DVERFLAG
_DVERFLAG.

DVERPREFIX
DVERPREFIX.

WERSJE
WERSJE.

DVERSUFIKS
DVERSUFIKS.

DVIPDF
Konwerter plików TeX DVI na pliki PDF.

DVIPDFCOM
Wiersz poleceń używany do konwersji plików TeX DVI na plik PDF.

DVIPDFCOMSTR
Ciąg wyświetlany podczas konwersji pliku TeX DVI na plik PDF. Jeśli tak nie jest
zestaw $DVIPDFCOM (wiersz poleceń).

DVIPDFFLAGI
Ogólne opcje przekazane do konwertera plików TeX DVI na PDF.

DVIPS
Konwerter pliku TeX DVI na PostScript.

DVIPSLAGI
Opcje ogólne przekazywane do konwertera pliku TeX DVI na PostScript.

ENV
Słownik zmiennych środowiskowych używany podczas wywoływania poleceń. Gdy $ENW służy
w poleceniu wszystkie wartości listy zostaną połączone przy użyciu separatora ścieżki i dowolnego innego
Wartości niebędące ciągami zostaną po prostu zamienione na ciąg znaków. Pamiętaj, że domyślnie scons
robi nie propaguj środowisko obowiązujące podczas wykonywania poleceń scons
używany do budowania plików docelowych. Ma to na celu zapewnienie powtarzalności kompilacji
niezależnie od zmiennych środowiskowych ustawionych w momencie wywołania scons.

Jeśli chcesz propagować zmienne środowiskowe do poleceń wykonywanych w celu kompilacji
target, musisz to zrobić jawnie:

zaimportować cię
env = Środowisko(ENV = os.środowisko)

Należy pamiętać, że można wybrać propagowanie tylko niektórych zmiennych środowiskowych. Powszechny
przykładem jest system PATH zmienna środowiskowa, aby scons korzystał z tych samych narzędzi
jako wywołująca powłoka (lub inny proces):

zaimportować cię
env = Środowisko(ENV = {'ścieżka' : os.environ['ścieżka']})

ESCAPE
Funkcja, która zostanie wywołana w celu uniknięcia znaków specjalnych powłoki w wierszach poleceń.
Funkcja powinna przyjmować jeden argument: ciąg znaków wiersza poleceń, do którego ma nastąpić ucieczka; i powinien
zwróć linię poleceń, która uciekła.

F03
Kompilator Fortran 03. Zwykle powinieneś ustawić $FORTRAN zmienna, która
określa domyślny kompilator języka Fortran dla wszystkich wersji języka Fortran. Wystarczy ustawić
$ F03 jeśli chcesz użyć określonego kompilatora lub wersji kompilatora dla plików Fortran 03.

F03COM
Wiersz poleceń używany do kompilowania pliku źródłowego Fortran 03 do pliku obiektowego. Tylko ty
trzeba ustawić $F03COM jeśli chcesz użyć określonego wiersza poleceń dla plików Fortran 03.
Zwykle powinieneś ustawić $FORTRANCOM zmienna, która określa polecenie domyślne
linia dla wszystkich wersji Fortran.

F03COMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran 03 jest kompilowany do pliku obiektowego. Jeśli
w takim razie nie jest to ustawione $F03COM or $FORTRANCOM (wiersz poleceń).

F03SUFIKSY PLIKÓW
Lista rozszerzeń plików, dla których będzie używany dialekt F03. Domyślnie to
jest ['.f03']

F03FLAGI
Ogólne opcje określone przez użytkownika, które są przekazywane do kompilatora Fortran 03. Zauważ to
ta zmienna tak nie zawierać -I (lub podobne) zawierają opcje ścieżki wyszukiwania, które skanują
generuje automatycznie z $F03ŚCIEŻKA. Zobaczyć $_F03INCFLAGS poniżej dla zmiennej that
rozszerza się o te opcje. Wystarczy ustawić $F03FLAG jeśli chcesz zdefiniować
specyficzne opcje użytkownika dla plików Fortran 03. Zwykle powinieneś ustawić $FORTRANFLAGI
zmienna, która określa opcje określone przez użytkownika przekazywane do domyślnego języka Fortran
kompilator dla wszystkich wersji Fortranu.

_F03INCFLAG
Automatycznie wygenerowana zmienna konstrukcyjna zawierająca kompilator Fortran 03
opcje wiersza poleceń umożliwiające określenie katalogów, w których mają być przeszukiwane pliki dołączane. The
wartość $_F03INCFLAGS jest tworzony poprzez dołączenie $INCPREFIKS i $INCSUFFIX do
początek i koniec każdego katalogu w $F03ŚCIEŻKA.

F03ŚCIEŻKA
Lista katalogów, które będzie wyszukiwał kompilator Fortran 03, obejmuje
katalogi. Niejawny skaner zależności przeszuka te katalogi w poszukiwaniu elementu include
akta. Nie umieszczaj jawnie argumentów katalogu dołączającego $F03FLAG ponieważ
wynik nie będzie przenośny, a katalogi nie będą przeszukiwane według zależności
skaner. Uwaga: nazwy katalogów w $F03ŚCIEŻKA będzie sprawdzane w stosunku do
Katalog SConscript, gdy są one używane w poleceniu. Aby zmusić łajdaków do wyszukiwania a
katalog względem katalogu głównego drzewa źródłowego użyj #: Musisz tylko ustawić $F03ŚCIEŻKA
jeśli chcesz zdefiniować konkretną ścieżkę dołączenia dla plików Fortran 03. Powinieneś
normalnie ustaw $FORTRANPATH zmienna, która określa ścieżkę dołączenia dla pliku
domyślny kompilator Fortran dla wszystkich wersji Fortran.

env = Środowisko(F03PATH='#/include')

Przeszukiwanie katalogów można również wymusić za pomocą metody Państwo() funkcja:

obejmują = Dir('uwzględnij')
env = Środowisko (F03PATH = uwzględnij)

Lista katalogów zostanie dodana do linii poleceń poprzez automatycznie wygenerowany plik
$_F03INCFLAGS zmienna konstrukcyjna, która jest konstruowana poprzez dołączenie wartości
dotychczasowy $INCPREFIKS i $INCSUFFIX zmienne konstrukcyjne na początku i na końcu każdego z nich
katalog w $F03ŚCIEŻKA. Wszystkie zdefiniowane przez Ciebie linie poleceń wymagające katalogu F03PATH
lista powinna zawierać $_F03INCFLAGS:

env = Środowisko(F03COM="mój_kompilator $_F03INCFLAGS -c -o $TARGET $SOURCE")

F03PPCOM
Wiersz poleceń używany do kompilacji pliku źródłowego Fortran 03 do pliku obiektowego
najpierw uruchamiając plik przez preprocesor C. Wszelkie opcje określone w
$F03FLAG i $CPPFLAGS zmienne konstrukcyjne są zawarte w tym wierszu poleceń. Ty
trzeba tylko ustawić $F03PPCOM jeśli chcesz użyć określonego wiersza poleceń preprocesora C
dla plików Fortran 03. Zwykle powinieneś ustawić $FORTRANPPCOM zmienna, która
określa domyślną linię poleceń preprocesora C dla wszystkich wersji Fortranu.

F03PPCOMSTR
Ciąg wyświetlany po kompilacji pliku źródłowego Fortran 03 do pliku obiektowego
najpierw uruchamiając plik przez preprocesor C. Jeśli nie jest to ustawione, to $F03PPCOM
or $FORTRANPPCOM (wiersz poleceń).

PRZYSZKÓWKI PLIKÓW F03PP
Lista rozszerzeń plików, dla których kompilacja + preprocesor przechodzi dla F03
będzie używany dialekt. Domyślnie jest to puste

F08
Kompilator Fortran 08. Zwykle powinieneś ustawić $FORTRAN zmienna, która
określa domyślny kompilator języka Fortran dla wszystkich wersji języka Fortran. Wystarczy ustawić
$ F08 jeśli chcesz użyć określonego kompilatora lub wersji kompilatora dla plików Fortran 08.

F08COM
Wiersz poleceń używany do kompilowania pliku źródłowego Fortran 08 do pliku obiektowego. Tylko ty
trzeba ustawić $F08COM jeśli chcesz użyć określonego wiersza poleceń dla plików Fortran 08.
Zwykle powinieneś ustawić $FORTRANCOM zmienna, która określa polecenie domyślne
linia dla wszystkich wersji Fortran.

F08COMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran 08 jest kompilowany do pliku obiektowego. Jeśli
w takim razie nie jest to ustawione $F08COM or $FORTRANCOM (wiersz poleceń).

F08SUFIKSY PLIKÓW
Lista rozszerzeń plików, dla których będzie używany dialekt F08. Domyślnie to
jest ['.f08']

F08FLAGI
Ogólne opcje określone przez użytkownika, które są przekazywane do kompilatora Fortran 08. Zauważ to
ta zmienna tak nie zawierać -I (lub podobne) zawierają opcje ścieżki wyszukiwania, które skanują
generuje automatycznie z $F08ŚCIEŻKA. Zobaczyć $_F08INCFLAGS poniżej dla zmiennej that
rozszerza się o te opcje. Wystarczy ustawić $F08FLAG jeśli chcesz zdefiniować
specyficzne opcje użytkownika dla plików Fortran 08. Zwykle powinieneś ustawić $FORTRANFLAGI
zmienna, która określa opcje określone przez użytkownika przekazywane do domyślnego języka Fortran
kompilator dla wszystkich wersji Fortranu.

_F08INCFLAG
Automatycznie wygenerowana zmienna konstrukcyjna zawierająca kompilator Fortran 08
opcje wiersza poleceń umożliwiające określenie katalogów, w których mają być przeszukiwane pliki dołączane. The
wartość $_F08INCFLAGS jest tworzony poprzez dołączenie $INCPREFIKS i $INCSUFFIX do
początek i koniec każdego katalogu w $F08ŚCIEŻKA.

F08ŚCIEŻKA
Lista katalogów, które będzie wyszukiwał kompilator Fortran 08, obejmuje
katalogi. Niejawny skaner zależności przeszuka te katalogi w poszukiwaniu elementu include
akta. Nie umieszczaj jawnie argumentów katalogu dołączającego $F08FLAG ponieważ
wynik nie będzie przenośny, a katalogi nie będą przeszukiwane według zależności
skaner. Uwaga: nazwy katalogów w $F08ŚCIEŻKA będzie sprawdzane w stosunku do
Katalog SConscript, gdy są one używane w poleceniu. Aby zmusić łajdaków do wyszukiwania a
katalog względem katalogu głównego drzewa źródłowego użyj #: Musisz tylko ustawić $F08ŚCIEŻKA
jeśli chcesz zdefiniować konkretną ścieżkę dołączenia dla plików Fortran 08. Powinieneś
normalnie ustaw $FORTRANPATH zmienna, która określa ścieżkę dołączenia dla pliku
domyślny kompilator Fortran dla wszystkich wersji Fortran.

env = Środowisko(F08PATH='#/include')

Przeszukiwanie katalogów można również wymusić za pomocą metody Państwo() funkcja:

obejmują = Dir('uwzględnij')
env = Środowisko (F08PATH = uwzględnij)

Lista katalogów zostanie dodana do linii poleceń poprzez automatycznie wygenerowany plik
$_F08INCFLAGS zmienna konstrukcyjna, która jest konstruowana poprzez dołączenie wartości
dotychczasowy $INCPREFIKS i $INCSUFFIX zmienne konstrukcyjne na początku i na końcu każdego z nich
katalog w $F08ŚCIEŻKA. Wszystkie zdefiniowane przez Ciebie linie poleceń wymagające katalogu F08PATH
lista powinna zawierać $_F08INCFLAGS:

env = Środowisko(F08COM="mój_kompilator $_F08INCFLAGS -c -o $TARGET $SOURCE")

F08PPCOM
Wiersz poleceń używany do kompilacji pliku źródłowego Fortran 08 do pliku obiektowego
najpierw uruchamiając plik przez preprocesor C. Wszelkie opcje określone w
$F08FLAG i $CPPFLAGS zmienne konstrukcyjne są zawarte w tym wierszu poleceń. Ty
trzeba tylko ustawić $F08PPCOM jeśli chcesz użyć określonego wiersza poleceń preprocesora C
dla plików Fortran 08. Zwykle powinieneś ustawić $FORTRANPPCOM zmienna, która
określa domyślną linię poleceń preprocesora C dla wszystkich wersji Fortranu.

F08PPCOMSTR
Ciąg wyświetlany po kompilacji pliku źródłowego Fortran 08 do pliku obiektowego
najpierw uruchamiając plik przez preprocesor C. Jeśli nie jest to ustawione, to $F08PPCOM
or $FORTRANPPCOM (wiersz poleceń).

PRZYSZKÓWKI PLIKÓW F08PP
Lista rozszerzeń plików, dla których kompilacja + preprocesor przechodzi dla F08
będzie używany dialekt. Domyślnie jest to puste

F77
Kompilator Fortran 77. Zwykle powinieneś ustawić $FORTRAN zmienna, która
określa domyślny kompilator języka Fortran dla wszystkich wersji języka Fortran. Wystarczy ustawić
$ F77 jeśli chcesz użyć określonego kompilatora lub wersji kompilatora dla plików Fortran 77.

F77COM
Wiersz poleceń używany do kompilowania pliku źródłowego Fortran 77 do pliku obiektowego. Tylko ty
trzeba ustawić $F77COM jeśli chcesz użyć określonego wiersza poleceń dla plików Fortran 77.
Zwykle powinieneś ustawić $FORTRANCOM zmienna, która określa polecenie domyślne
linia dla wszystkich wersji Fortran.

F77COMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran 77 jest kompilowany do pliku obiektowego. Jeśli
w takim razie nie jest to ustawione $F77COM or $FORTRANCOM (wiersz poleceń).

F77SUFIKSY PLIKÓW
Lista rozszerzeń plików, dla których będzie używany dialekt F77. Domyślnie to
jest ['.f77']

F77FLAGI
Ogólne opcje określone przez użytkownika, które są przekazywane do kompilatora Fortran 77. Zauważ to
ta zmienna tak nie zawierać -I (lub podobne) zawierają opcje ścieżki wyszukiwania, które skanują
generuje automatycznie z $F77ŚCIEŻKA. Zobaczyć $_F77INCFLAGS poniżej dla zmiennej that
rozszerza się o te opcje. Wystarczy ustawić $F77FLAG jeśli chcesz zdefiniować
specyficzne opcje użytkownika dla plików Fortran 77. Zwykle powinieneś ustawić $FORTRANFLAGI
zmienna, która określa opcje określone przez użytkownika przekazywane do domyślnego języka Fortran
kompilator dla wszystkich wersji Fortranu.

_F77INCFLAG
Automatycznie wygenerowana zmienna konstrukcyjna zawierająca kompilator Fortran 77
opcje wiersza poleceń umożliwiające określenie katalogów, w których mają być przeszukiwane pliki dołączane. The
wartość $_F77INCFLAGS jest tworzony poprzez dołączenie $INCPREFIKS i $INCSUFFIX do
początek i koniec każdego katalogu w $F77ŚCIEŻKA.

F77ŚCIEŻKA
Lista katalogów, które będzie wyszukiwał kompilator Fortran 77, obejmuje
katalogi. Niejawny skaner zależności przeszuka te katalogi w poszukiwaniu elementu include
akta. Nie umieszczaj jawnie argumentów katalogu dołączającego $F77FLAG ponieważ
wynik nie będzie przenośny, a katalogi nie będą przeszukiwane według zależności
skaner. Uwaga: nazwy katalogów w $F77ŚCIEŻKA będzie sprawdzane w stosunku do
Katalog SConscript, gdy są one używane w poleceniu. Aby zmusić łajdaków do wyszukiwania a
katalog względem katalogu głównego drzewa źródłowego użyj #: Musisz tylko ustawić $F77ŚCIEŻKA
jeśli chcesz zdefiniować konkretną ścieżkę dołączenia dla plików Fortran 77. Powinieneś
normalnie ustaw $FORTRANPATH zmienna, która określa ścieżkę dołączenia dla pliku
domyślny kompilator Fortran dla wszystkich wersji Fortran.

env = Środowisko(F77PATH='#/include')

Przeszukiwanie katalogów można również wymusić za pomocą metody Państwo() funkcja:

obejmują = Dir('uwzględnij')
env = Środowisko (F77PATH = uwzględnij)

Lista katalogów zostanie dodana do linii poleceń poprzez automatycznie wygenerowany plik
$_F77INCFLAGS zmienna konstrukcyjna, która jest konstruowana poprzez dołączenie wartości
dotychczasowy $INCPREFIKS i $INCSUFFIX zmienne konstrukcyjne na początku i na końcu każdego z nich
katalog w $F77ŚCIEŻKA. Wszystkie zdefiniowane przez Ciebie linie poleceń wymagające katalogu F77PATH
lista powinna zawierać $_F77INCFLAGS:

env = Środowisko(F77COM="mój_kompilator $_F77INCFLAGS -c -o $TARGET $SOURCE")

F77PPCOM
Wiersz poleceń używany do kompilacji pliku źródłowego Fortran 77 do pliku obiektowego
najpierw uruchamiając plik przez preprocesor C. Wszelkie opcje określone w
$F77FLAG i $CPPFLAGS zmienne konstrukcyjne są zawarte w tym wierszu poleceń. Ty
trzeba tylko ustawić $F77PPCOM jeśli chcesz użyć określonego wiersza poleceń preprocesora C
dla plików Fortran 77. Zwykle powinieneś ustawić $FORTRANPPCOM zmienna, która
określa domyślną linię poleceń preprocesora C dla wszystkich wersji Fortranu.

F77PPCOMSTR
Ciąg wyświetlany po kompilacji pliku źródłowego Fortran 77 do pliku obiektowego
najpierw uruchamiając plik przez preprocesor C. Jeśli nie jest to ustawione, to $F77PPCOM
or $FORTRANPPCOM (wiersz poleceń).

PRZYSZKÓWKI PLIKÓW F77PP
Lista rozszerzeń plików, dla których kompilacja + preprocesor przechodzi dla F77
będzie używany dialekt. Domyślnie jest to puste

F90
Kompilator Fortran 90. Zwykle powinieneś ustawić $FORTRAN zmienna, która
określa domyślny kompilator języka Fortran dla wszystkich wersji języka Fortran. Wystarczy ustawić
$ F90 jeśli chcesz użyć określonego kompilatora lub wersji kompilatora dla plików Fortran 90.

F90COM
Wiersz poleceń używany do kompilowania pliku źródłowego Fortran 90 do pliku obiektowego. Tylko ty
trzeba ustawić $F90COM jeśli chcesz użyć określonego wiersza poleceń dla plików Fortran 90.
Zwykle powinieneś ustawić $FORTRANCOM zmienna, która określa polecenie domyślne
linia dla wszystkich wersji Fortran.

F90COMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran 90 jest kompilowany do pliku obiektowego. Jeśli
w takim razie nie jest to ustawione $F90COM or $FORTRANCOM (wiersz poleceń).

F90SUFIKSY PLIKÓW
Lista rozszerzeń plików, dla których będzie używany dialekt F90. Domyślnie to
jest ['.f90']

F90FLAGI
Ogólne opcje określone przez użytkownika, które są przekazywane do kompilatora Fortran 90. Zauważ to
ta zmienna tak nie zawierać -I (lub podobne) zawierają opcje ścieżki wyszukiwania, które skanują
generuje automatycznie z $F90ŚCIEŻKA. Zobaczyć $_F90INCFLAGS poniżej dla zmiennej that
rozszerza się o te opcje. Wystarczy ustawić $F90FLAG jeśli chcesz zdefiniować
specyficzne opcje użytkownika dla plików Fortran 90. Zwykle powinieneś ustawić $FORTRANFLAGI
zmienna, która określa opcje określone przez użytkownika przekazywane do domyślnego języka Fortran
kompilator dla wszystkich wersji Fortranu.

_F90INCFLAG
Automatycznie wygenerowana zmienna konstrukcyjna zawierająca kompilator Fortran 90
opcje wiersza poleceń umożliwiające określenie katalogów, w których mają być przeszukiwane pliki dołączane. The
wartość $_F90INCFLAGS jest tworzony poprzez dołączenie $INCPREFIKS i $INCSUFFIX do
początek i koniec każdego katalogu w $F90ŚCIEŻKA.

F90ŚCIEŻKA
Lista katalogów, które będzie wyszukiwał kompilator Fortran 90, obejmuje
katalogi. Niejawny skaner zależności przeszuka te katalogi w poszukiwaniu elementu include
akta. Nie umieszczaj jawnie argumentów katalogu dołączającego $F90FLAG ponieważ
wynik nie będzie przenośny, a katalogi nie będą przeszukiwane według zależności
skaner. Uwaga: nazwy katalogów w $F90ŚCIEŻKA będzie sprawdzane w stosunku do
Katalog SConscript, gdy są one używane w poleceniu. Aby zmusić łajdaków do wyszukiwania a
katalog względem katalogu głównego drzewa źródłowego użyj #: Musisz tylko ustawić $F90ŚCIEŻKA
jeśli chcesz zdefiniować konkretną ścieżkę dołączenia dla plików Fortran 90. Powinieneś
normalnie ustaw $FORTRANPATH zmienna, która określa ścieżkę dołączenia dla pliku
domyślny kompilator Fortran dla wszystkich wersji Fortran.

env = Środowisko(F90PATH='#/include')

Przeszukiwanie katalogów można również wymusić za pomocą metody Państwo() funkcja:

obejmują = Dir('uwzględnij')
env = Środowisko (F90PATH = uwzględnij)

Lista katalogów zostanie dodana do linii poleceń poprzez automatycznie wygenerowany plik
$_F90INCFLAGS zmienna konstrukcyjna, która jest konstruowana poprzez dołączenie wartości
dotychczasowy $INCPREFIKS i $INCSUFFIX zmienne konstrukcyjne na początku i na końcu każdego z nich
katalog w $F90ŚCIEŻKA. Wszystkie zdefiniowane przez Ciebie linie poleceń wymagające katalogu F90PATH
lista powinna zawierać $_F90INCFLAGS:

env = Środowisko(F90COM="mój_kompilator $_F90INCFLAGS -c -o $TARGET $SOURCE")

F90PPCOM
Wiersz poleceń używany do kompilacji pliku źródłowego Fortran 90 do pliku obiektowego
najpierw uruchamiając plik przez preprocesor C. Wszelkie opcje określone w
$F90FLAG i $CPPFLAGS zmienne konstrukcyjne są zawarte w tym wierszu poleceń. Ty
trzeba tylko ustawić $F90PPCOM jeśli chcesz użyć określonego wiersza poleceń preprocesora C
dla plików Fortran 90. Zwykle powinieneś ustawić $FORTRANPPCOM zmienna, która
określa domyślną linię poleceń preprocesora C dla wszystkich wersji Fortranu.

F90PPCOMSTR
Ciąg wyświetlany podczas kompilacji pliku źródłowego Fortran 90 po pierwszym uruchomieniu
plik przez preprocesor C. Jeśli nie jest to ustawione, to $F90PPCOM or $FORTRANPPCOM
(wiersz poleceń).

PRZYSZKÓWKI PLIKÓW F90PP
Lista rozszerzeń plików, dla których kompilacja + preprocesor przechodzi dla F90
będzie używany dialekt. Domyślnie jest to puste

F95
Kompilator Fortran 95. Zwykle powinieneś ustawić $FORTRAN zmienna, która
określa domyślny kompilator języka Fortran dla wszystkich wersji języka Fortran. Wystarczy ustawić
$ F95 jeśli chcesz użyć określonego kompilatora lub wersji kompilatora dla plików Fortran 95.

F95COM
Wiersz poleceń używany do kompilowania pliku źródłowego Fortran 95 do pliku obiektowego. Tylko ty
trzeba ustawić $F95COM jeśli chcesz użyć określonego wiersza poleceń dla plików Fortran 95.
Zwykle powinieneś ustawić $FORTRANCOM zmienna, która określa polecenie domyślne
linia dla wszystkich wersji Fortran.

F95COMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran 95 jest kompilowany do pliku obiektowego. Jeśli
w takim razie nie jest to ustawione $F95COM or $FORTRANCOM (wiersz poleceń).

F95SUFIKSY PLIKÓW
Lista rozszerzeń plików, dla których będzie używany dialekt F95. Domyślnie to
jest ['.f95']

F95FLAGI
Ogólne opcje określone przez użytkownika, które są przekazywane do kompilatora Fortran 95. Zauważ to
ta zmienna tak nie zawierać -I (lub podobne) zawierają opcje ścieżki wyszukiwania, które skanują
generuje automatycznie z $F95ŚCIEŻKA. Zobaczyć $_F95INCFLAGS poniżej dla zmiennej that
rozszerza się o te opcje. Wystarczy ustawić $F95FLAG jeśli chcesz zdefiniować
specyficzne opcje użytkownika dla plików Fortran 95. Zwykle powinieneś ustawić $FORTRANFLAGI
zmienna, która określa opcje określone przez użytkownika przekazywane do domyślnego języka Fortran
kompilator dla wszystkich wersji Fortranu.

_F95INCFLAG
Automatycznie wygenerowana zmienna konstrukcyjna zawierająca kompilator Fortran 95
opcje wiersza poleceń umożliwiające określenie katalogów, w których mają być przeszukiwane pliki dołączane. The
wartość $_F95INCFLAGS jest tworzony poprzez dołączenie $INCPREFIKS i $INCSUFFIX do
początek i koniec każdego katalogu w $F95ŚCIEŻKA.

F95ŚCIEŻKA
Lista katalogów, które będzie wyszukiwał kompilator Fortran 95, obejmuje
katalogi. Niejawny skaner zależności przeszuka te katalogi w poszukiwaniu elementu include
akta. Nie umieszczaj jawnie argumentów katalogu dołączającego $F95FLAG ponieważ
wynik nie będzie przenośny, a katalogi nie będą przeszukiwane według zależności
skaner. Uwaga: nazwy katalogów w $F95ŚCIEŻKA będzie sprawdzane w stosunku do
Katalog SConscript, gdy są one używane w poleceniu. Aby zmusić łajdaków do wyszukiwania a
katalog względem katalogu głównego drzewa źródłowego użyj #: Musisz tylko ustawić $F95ŚCIEŻKA
jeśli chcesz zdefiniować konkretną ścieżkę dołączenia dla plików Fortran 95. Powinieneś
normalnie ustaw $FORTRANPATH zmienna, która określa ścieżkę dołączenia dla pliku
domyślny kompilator Fortran dla wszystkich wersji Fortran.

env = Środowisko(F95PATH='#/include')

Przeszukiwanie katalogów można również wymusić za pomocą metody Państwo() funkcja:

obejmują = Dir('uwzględnij')
env = Środowisko (F95PATH = uwzględnij)

Lista katalogów zostanie dodana do linii poleceń poprzez automatycznie wygenerowany plik
$_F95INCFLAGS zmienna konstrukcyjna, która jest konstruowana poprzez dołączenie wartości
dotychczasowy $INCPREFIKS i $INCSUFFIX zmienne konstrukcyjne na początku i na końcu każdego z nich
katalog w $F95ŚCIEŻKA. Wszystkie zdefiniowane przez Ciebie linie poleceń wymagające katalogu F95PATH
lista powinna zawierać $_F95INCFLAGS:

env = Środowisko(F95COM="mój_kompilator $_F95INCFLAGS -c -o $TARGET $SOURCE")

F95PPCOM
Wiersz poleceń używany do kompilacji pliku źródłowego Fortran 95 do pliku obiektowego
najpierw uruchamiając plik przez preprocesor C. Wszelkie opcje określone w
$F95FLAG i $CPPFLAGS zmienne konstrukcyjne są zawarte w tym wierszu poleceń. Ty
trzeba tylko ustawić $F95PPCOM jeśli chcesz użyć określonego wiersza poleceń preprocesora C
dla plików Fortran 95. Zwykle powinieneś ustawić $FORTRANPPCOM zmienna, która
określa domyślną linię poleceń preprocesora C dla wszystkich wersji Fortranu.

F95PPCOMSTR
Ciąg wyświetlany po kompilacji pliku źródłowego Fortran 95 do pliku obiektowego
najpierw uruchamiając plik przez preprocesor C. Jeśli nie jest to ustawione, to $F95PPCOM
or $FORTRANPPCOM (wiersz poleceń).

PRZYSZKÓWKI PLIKÓW F95PP
Lista rozszerzeń plików, dla których kompilacja + preprocesor przechodzi dla F95
będzie używany dialekt. Domyślnie jest to puste

filet
Funkcja, która konwertuje ciąg znaków na instancję pliku względem obiektu docelowego
wybudowany.

Funkcja, która konwertuje ciąg znaków na instancję pliku względem obiektu docelowego
wybudowany.

FORTRAN
Domyślny kompilator Fortran dla wszystkich wersji Fortran.

FORTRANCOM
Wiersz poleceń używany do kompilowania pliku źródłowego Fortran do pliku obiektowego. Domyślnie,
dowolne opcje określone w $FORTRANFLAGI, $CPPFLAGS, $_CPPDEFFLAG,
$_FORTRANMODFLAG, $_FORTRANINCFLAGS uwzględniono w tym zmienne konstrukcyjne
wiersz poleceń.

FORTRANCOMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran jest kompilowany do pliku obiektowego. Jeśli to
nie jest ustawiony, to $FORTRANCOM (wiersz poleceń).

PRZYSZKÓWKI FORTRANFILES
Lista rozszerzeń plików, dla których będzie używany dialekt FORTRAN. Domyślnie,
to jest ['.f', '.for', '.ftn']

FORTRANFLAGI
Ogólne opcje określone przez użytkownika, które są przekazywane do kompilatora Fortran. Zauważ, że to
zmienna tak nie zawierać -I (lub podobne) obejmują lub modułowe opcje ścieżki wyszukiwania, które
scons generuje się automatycznie z $FORTRANPATH. Zobaczyć $_FORTRANINCFLAGS i
$_FORTRANMODFLAGponiżej dla zmiennych rozszerzających te opcje.

_FORTRANINCFLAGS
Automatycznie wygenerowana zmienna konstrukcyjna zawierająca kompilator Fortran
opcje wiersza poleceń umożliwiające określenie katalogów, w których mają być przeszukiwane pliki włączające i
pliki modułów. Wartość $_FORTRANINCFLAGS jest tworzony przez dołączenie/dołączenie
$INCPREFIKS i $INCSUFFIX na początek i na koniec każdego katalogu w $FORTRANPATH.

FORTRANMODDIR
Lokalizacja katalogu, w którym kompilator Fortranu powinien umieścić wszystkie pliki modułów
generuje. Ta zmienna jest domyślnie pusta. Niektóre kompilatory Fortran będą to robić wewnętrznie
dołącz ten katalog również do ścieżki wyszukiwania plików modułów.

FORTRANMODDIRPREFIX
Przedrostek używany do określenia katalogu modułu w wierszu poleceń kompilatora Fortran.
Zostanie on dodany na początku katalogu w pliku $FORTRANMODDIR
zmienne konstrukcyjne, gdy $_FORTRANMODFLAG zmienne są generowane automatycznie.

FORTRANMODDIRSUFIKS
Przyrostek używany do określenia katalogu modułu w wierszu poleceń kompilatora Fortran.
Zostanie on dodany na początku katalogu w pliku $FORTRANMODDIR
zmienne konstrukcyjne, gdy $_FORTRANMODFLAG zmienne są generowane automatycznie.

_FORTRANMODFLAG
Automatycznie wygenerowana zmienna konstrukcyjna zawierająca kompilator Fortran
opcja wiersza poleceń służąca do określenia lokalizacji katalogu, w którym znajduje się kompilator Fortran
powinien umieścić wszystkie pliki modułów, które przypadkowo zostały wygenerowane podczas kompilacji. The
wartość $_FORTRANMODFLAG jest tworzony przez dołączenie/dołączenie $FORTRANMODDIRPREFIX i
$FORTRANMODDIRSUFIKS na początek i na koniec katalogu w $FORTRANMODDIR.

FORTRANMODPREFIX
Prefiks pliku modułu używany przez kompilator Fortran. SCons zakłada, że ​​Fortran
kompilator postępuje zgodnie z quasi-standardową konwencją nazewnictwa plików modułów
nazwa_modułu.mod. W rezultacie zmienna ta domyślnie pozostaje pusta. Do sytuacji
w których kompilator niekoniecznie przestrzega normalnej konwencji, użytkownik może
użyj tej zmiennej. Jego wartość zostanie dołączona do nazwy każdego pliku modułu jako scons
próby rozwiązania zależności.

FORTRANMODSUFIKS
Sufiks pliku modułu używany przez kompilator Fortran. SCons zakłada, że ​​Fortran
kompilator postępuje zgodnie z quasi-standardową konwencją nazewnictwa plików modułów
nazwa_modułu.mod. W rezultacie ta zmienna jest domyślnie ustawiona na „.mod”. Dla
sytuacje, w których kompilator niekoniecznie trzyma się normalnej konwencji,
użytkownik może używać tej zmiennej. Jego wartość zostanie dodana do nazwy każdego pliku modułu
ponieważ scons próbuje rozwiązać zależności.

FORTRANPAT
Lista katalogów, w których kompilator Fortran będzie wyszukiwał pliki włączające i
(dla niektórych kompilatorów) pliki modułów. Skaner niejawnych zależności Fortran przeszuka
te katalogi zawierają pliki dołączane (ale nie pliki modułów, ponieważ są generowane automatycznie
i jako taki może w rzeczywistości nie istnieć w momencie skanowania). Nie
jawnie wstaw argumenty katalogu dołączanego do FORTRANFLAGS, ponieważ wynikiem będzie
non-portable i katalogi nie będą przeszukiwane przez skaner zależności. Notatka:
nazwy katalogów w FORTRANPATH będą wyszukiwane względem katalogu SConscript
kiedy są użyte w poleceniu. Aby zmusić scons do przeszukania katalogu względem
korzeń drzewa źródłowego użyj #:

env = Środowisko(FORTRANPATH='#/include')

Przeszukiwanie katalogów można również wymusić za pomocą metody Państwo() funkcja:

obejmują = Dir('uwzględnij')
env = Środowisko(FORTRANPATH=include)

Lista katalogów zostanie dodana do linii poleceń poprzez automatycznie wygenerowany plik
$_FORTRANINCFLAGS zmienna konstrukcyjna, która jest konstruowana poprzez dołączenie wartości
ukończenia $INCPREFIKS i $INCSUFFIX zmienne konstrukcyjne na początku i na końcu
każdy katalog w $FORTRANPATH. Wszelkie zdefiniowane linie poleceń wymagające ścieżki FORTRANPATH
lista katalogów powinna zawierać $_FORTRANINCFLAGS:

env = Środowisko(FORTRANCOM="mój_kompiler $_FORTRANINCFLAGS -c -o $TARGET $SOURCE")

FORTRANPPCOM
Wiersz poleceń używany do kompilacji pliku źródłowego Fortran do pliku obiektowego
uruchomienie pliku przez preprocesor C. Domyślnie wszystkie opcje określone w pliku
$FORTRANFLAGI, $CPPFLAGS, $_CPPDEFFLAG, $_FORTRANMODFLAG, $_FORTRANINCFLAGS
zmienne konstrukcyjne są zawarte w tym wierszu poleceń.

FORTRANPPCOMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran jest później kompilowany do pliku obiektowego
najpierw uruchamiając plik przez preprocesor C. Jeśli nie jest to ustawione, to
$FORTRANPPCOM (wiersz poleceń).

PRZYSZKÓWKI FORTRANPPFILES
Lista rozszerzeń plików, dla których kompilacja + preprocesor przechodzi dla FORTRAN
będzie używany dialekt. Domyślnie jest to ['.fpp', '.FPP']

FORTRANSUFIKSY
Lista przyrostków plików, które będą skanowane pod kątem ukrytych zależności Fortran
(ZAŁĄCZ linie i instrukcje USE). Domyślna lista to:

[.f", ".F", ".for", ".FOR", ".ftn", ".FTN", ".fpp", ".FPP",
„.f77”, „.F77”, „.f90”, „.F90”, „.f95”, „.F95”]

ŚCIEŻKA RAMY
W systemie Mac OS X z gcc: lista zawierająca ścieżki do wyszukiwania frameworków. Używany przez
kompilator, aby znaleźć styl frameworka, zawiera takie elementy jak #include . Używany przez
linker, aby podczas łączenia znaleźć struktury określone przez użytkownika (patrz $FRAMEWRACJE). Dla
przykład:

env.AppendUnique(FRAMEWORKPATH='#myframeworkdir')

Doda

... -Fmyframeworkdir

do linii poleceń kompilatora i linkera.

_FRAMEWORKPATH
W systemie Mac OS X z gcc automatycznie wygenerowana zmienna konstrukcyjna zawierająca
opcje wiersza poleceń linkera odpowiadające $FRAMEWORKPATH.

PREFIKS ŚCIEŻKI RAMY
W systemie Mac OS X z gcc: przedrostek używany dla wpisów FRAMEWORKPATH. (Widzieć
$FRAMEWORKPATH). Wartość domyślna to -F.

PREFIKS RAMY
W systemie Mac OS X z gcc prefiks używany do łączenia w frameworkach (patrz
$FRAMEWRACJE). Wartość domyślna to -struktura.

_RAMY
W systemie Mac OS X z gcc automatycznie wygenerowana zmienna konstrukcyjna zawierająca
Opcje wiersza poleceń linkera do łączenia z FRAMEWORKS.

RAMY
W systemie Mac OS X z gcc, lista nazw struktur, które mają zostać połączone z programem lub
biblioteka współdzielona lub pakiet. Wartość domyślna to pusta lista. Na przykład:

env.AppendUnique(FRAMEWORKS=Split('Konfiguracja systemu Cocoa SystemConfiguration'))

FLAGI RAMEK
W systemie Mac OS X z gcc ogólne opcje frameworków dostarczane przez użytkownika zostaną dodane na końcu
linii poleceń budującej ładowalny moduł. (Zostało to w dużej mierze zastąpione przez
$FRAMEWORKPATH, PREFIKS $FRAMEWORKPATHPRIX, $PRAMEWORKPREFIX i $FRAMEWRACJE zmienne
opisane powyżej.)

GS
Program Ghostscript służący m.in. do konwersji plików PostScript do formatu PDF.

GSMCOM
Pełna linia poleceń Ghostscript używana w procesie konwersji. Jego wartość domyślna
to „$GS $GSFLAGS -sOutputFile=$TARGET $SOURCES”.

GSCOMSTR
Ciąg wyświetlany, gdy Ghostscript jest wywoływany w procesie konwersji. Jeśli to jest
nie ustawiono (domyślnie), to $GSCOM (wiersz poleceń).

FLAGI GSF
Ogólne opcje przekazywane do programu Ghostscript podczas konwersji PostScriptu do formatu PDF
pliki np. Jego domyślna wartość to „-dNOPAUSE -dBATCH -sDEVICE=pdfwrite”

HOST_ARCH
Nazwa architektury sprzętowej hosta użytej do utworzenia środowiska. Jeśli
platforma jest określona podczas tworzenia Środowiska, wówczas zrobi to logika tej Platformy
uchwyt ustawiający tę wartość. Ta wartość jest niezmienna i nie powinna być zmieniana przez
user po zainicjowaniu środowiska. Obecnie ustawiony tylko dla Win32.

Ustawia architekturę hosta dla kompilatora programu Visual Studio. Jeśli nie ustawiono, domyślnie jest to
wykryta architektura hosta: pamiętaj, że może to zależeć od używanego Pythona.
Zmienną tę należy przekazać jako argument do konstruktora Environment(); ustawienie
później nie ma to żadnego wpływu.

Poprawne wartości są takie same jak dla $TARGET_ARCH.

Jest to obecnie używane tylko w systemie Windows, ale w przyszłości będzie używane w innych
Systemy operacyjne również.

HOST_OS
Nazwa systemu operacyjnego hosta użytego do utworzenia środowiska. Jeśli jest platforma
określone podczas tworzenia Środowiska, wówczas będzie obsługiwana logika tej Platformy
ustawienie tej wartości. Wartość ta jest niezmienna i użytkownik nie powinien jej zmieniać
po zainicjowaniu środowiska. Obecnie ustawiony tylko dla Win32.

PRZYKŁADKI IDL
Lista przyrostków plików, które będą skanowane pod kątem niejawnych zależności IDL
(#włącz lub zaimportuj linie). Domyślna lista to:

[.idl", ".IDL"]

IMPLIBNOWESYMLINKI
Służy do zastępowania $SHLIBNOVERSIONSYMLINKS/$LDMODULENOVERSIONSYMLINKS podczas tworzenia
wersjonowana biblioteka importu dla współdzielonej biblioteki/modułu ładowalnego. Jeśli nie zdefiniowano, to
$SHLIBNOVERSIONSYMLINKS/$LDMODULENOVERSIONSYMLINKS służy do określenia, czy
wyłącz generowanie dowiązań symbolicznych, czy nie.

IMPLIBPREFIX
Przedrostek używany do importowania nazw bibliotek. Na przykład cygwin używa bibliotek importu
(libfoo.dll.a) w parze z bibliotekami dynamicznymi (cygfoo.dll). Zestaw linkera cyglink
$IMPLIBPREFIX do „lib” i $SHLIBPREFIX do „cyga”.

IMPLIBSSUFIKS
Przyrostek używany do nazw bibliotek importu. Na przykład cygwin używa bibliotek importu
(libfoo.dll.a) w parze z bibliotekami dynamicznymi (cygfoo.dll). Zestaw linkera cyglink
$IMPLIBSUFIKS do „.dll.a” i $SHLIBSSUFIKS do „.dll”.

IMPLIBWERSJA
Służy do zastępowania $SHLIBVERSION/$LDMODULEVERSION podczas generowania wersjonowanego importu
biblioteka dla współdzielonej biblioteki/modułu ładowalnego. Jeśli nieokreślony,
$SHLIBVERSION/$LDMODULEVERSION służy do określenia wersji wersjonowanego importu
biblioteka.

IMPLICIT_COMMAND_DEPENDENCIES
Kontroluje, czy SCons doda ukryte zależności dla wykonywanych poleceń
do budowania celów.

Domyślnie SCons doda do każdego celu niejawną zależność od polecenia
reprezentowany przez pierwszy argument w dowolnym wierszu poleceń, który wykonuje. Konkretny plik
ponieważ zależność można znaleźć, przeszukując plik PATH zmienna w ENV używane środowisko
wykonać polecenie.

Jeśli zmienna konstrukcyjna $IMPLICIT_COMMAND_DEPENDENCIES jest ustawiona na fałszywą wartość
(Brak, Fałsz, 0 itd.), wówczas ukryta zależność nie zostanie dodana do elementów docelowych
zbudowany w tym środowisku konstrukcyjnym.

env = Środowisko(IMPLICIT_COMMAND_DEPENDENCIES = 0)

INPREFIX
Przedrostek używany do określenia katalogu dołączanego w wierszu poleceń kompilatora C. Ten
zostanie dodany na początku każdego katalogu w pliku $CPPATH i $FORTRANPATH
zmienne konstrukcyjne, gdy $_CPPINCFLAGS i $_FORTRANINCFLAGS zmienne są
Generowany automatycznie.

INCSUFIKS
Przyrostek używany do określenia katalogu dołączanego w wierszu poleceń kompilatora C. Ten
zostanie dodany na końcu każdego katalogu w pliku $CPPATH i $FORTRANPATH
zmienne konstrukcyjne, gdy $_CPPINCFLAGS i $_FORTRANINCFLAGS zmienne są
Generowany automatycznie.

INSTALL
Funkcja, która ma zostać wywołana w celu zainstalowania pliku w docelowej nazwie pliku. Domyślny
funkcja kopiuje plik do miejsca docelowego (i ustawia tryb pliku docelowego
i bity uprawnień pasujące do pliku źródłowego). Funkcja przyjmuje następujące elementy
argumenty:

def install(dest, source, env):

przeznaczenie to nazwa ścieżki pliku docelowego. źródło to nazwa ścieżki źródła
plik. env to środowisko konstrukcyjne (słownik wartości konstrukcyjnych) w
wymusić instalację tego pliku.

ZAINSTALUJSTR
Ciąg wyświetlany, gdy plik jest instalowany w docelowej nazwie pliku. The
domyślna to:

Zainstaluj plik: „$SOURCE” jako „$TARGET”

INTEL_C_COMPILER_VERSION
Ustawiany przez narzędzie „intelc” na główny numer wersji wybranego kompilatora Intel C
do użycia.

JAR
Narzędzie do archiwizacji Java.

Narzędzie do archiwizacji Java.

JARCHDIR
Katalog, do którego powinno przejść narzędzie archiwizujące Java (przy użyciu pliku -C opcja).

Katalog, do którego powinno przejść narzędzie archiwizujące Java (przy użyciu pliku -C opcja).

JARCOM
Wiersz poleceń używany do wywoływania narzędzia archiwizacji Java.

Wiersz poleceń używany do wywoływania narzędzia archiwizacji Java.

JARCOMSTR
Ciąg wyświetlany po wywołaniu narzędzia archiwizującego Java. Jeśli nie jest to ustawione, oznacza to
$JARCOM (wiersz poleceń).

env = Środowisko(JARCOMSTR = "JARchiving $SOURCES do $TARGET")

Ciąg wyświetlany po wywołaniu narzędzia archiwizującego Java. Jeśli nie jest to ustawione, oznacza to
$JARCOM (wiersz poleceń).

env = Środowisko(JARCOMSTR = "JARchiving $SOURCES do $TARGET")

JARFLAGI
Opcje ogólne przekazane do narzędzia archiwizującego Java. Domyślnie jest to ustawione cf do
stworzyć niezbędne słoik plik.

Opcje ogólne przekazane do narzędzia archiwizującego Java. Domyślnie jest to ustawione cf do
stworzyć niezbędne słoik plik.

JARSUFIKS
Przyrostek dla archiwów Java: domyślnie .jar.

Przyrostek dla archiwów Java: domyślnie .jar.

ŚCIEŻKA KLASY JAVABOOT
Określa listę katalogów, które zostaną dodane do wiersza poleceń javac poprzez
-ścieżka bootclass opcja. Poszczególne nazwy katalogów będą oddzielone znakiem
odrębny znak ścieżki systemu operacyjnego (: w systemie UNIX/Linux/POSIX, ; w systemie Windows).

JAVAC
Kompilator Java.

JAVACCOM
Wiersz poleceń używany do kompilowania drzewa katalogów zawierającego pliki źródłowe Java
odpowiednie pliki klas Java. Wszelkie opcje określone w $JAVACFLAGS Budowa
zmienne są zawarte w tym wierszu poleceń.

JAVACCOMSTR
Ciąg wyświetlany podczas kompilowania drzewa katalogów plików źródłowych Java do
odpowiednie pliki klas Java. Jeśli nie jest to ustawione, to $JAVACCOM (wiersz poleceń)
jest wyświetlany.

env = Środowisko(JAVACCOMSTR = "Kompilowanie plików klas $TARGETS z $SOURCES")

JAVACFLAG
Opcje ogólne przekazywane do kompilatora Java.

JAVACCLASSDIR
Katalog, w którym można znaleźć pliki klas Java. To jest usunięte z
początek dowolnej nazwy pliku .class Java dostarczonej do konstruktora JavaH.

ŚCIEŻKA JAVACLAS
Określa listę katalogów, w których będzie przeszukiwany plik Java .class. The
katalogi na tej liście zostaną dodane do wierszy poleceń javac i javah za pośrednictwem pliku
-ścieżka klasy opcja. Poszczególne nazwy katalogów będą oddzielone operatorem
oddzielny znak ścieżki systemowej (: w systemie UNIX/Linux/POSIX, ; w systemie Windows).

Zauważ, że obecnie dodaje to tylko określony katalog poprzez -ścieżka klasy opcja.
SCons obecnie nie przeszukuje $JAVACCLASSPATH katalogi dla zależności .class
akta.

DODATEK JAVACCLASS
Przyrostek dla plików klas Java; .class domyślnie.

JAWA
Generator Java dla plików nagłówkowych i pośredniczących języka C.

JAVAHCOM
Wiersz poleceń używany do generowania plików nagłówkowych i pośredniczących C z klas Java. Każdy
opcje określone w $JAVAHFLAGS zmienne konstrukcyjne są w tym uwzględnione
wiersz poleceń.

JAVAHCOMSTR
Ciąg wyświetlany podczas generowania plików nagłówkowych i pośredniczących C z klas Java. Jeśli
w takim razie nie jest to ustawione $JAVAHCOM (wiersz poleceń).

env = Środowisko(JAVAHCOMSTR = "Generowanie plików nagłówkowych/końcowych $TARGETS z $SOURCES")

JAVAHFLAGI
Opcje ogólne przekazywane do generatora nagłówków i plików pośredniczących języka C dla klas Java.

ŚCIEŻKA ŹRÓDŁA JAVAS
Określa listę katalogów, które będą przeszukiwane w celu znalezienia wejściowego pliku .java. The
katalogi na tej liście zostaną dodane do wiersza poleceń javac poprzez -ścieżkaźródłowa
opcja. Poszczególne nazwy katalogów będą oddzielone nazwami systemu operacyjnego
oddzielny znak ścieżki (: w systemie UNIX/Linux/POSIX, ; w systemie Windows).

Zauważ, że obecnie dodaje to tylko określony katalog poprzez -ścieżkaźródłowa opcja.
SCons obecnie nie przeszukuje $JavaSOURCEPATH katalogi dla zależności .java
akta.

JAVASUFIKS
Przyrostek dla plików Java; domyślnie .java.

WERSJA JAVA
Określa wersję Java używaną przez program Java budowniczy. To jest nie aktualnie używany
aby wybrać jedną wersję kompilatora Java zamiast innej. Zamiast tego powinieneś to ustawić
aby określić wersję Java obsługiwaną przez kompilator Java. Wartość domyślna to 1.4.

Czasami jest to konieczne, ponieważ Java 1.5 zmieniła nazwy tworzonych plików
dla zagnieżdżonych anonimowych klas wewnętrznych, co może powodować niezgodność z plikami
Oczekiwania SCons zostaną wygenerowane przez kompilator javac. Ustawienie $JAVAVERSION do 1.5 (lub
1.6, odpowiednio) może uświadomić SConsowi, że kompilacja Java 1.5 lub 1.6 jest w rzeczywistości
aktualny.

LATEKS
Formater i zecer o strukturze LaTeX.

LATEXCOM
Wiersz poleceń używany do wywoływania formatera strukturalnego i zecera LaTeX.

LATEXCOMSTR
Ciąg wyświetlany podczas wywoływania formatera strukturalnego i zecera LaTeX. Jeśli
w takim razie nie jest to ustawione $LATEXCOM (wiersz poleceń).

env = Środowisko(LATEXCOMSTR = "Budowanie $TARGET z danych wejściowych LaTeX $SOURCES")

FLAGI LATEKSOWE
Opcje ogólne przekazywane do strukturalnego formatera i zecera LaTeX.

LATEKSREPRÓBY
Maksymalna liczba ponownych uruchomień LaTeX-a, jeśli plik .log wygenerowany przez
$LATEXCOM polecenie wskazuje, że istnieją niezdefiniowane odniesienia. Domyślnie jest spróbować
aby rozwiązać niezdefiniowane odniesienia, ponownie uruchamiając LaTeX maksymalnie trzy razy.

PRZYSZKOWNIKI LATEKSOWE
Lista przyrostków plików, które będą skanowane pod kątem niejawnych zależności LaTeX
(\include lub \import plików). Domyślna lista to:

[.tex", ".ltx", ".latex"]

LDMODUŁ
Linker do budowania ładowalnych modułów. Domyślnie jest to to samo co $SHLINK.

LDMODULECOM
Wiersz poleceń do budowania ładowalnych modułów. W systemie Mac OS X używa to $LDMODUŁ,
$LDMODULEFLAGS i $FRAMEWORKSFLAGS zmienne. W innych systemach jest to samo
$SHLINK.

LDMODULECOMSTR
Ciąg wyświetlany podczas tworzenia ładowalnych modułów. Jeśli nie jest to ustawione, to
$LDMODULECOM (wiersz poleceń).

FLAGI LDMODUŁÓW
Ogólne opcje użytkownika przekazywane do linkera w celu budowania ładowalnych modułów.

LDMODULENOVERSIONSYMLINKS
Poleca Ładowalny moduł builder, dla którego nie należy automatycznie tworzyć dowiązań symbolicznych
wersjonowane moduły. Wartość domyślna to $SHLIBNOVERSIONSYMLINKS

PREFIKS LDMODULE
Przedrostek używany w nazwach plików modułów ładowalnych. W systemie Mac OS X wartość ta wynosi null; na innym
systemów, jest to to samo co $SHLIBPREFIX.

NAZWA _LDMODULESO
Makro automatycznie generujące SONAME modułu ładowalnego na podstawie $TARGET,
$LDMODULEVERSION i $LDMODULESUFFIX. Używany przez Ładowalny moduł budowniczy, gdy linker
narzędzie obsługuje SONAME (np. gnulink).

LDMODULESSUFIKS
Sufiks używany w nazwach plików modułów ładowalnych. W systemie Mac OS X wartość ta wynosi null; na innym
systemów, jest to to samo, co $SHLIBSUFFIX.

WERSJA LDMODULE
Kiedy ta zmienna konstrukcyjna jest zdefiniowana, tworzony jest wersjonowany moduł ładowalny
Ładowalny moduł budowniczy. To aktywuje $_LDMODULEVERSIONFLAGS i w ten sposób modyfikuje
dotychczasowy $LDMODULECOM w razie potrzeby dodaje numer wersji do nazwy biblioteki i tworzy
potrzebne dowiązania symboliczne. $LDMODULEVERSION wersje powinny istnieć w tym samym
sformatuj jako $SHLIBVERSION.

FLAGI WERSJI LDMODULU
Dodano dodatkowe flagi $LDMODULECOM podczas budowania wersji Ładowalny moduł. Te flagi
są używane tylko wtedy, gdy $LDMODULEVERSION jest ustawiona.

_LDMODULEVERSIONFLAGS
To makro automatycznie wprowadza dodatkowe flagi $LDMODULECOM podczas budowania
wersjonowane Ładowalny moduł (to jest, kiedy $LDMODULEVERSION jest ustawiony).
_LDMODULEVERSIONFLAGS zwykle dodaje $SHLIBVERSIONFLAGS i trochę bardziej dynamicznie
wygenerowane opcje (takie jak -Wl,-soname=$_LDMODULESONAME). Jest nieużywany, zwykły
(niewersjonowane) moduły ładowalne.

LEX
Generator analizatora leksykalnego.

LEXCOM
Wiersz poleceń używany do wywoływania generatora analizatora leksykalnego w celu wygenerowania źródła
plik.

LEXCOMSTR
Ciąg wyświetlany podczas generowania pliku źródłowego przy użyciu analizatora leksykalnego
generator. Jeśli nie jest to ustawione, to $LEXCOM (wiersz poleceń).

env = Środowisko(LEXCOMSTR = "Lex'ing $TARGET z $SOURCES")

Lexflagi
Opcje ogólne przekazane do generatora analizatora leksykalnego.

_LIBDIRFLAGS
Automatycznie wygenerowana zmienna konstrukcyjna zawierająca wiersz poleceń konsolidatora
opcje określania katalogów, w których mają być przeszukiwane biblioteki. Wartość
$_LIBDIRFLAGS jest tworzony poprzez dołączenie $LIBDIRPREFIX i $LIBDIRSUFIKS do początku
i koniec każdego katalogu w $LIBPATH.

LIBDIRPREFIX
Przedrostek używany do określenia katalogu biblioteki w wierszu poleceń konsolidatora. To będzie
być dołączany na początku każdego katalogu w pliku $LIBPATH zmienna konstrukcyjna
kiedy $_LIBDIRFLAGS zmienna jest generowana automatycznie.

LIBDIRSUFIKS
Przyrostek używany do określenia katalogu biblioteki w wierszu poleceń konsolidatora. To będzie
być dodawany na końcu każdego katalogu w pliku $LIBPATH zmienna konstrukcyjna kiedy
dotychczasowy $_LIBDIRFLAGS zmienna jest generowana automatycznie.

LIBEMITTER
WSZYSTKO

_LIBFLAGS
Automatycznie wygenerowana zmienna konstrukcyjna zawierająca wiersz poleceń konsolidatora
opcje określania bibliotek, które mają być połączone z wynikowym obiektem docelowym. Wartość
$_LIBFLAGS jest tworzony poprzez dołączenie $LIBLINKPREFIX i SUFIKS $LIBLINK do początku
i koniec każdej nazwy pliku w $LIBS.

PREFIKS LIBLINK
Przedrostek używany do określenia biblioteki do połączenia w wierszu poleceń konsolidatora. To będzie
dołączone na początku każdej biblioteki w pliku $LIBS zmienna konstrukcyjna, gdy
$_LIBFLAGS zmienna jest generowana automatycznie.

LIBLINKSUFIKS
Przyrostek używany do określenia biblioteki do połączenia w wierszu poleceń konsolidatora. To będzie
dołączone na końcu każdej biblioteki w pliku $LIBS zmienna konstrukcyjna, gdy
$_LIBFLAGS zmienna jest generowana automatycznie.

ŚCIEŻKA LIB
Lista katalogów, w których będą przeszukiwane biblioteki. Ukryta zależność
skaner przeszuka te katalogi w poszukiwaniu plików dołączanych. Nie wpisuj wyraźnie „uwzględnij”.
argumenty katalogu w $LINKFLAG or $SHLINKFLAGS bo wynik będzie
non-portable i katalogi nie będą przeszukiwane przez skaner zależności. Notatka:
nazwy katalogów w LIBPATH będą wyszukiwane w stosunku do katalogu SConscript, kiedy
są używane w poleceniu. Aby zmusić scons do wyszukiwania katalogu względem katalogu głównego
drzewa źródłowego użyj #:

env = Środowisko(LIBPATH='#/libs')

Przeszukiwanie katalogów można również wymusić za pomocą metody Państwo() funkcja:

libs = Dir('libs')
env = Środowisko(LIBPATH=libs)

Lista katalogów zostanie dodana do linii poleceń poprzez automatycznie wygenerowany plik
$_LIBDIRFLAGS zmienna konstrukcyjna, która jest konstruowana poprzez dołączenie wartości
dotychczasowy $LIBDIRPREFIX i $LIBDIRSUFIKS zmienne konstrukcyjne na początku i na końcu
każdy katalog w $LIBPATH. Wszelkie zdefiniowane linie poleceń, które wymagają LIBPATH
lista katalogów powinna zawierać $_LIBDIRFLAGS:

env = Środowisko(LINKCOM="mój_linker $_LIBDIRFLAGS $_LIBFLAGS -o $TARGET $SOURCE")

LIBPREFIX
Przedrostek używany w (statycznych) nazwach plików bibliotek. Dla każdego z nich ustawiona jest wartość domyślna
platformę (posix, win32, os2 itp.), ale wartość jest nadpisywana przez poszczególne narzędzia
(ar, mslib, sgiar, sunar, tlib itp.), aby odzwierciedlić nazwy bibliotek, które obsługują
utworzony.

LIBPREFIXY
Lista wszystkich legalnych przedrostków nazw plików bibliotek. Podczas wyszukiwania biblioteki
zależności, SCons będzie szukać plików z tymi przedrostkami, bazową nazwą biblioteki,
i przyrostki w $LIBSSUFFIXES lista.

LIBY
Lista jednej lub więcej bibliotek, które zostaną połączone z dowolnymi programami wykonywalnymi
stworzone przez to środowisko.

Lista bibliotek zostanie dodana do linii poleceń poprzez automatycznie wygenerowany plik
$_LIBFLAGS zmienna konstrukcyjna, która jest konstruowana poprzez dołączenie wartości zmiennej
$LIBLINKPREFIX i SUFIKS $LIBLINK zmienne konstrukcyjne na początku i na końcu
każda nazwa pliku w $LIBS. Dowolne zdefiniowane przez Ciebie wiersze poleceń wymagające listy bibliotek LIBS
powinno zawierać $_LIBFLAGS:

env = Środowisko(LINKCOM="mój_linker $_LIBDIRFLAGS $_LIBFLAGS -o $TARGET $SOURCE")

Jeśli dodasz obiekt File do $LIBS list, do której zostanie dodana nazwa tego pliku
$_LIBFLAGS, a zatem linia łącza, taka jaka jest, bez $LIBLINKPREFIX or SUFIKS $LIBLINK.
Na przykład:

env.Append(LIBS=plik('/tmp/mylib.so'))

We wszystkich przypadkach scons doda zależności z programu wykonywalnego do wszystkich plików
biblioteki na tej liście.

LIBSUFIKS
Sufiks używany w (statycznych) nazwach plików bibliotek. Dla każdego z nich ustawiona jest wartość domyślna
platformę (posix, win32, os2 itp.), ale wartość jest nadpisywana przez poszczególne narzędzia
(ar, mslib, sgiar, sunar, tlib itp.), aby odzwierciedlić nazwy bibliotek, które obsługują
utworzony.

LIBSUPFIKSY
Lista wszystkich legalnych przyrostków nazw plików bibliotek. Podczas wyszukiwania biblioteki
zależności, SCons będzie szukać plików z przedrostkami w $LIBPRIXES Zrób listę
nazwa biblioteki podstawowej i te przyrostki.

LICENCJA
Skrócona nazwa licencji, na której wydany jest ten projekt (gpl, lpgl,
bsd itp.). Widzieć http://www.opensource.org/licenses/alphabetical aby uzyskać listę licencji
nazwy.

SEPARATOR LINII
Separator używany przez Plik podrzędny i Plik tekstowy budowniczowie. Ta wartość jest używana pomiędzy
źródeł podczas konstruowania celu. Domyślnie jest to bieżąca linia systemowa
separator.

PLIK_LINGUAS
Kurs $LINGUAS_FILE definiuje plik(i) zawierający listę dodatkowych języków, które mają być
przetworzone przez POInit, POAktualizacja or Pliki MO budowniczowie. To także wpływa Tłumacz budowniczy.
Jeżeli zmienna zawiera ciąg znaków, określa nazwę pliku listy. The $LINGUAS_FILE
może być również listą nazw plików. Jeśli $LINGUAS_FILE ma wartość True (lub niezerową
wartość liczbowa), lista zostanie odczytana z domyślnego pliku o nazwie LINGUAS.

LINK
Linker.

LINKCOM
Wiersz poleceń używany do łączenia plików obiektowych w plik wykonywalny.

LINKCOMSTR
Ciąg wyświetlany, gdy pliki obiektowe są łączone w plik wykonywalny. Jeśli tak nie jest
zestaw $LINKCOM (wiersz poleceń).

env = Środowisko(LINKCOMSTR = „Łączenie $TARGET”)

LINKFLAG
Ogólne opcje użytkownika przekazywane do linkera. Zauważ, że ta zmienna powinna nie zawierać
-l (lub podobne) opcje łączenia z bibliotekami wymienionymi w $LIBS, ani -L (lub
podobne) opcje ścieżki wyszukiwania biblioteki, z których scons generuje automatycznie $LIBPATH.
See $_LIBFLAGS powyżej dla zmiennej, która rozwija się do opcji łącza do bibliotek, oraz
$_LIBDIRFLAGS powyżej dla zmiennej, która rozwija się do opcji ścieżki wyszukiwania biblioteki.

M4
Preprocesor makr M4.

M4COM
Wiersz poleceń używany do przekazywania plików przez preprocesor makr M4.

M4COMSTR
Ciąg wyświetlany, gdy plik jest przekazywany przez preprocesor makr M4. Jeśli to
nie jest ustawiony, to $M4COM (wiersz poleceń).

FLAGI M4
Opcje ogólne przekazane do preprocesora makr M4.

MAKEINDEX
Generator makeindex dla formatera i zecera TeX oraz struktura LaTeX
formatyzator i zecer.

MAKEINDEXCOM
Wiersz poleceń używany do wywołania generatora makeindex dla formatera TeX i
zecer oraz formater i zecer o strukturze LaTeX.

MAKEINDEXCOMSTR
Ciąg wyświetlany podczas wywoływania generatora makeindex dla formatera TeX i
zecer oraz formater i zecer o strukturze LaTeX. Jeśli nie jest to ustawione, to
$MAKEINDEXCOM (wiersz poleceń).

MAKEINDEXFLAGS
Ogólne opcje przekazywane do generatora makeindex dla formatera i zecera TeX-owego
oraz formater i zecer o strukturze LaTeX.

MAKSYMALNA DŁUGOŚĆ
Maksymalna liczba znaków dozwolona w zewnętrznym wierszu poleceń. Na Win32
systemach linie łączy dłuższe niż ta liczba znaków są łączone za pomocą pliku tymczasowego
nazwa.

ŚREDNI
Kompilator Microsoft IDL.

MIDLCOM
Wiersz poleceń używany do przekazywania plików do kompilatora Microsoft IDL.

MIDLCOMSTR
Ciąg wyświetlany po wywołaniu kopiarki Microsoft IDL. Jeśli nie jest to ustawione,
następnie $MIDLCOM (wiersz poleceń).

FLAGI ŚREDNIE
Opcje ogólne przekazywane do kompilatora Microsoft IDL.

MOSUFIKS
Sufiks używany w plikach MO (domyślnie: „.mo”). Zobacz narzędzie msgfmt i Pliki MO budowniczy.

MSGFMT
Absolutna droga do msgfmt(1) binarny, znaleziony przez Wykryć(). Zobacz narzędzie msgfmt i Pliki MO
budowniczy.

MSGFMTCOM
Kompletna linia poleceń do uruchomienia msgfmt(1) program. Zobacz narzędzie msgfmt i Pliki MO budowniczy.

MSGFMTCOMSTR
Ciąg do wyświetlenia, kiedy msgfmt(1) jest wywoływany (domyślnie: '', co oznacza ``print
$MSGFMTCOM„”). Zobacz narzędzie msgfmt i Pliki MO budowniczy.

MSGFMTFLAG
Dodatkowe flagi do msgfmt(1). Zobacz narzędzie msgfmt i Pliki MO budowniczy.

MSGINIT
Ścieżka do msginit(1) program (znaleziony za pomocą Detect()). Zobacz narzędzie msginit i POInit budowniczy.

MSGINITCOM
Kompletna linia poleceń do uruchomienia msginit(1) program. Zobacz narzędzie msginit i POInit budowniczy.

MSGINITCOMSTR
Ciąg do wyświetlenia, kiedy msginit(1) jest wywoływany (domyślnie: '', co oznacza ``print
$MSGINITCOM„”). Zobacz narzędzie msginit i POInit budowniczy.

MSGINITFLAGI
Lista dodatkowych flag do msginit(1) (domyślny: []). Zobacz narzędzie msginit i POInit
budowniczy.

_MSGINITLOCALE
Wewnętrzne „makro”. Oblicza nazwę ustawień regionalnych (języka) na podstawie docelowej nazwy pliku (domyślnie:
„${TARGET.filebase}”).

Zobacz narzędzie msginit i POInit budowniczy.

MSGMERGE
Absolutna droga do msgmerge(1) binarny znaleziony przez Wykryć(). Zobacz narzędzie msgmerge i
POAktualizacja budowniczy.

MSGMERGECOM
Kompletna linia poleceń do uruchomienia msgmerge(1) Komenda. Zobacz narzędzie msgmerge i POAktualizacja
budowniczy.

MSGMERGECOMSTR
Ciąg znaków, który będzie wyświetlany, kiedy msgmerge(1) jest wywoływany (domyślnie: '', co oznacza ``print
$MSGMERGECOM„”). Zobacz narzędzie msgmerge i POAktualizacja budowniczy.

MSGMERGEFLAGS
Dodatkowe flagi do msgmerge(1) Komenda. Zobacz narzędzie msgmerge i POAktualizacja budowniczy.

MSSDK_DIR
Katalog zawierający pakiet Microsoft SDK (platformowy SDK lub Windows SDK).
użyte do kompilacji.

WERSJA MSSDK_VERSION
Ciąg wersji pakietu Microsoft SDK (platformowego SDK lub Windows SDK), który ma być
użyte do kompilacji. Obsługiwane wersje to 6.1, 6.0A, 6.0, 2003R2 i 2003R1.

MSVC_BATCH
Po ustawieniu na dowolną wartość true określa, że ​​SCons powinien wsadowo kompilować obiekt
pliki podczas wywoływania kompilatora Microsoft Visual C/C++. Wszystkie kompilacje źródeł
pliki z tego samego katalogu źródłowego, które generują pliki docelowe w tym samym wyniku
katalogu i zostały skonfigurowane w SCons przy użyciu tego samego środowiska konstrukcyjnego, które będzie
zbudowany w jednym wywołaniu kompilatora. Tylko pliki źródłowe, które uległy zmianie od tego czasu
zbudowane przez nich pliki obiektowe zostaną przekazane do każdego wywołania kompilatora (za pośrednictwem pliku
$CHANGED_SOURCES zmienna konstrukcyjna). Wszelkie kompilacje, w których obiekt (cel)
Podstawowa nazwa pliku (bez .obj) nie jest zgodna z podstawową nazwą pliku źródłowego
skompilowane osobno.

MSVC_USE_SCRIPT
Użyj skryptu wsadowego, aby skonfigurować kompilator Microsoft Visual Studio

$MSVC_USE_SCRIPT nadpisuje $MSVC_VERSION i $TARGET_ARCH. Jeśli ustawiona jest nazwa a
Visual Studio .bat (np. vcvars.bat), SCons uruchomi i wyodrębni ten plik bat
odpowiednie zmienne z wyniku (zwykle %INCLUDE%, %LIB% i %PATH%).
Ustawienie MSVC_USE_SCRIPT na None całkowicie pomija automatyczne wykrywanie programu Visual Studio; używać
dzieje się tak, jeśli uruchamiasz SCons w oknie cmd programu Visual Studio i importujesz pliki powłoki
Zmienne środowiska.

MSVC_VERSION
Ustawia preferowaną wersję Microsoft Visual C/C++ do użycia.

If $MSVC_VERSION nie jest ustawiona, SCons (domyślnie) wybierze najnowszą wersję
Visual C/C++ zainstalowany w twoim systemie. Jeśli określona wersja nie jest zainstalowana, narzędzie
inicjalizacja zakończy się niepowodzeniem. Zmienną tę należy przekazać jako argument do metody
Konstruktor Environment(); ustawienie go później nie ma żadnego efektu.

Prawidłowe wartości dla systemu Windows to 12.0, 12.0 Exp, 11.0, 11.0 Exp, 10.0, 10.0 Exp, 9.0, 9.0 Exp,
8.0, 8.0Exp, 7.1, 7.0 i 6.0. Wersje kończące się na Exp odnoszą się do „Express” lub „Express
dla wersji Desktop”.

MSVS
Po zainicjowaniu narzędzi Microsoft Visual Studio konfigurują ten słownik
z następującymi kluczami:

WERSJA
używana wersja MSVS (można ustawić za pomocą $MSVS_VERSION)

WERSJE
zainstalowane dostępne wersje MSVS

VCINSTALDIR
zainstalowany katalog Visual C++

VINSTALDIR
zainstalowany katalog Visual Studio

FRAMEWORKDIR
zainstalowany katalog środowiska .NET

WERSJE RAMY
lista zainstalowanych wersji platformy .NET, posortowana od najnowszych do najstarszych.

WERSJA RAMY
najnowsza zainstalowana wersja frameworka .NET

FRAMEWORKSDKDIR
zainstalowana lokalizacja zestawu .NET SDK.

PLATFORMSDKDIR
zainstalowana lokalizacja pakietu SDK platformy.

PLATFORMSDK_MODULES
słownik zainstalowanych modułów Platform SDK, w którym znajdują się klucze słownika
słowa kluczowe dla różnych modułów, a wartościami są 2-krotki tam, gdzie jest pierwsza
data wydania, a druga to numer wersji.

Jeśli wartość nie jest ustawiona, oznacza to, że nie była ona dostępna w rejestrze.

MSVS_ARCH
Ustawia architekturę, dla której powinny zostać zbudowane wygenerowane projekty.

Wartość domyślna to x86. amd64 jest również obsługiwany przez SCons w niektórych Visual Studio
wersje. Próbuję ustawić $MSVS_ARCH do architektury, która nie jest obsługiwana dla danego
Wersja programu Visual Studio wygeneruje błąd.

MSVS_PROJECT_GUID
Ciąg znaków umieszczony w wygenerowanym pliku projektu Microsoft Visual Studio jako wartość
atrybut ProjectGUID. Nie ma wartości domyślnej. Jeśli nie zdefiniowano, nowy identyfikator GUID jest
wygenerowane.

MSVS_SCC_AUX_PATH
Nazwa ścieżki umieszczona w wygenerowanym pliku projektu Microsoft Visual Studio jako wartość
atrybutu SccAuxPath, jeśli MSVS_SCC_PROVIDER zmienna konstrukcyjna jest również
ustawić. Nie ma wartości domyślnej.

MSVS_SCC_CONNECTION_ROOT
Główna ścieżka projektów w obszarze roboczym SCC, tj. ścieżka, pod którą znajdują się wszystkie projekty
i zostaną wygenerowane pliki rozwiązań. Służy jako ścieżka referencyjna, z której
ścieżki względne wygenerowanych plików projektu i rozwiązania Microsoft Visual Studio to
obliczone. Względna ścieżka pliku projektu jest umieszczana jako wartość SccLocalPath
atrybut pliku projektu i jako wartości pliku
SccProjectFilePathRelativizedFromConnection[i] (gdzie [i] mieści się w zakresie od 0 do liczby
projektów w rozwiązaniu) atrybuty GlobalSection(SourceCodeControl)
sekcja pliku rozwiązania Microsoft Visual Studio. Podobnie rozwiązanie względne
ścieżka pliku jest umieszczana jako wartość SccLocalPath[i] (gdzie [i] mieści się w zakresie od 0 do
liczba projektów w rozwiązaniu) atrybuty pliku
Sekcja GlobalSection(SourceCodeControl) pliku rozwiązania Microsoft Visual Studio.
Jest to używane tylko wtedy, gdy MSVS_SCC_PROVIDER zmienna konstrukcyjna jest również ustawiona. The
wartością domyślną jest bieżący katalog roboczy.

MSVS_SCC_PROJECT_NAME
Nazwa projektu umieszczona w wygenerowanym pliku projektu Microsoft Visual Studio jako
wartość atrybutu SccProjectName, jeśli MSVS_SCC_PROVIDER zmienna konstrukcyjna
jest również ustawione. W tym przypadku ciąg znaków jest również umieszczany w atrybucie SccProjectName0
sekcji GlobalSection(SourceCodeControl) programu Microsoft Visual Studio
plik rozwiązania. Nie ma wartości domyślnej.

MSVS_SCC_PROVIDER
Ciąg znaków umieszczony w wygenerowanym pliku projektu Microsoft Visual Studio jako wartość
atrybut SccProvider. Ciąg znaków jest również umieszczany w atrybucie SccProvider0 pliku
sekcja GlobalSection(SourceCodeControl) rozwiązania Microsoft Visual Studio
plik. Nie ma wartości domyślnej.

MSVS_VERSION
Ustawia preferowaną wersję programu Microsoft Visual Studio do użycia.

If $MSVS_VERSION nie jest ustawiona, SCons (domyślnie) wybierze najnowszą wersję
Program Visual Studio zainstalowany w systemie. Tak więc, jeśli masz wersję 6 i wersję 7 (MSVS
.NET), będzie preferowana wersja 7. Możesz to zmienić, określając
MSVS_VERSION zmienną w inicjalizacji środowiska, ustawiając ją na odpowiednią
wersja (na przykład „6.0” lub „7.0”). Jeśli określona wersja nie jest zainstalowana, narzędzie
inicjalizacja zakończy się niepowodzeniem.

To jest przestarzałe: użyj $MSVC_VERSION Zamiast. Jeśli $MSVS_VERSION jest ustawiony i $MSVC_VERSION
nie jest, $MSVC_VERSION zostanie automatycznie ustawione na $MSVS_VERSION. Jeśli oba są ustawione na
różne wartości, scons zgłosi błąd.

MSVSBUILDCOM
Wiersz poleceń kompilacji umieszczony w wygenerowanym pliku projektu Microsoft Visual Studio. The
domyślnie program Visual Studio wywołuje SCons z dowolnymi określonymi celami kompilacji.

MSVSCLEANCOM
Czysta linia poleceń umieszczona w wygenerowanym pliku projektu Microsoft Visual Studio. The
domyślnie program Visual Studio wywołuje SCons z opcją -c, aby je usunąć
określone cele.

Kodowanie MSV
Ciąg kodujący umieszczony w wygenerowanym pliku projektu Microsoft Visual Studio. The
domyślnie jest kodowanie Windows-1252.

MSVSPROJECTCOM
Akcja używana do generowania plików projektu Microsoft Visual Studio.

MSVSPROJECTSUFFIX
Przyrostek używany w plikach projektu Microsoft Visual Studio (DSP). Wartość domyślna to
.vcproj w przypadku korzystania z programu Visual Studio w wersji 7.x (.NET) lub nowszej oraz .dsp w przypadku
przy użyciu wcześniejszych wersji programu Visual Studio.

MSVSREBUILDCOM
Wiersz poleceń przebudowy umieszczony w wygenerowanym pliku projektu Microsoft Visual Studio.
Domyślnie program Visual Studio wywołuje SCons z dowolnymi określonymi celami przebudowy.

MSVSSCONS
SCons używane w wygenerowanych plikach projektu Microsoft Visual Studio. Wartość domyślna to
wersja SCons używana do generowania pliku projektu.

MSVSSCONSCOM
Domyślne polecenie SCons używane w wygenerowanych plikach projektu Microsoft Visual Studio.

MSVSSCONSCRIPT
Plik sconscript (tzn. plik SConstruct lub SConscript), który zostanie wywołany
Pliki projektu programu Visual Studio (za pośrednictwem pliku $MSVSSCONSCOM zmienny). Wartość domyślna to
ten sam plik sconscript, który zawiera wywołanie Projekt MSVS do zbudowania pliku projektu.

MSVSSCONSFLAGI
Flagi SCons używane w wygenerowanych plikach projektu Microsoft Visual Studio.

MSVSSOLUTIONCOM
Akcja używana do generowania plików rozwiązania Microsoft Visual Studio.

SUFIKS MSVSSOLUTION
Przyrostek używany w plikach rozwiązania Microsoft Visual Studio (DSW). Wartość domyślna to
.sln w przypadku korzystania z programu Visual Studio w wersji 7.x (.NET) i .dsw w przypadku korzystania z wcześniejszych wersji
programu Visual Studio.

MT
Program używany w systemach Windows do osadzania manifestów w bibliotekach DLL i EXE. Zobacz też
$WINDOWS_EMBED_MANIFEST.

MTEXECOM
Wiersz poleceń systemu Windows używany do osadzania manifestów w plikach wykonywalnych. Zobacz też
$MTSHLIBCOM.

MTFLAGI
Flagi przekazane do $MT program do osadzania manifestu (tylko Windows).

MTSHLIBCOM
Wiersz poleceń systemu Windows używany do osadzania manifestów w bibliotekach współdzielonych (DLL). Widzieć
również $MTEXECOM.

WERSJA MWCW
Numer wersji kompilatora MetroWerks CodeWarrior C, który ma być używany.

WERSJE MWCW
Lista zainstalowanych wersji kompilatora MetroWerks CodeWarrior C w tym systemie.

IMIĘ
Określa nazwę projektu do spakowania.

no_import_lib
Gdy jest ustawione na wartość różną od zera, blokuje tworzenie odpowiedniej statycznej biblioteki importu systemu Windows
przez konstruktora SharedLibrary, jeśli jest używany z MinGW, Microsoft Visual Studio lub
Metrowerks. Uniemożliwia to również tworzenie pliku eksportu (.exp) podczas używania
Microsoft VisualStudio.

OBJPREFIX
Przedrostek używany w (statycznych) nazwach plików obiektowych.

OBJSUFIKS
Sufiks używany w (statycznych) nazwach plików obiektowych.

P4
Plik wykonywalny Perforce.

P4COM
Wiersz poleceń używany do pobierania plików źródłowych z Perforce.

P4COMSTR
Ciąg wyświetlany podczas pobierania pliku źródłowego z Perforce. Jeśli nie jest to ustawione,
następnie $P4COM (wiersz poleceń).

P4FLAGI
Opcje ogólne przekazywane do Perforce.

PAKIETROOT
Określa katalog, w którym zostaną umieszczone wszystkie pliki wynikowego archiwum, jeśli
odpowiedni. Wartość domyślna to „$NAZWA-$WERSJA”.

TYP PRZESYŁKI
Wybiera typ pakietu do zbudowania. Obecnie dostępne są:

* msi - Instalator Microsoft * obr./min - Menedżer pakietów Redhat * ipkg - Pakiet Ity
System zarządzania * tarbz2 - skompresowany tar * targz - skompresowany tar * zip - plik zip
* src_tarbz2 – skompresowane źródło tar * src_targz – skompresowane źródło tar * src_zip –
źródło pliku zip

Można to zastąpić opcją wiersza poleceń „package_type”.

WERSJA PAKIETU
Wersja pakietu (nie podstawowego projektu). Obecnie jest to tylko używane
przez firmę pakującą RPM i powinien odzwierciedlać zmiany w opakowaniu, a nie w materiale bazowym
sam kod projektu.

PCH
Prekompilowany nagłówek Microsoft Visual C++, który będzie używany podczas kompilowania obiektu
akta. Ta zmienna jest ignorowana przez narzędzia inne niż Microsoft Visual C++. Kiedy to
zmienna jest zdefiniowana SCons doda opcje do wiersza poleceń kompilatora, aby to spowodować
użyj prekompilowanego nagłówka, a także skonfiguruje zależności dla pliku PCH.
Przykład:

env['PCH'] = 'StdAfx.pch'

PCCHCOM
Wiersz poleceń używany przez PCH builder do wygenerowania prekompilowanego nagłówka.

PCHCOMSTR
Ciąg wyświetlany podczas generowania prekompilowanego nagłówka. Jeśli nie jest to ustawione, to
$PCHCOM (wiersz poleceń).

PCHPDBFLAG
Zmienna konstrukcyjna, która po rozwinięciu dodaje flagę /yD do wiersza poleceń
tylko jeśli $PDB zmienna konstrukcyjna jest ustawiona.

PCSTOP
Ta zmienna określa, jaka część pliku źródłowego jest prekompilowana. Ta zmienna jest
ignorowane przez narzędzia inne niż Microsoft Visual C++ lub gdy zmienna PCH nie jest
używany. Kiedy ta zmienna jest zdefiniowana, musi to być ciąg znaków będący nazwą
nagłówek, który jest dołączony na końcu prekompilowanej części plików źródłowych, lub
pusty ciąg znaków, jeśli używana jest konstrukcja „#pragma hrdstop”:

env['PCHSTOP'] = 'StdAfx.h'

PDB
Plik Microsoft Visual C++ PDB, który będzie przechowywać informacje debugowania dla obiektu
plików, bibliotek współdzielonych i programów. Zmienna ta jest ignorowana przez narzędzia inne niż
Microsoft Visual C++. Kiedy ta zmienna jest zdefiniowana, SCons doda opcje do
wiersz poleceń kompilatora i linkera, aby spowodować wygenerowanie zewnętrznego debugowania
informacje, a także skonfiguruje zależności dla pliku PDB. Przykład:

env['PDB'] = 'witaj.pdb'

Przełącznik kompilatora Visual C++, którego SCons używa domyślnie do generowania informacji PDB
is /Z7. Działa to poprawnie z połączeniem równoległym (-j) kompiluje się, ponieważ osadza plik debug
informacji w pośrednich plikach obiektowych, zamiast udostępniać pojedynczy plik PDB
pomiędzy wieloma plikami obiektowymi. Jest to również jedyny sposób uzyskania informacji debugowania
osadzony w bibliotece statycznej. Używając /Zi zamiast tego może zapewnić lepszy czas połączenia
wydajność, chociaż kompilacje równoległe nie będą już działać. Można generować pliki PDB
z /Zi przełącz, zastępując ustawienie domyślne $CCPDBFLAGS zmienny; zobacz wpis dot
tę zmienną dla konkretnych przykładów.

PDFCOM
Przestarzały synonim słowa $DVIPDFCOM.

PDFLATEX
Narzędzie pdflatex.

PDFLATEXCOM
Wiersz poleceń używany do wywołania narzędzia pdflatex.

PDFLATEXCOMSTR
Ciąg wyświetlany podczas wywoływania narzędzia pdflatex. Jeśli nie jest to ustawione, to
$PDFLATEXCOM (wiersz poleceń).

env = Środowisko(PDFLATEX;COMSTR = "Budowanie $TARGET z danych wejściowych LaTeX $SOURCES")

PDFLATEXFLAGI
Opcje ogólne przekazane do narzędzia pdflatex.

PREFIKS PDF
Przedrostek używany w nazwach plików PDF.

PDFSUFIKS
Sufiks używany w nazwach plików PDF.

PDFTEX
Narzędzie pdftex.

PDFTEXCOM
Wiersz poleceń używany do wywoływania narzędzia pdftex.

PDFTEXCOMSTR
Ciąg wyświetlany podczas wywoływania narzędzia pdftex. Jeśli nie jest to ustawione, to
$PDFTEXCOM (wiersz poleceń).

env = Środowisko(PDFTEXCOMSTR = "Budowanie $TARGET z danych wejściowych TeX-a $SOURCES")

FLAGI PDFTEX
Opcje ogólne przekazane do narzędzia pdftex.

PKGCHK
W systemach Solaris program sprawdzający pakiety, który będzie używany (wraz z
$PKGINFO), aby wyszukać zainstalowane wersje kompilatora Sun PRO C++. Wartość domyślna to
/usr/sbin/pgkchk.

PKGINFO
W systemach Solaris program informacyjny pakietu, który będzie używany (wraz z
$PKGCHK), aby wyszukać zainstalowane wersje kompilatora Sun PRO C++. Wartość domyślna to
pakietinfo.

PLATFORMA
Nazwa platformy użytej do utworzenia Środowiska. Jeśli nie określono żadnej platformy
po utworzeniu środowiska scons automatycznie wykrywa platformę.

env = Środowisko(narzędzia = [])
if env['PLATFORMA'] == 'cygwin':
Narzędzie('mingw')(env)
jeszcze:
Narzędzie('msvc')(env)

POAUTOINIT
Kurs $POAUTOINIT zmienna, jeśli jest ustawiona na True (przy niezerowej wartości liczbowej), niech msginit
narzędzie do automatycznej inicjalizacji brakujący Pliki PO z msginit(1). Dotyczy to
obie, POInit i POAktualizacja builders (i inne, które używają któregokolwiek z nich).

POCREATE_ALIAS
Wspólny alias dla wszystkich plików PO utworzonych za pomocą POInit konstruktor (domyślnie: „po-create”). Widzieć
narzędzie msginit i POInit budowniczy.

POSUFIKS
Przyrostek używany w plikach PO (domyślnie: '.po') Zobacz narzędzie msginit i POInit budowniczy.

POTDOMENA
Kurs $POTDOMAIN definiuje domyślną domenę, używaną do generowania nazwy pliku POT jako $POTDOMAIN.garnek
gdy użytkownik nie podał nazwy pliku POT. Dotyczy to POTUaktualizacja, POInit i
POAktualizacja budowniczowie (i budowniczowie, którzy ich używają, np Tłumacz). Zwykle (jeśli
$POTDOMAIN nie jest zdefiniowany), konstruktorzy używają Messages.pot jako domyślnej nazwy pliku POT.

POTSUFIKS
Przyrostek używany w plikach szablonów PO (domyślnie: „.pot”). Zobacz narzędzie xgettext i POTUaktualizacja
budowniczy.

POTUPDATE_ALIAS
Nazwa wspólnego fałszywego celu dla wszystkich szablonów PO utworzonych za pomocą POAktualizacja (domyślny:
„aktualizacja pot”). Zobacz narzędzie xgettext i POTUaktualizacja budowniczy.

POUPDATE_ALIAS
Wspólny alias dla wszystkich zdefiniowanych plików PO POAktualizacja konstruktor (domyślnie:
„po-aktualizacja”). Zobacz narzędzie msgmerge i POAktualizacja budowniczy.

PRINT_CMD_LINE_FUNC
Funkcja Pythona używana do drukowania wierszy poleceń w trakcie ich wykonywania (zakładając, że
drukowanie poleceń nie jest wyłączone przez -q or -s opcje lub ich odpowiedniki). The
funkcja powinna przyjmować cztery argumenty: s, wykonywane polecenie (string), cel,
budowany cel (węzeł pliku, lista lub nazwa(-y) ciągu znaków), źródło, żródła)
używane (węzeł pliku, lista lub nazwa(-y) ciągu znaków) oraz env, środowisko, z którego korzystamy.

Funkcja musi sama wykonać drukowanie. Domyślna implementacja, używana w przypadku this
zmienna nie jest ustawiona lub ma wartość Brak, wynosi:

def print_cmd_line(s, cel, źródło, środowisko):
sys.stdout.write(s + "\n")

Oto przykład bardziej interesującej funkcji:

def print_cmd_line(s, cel, źródło, środowisko):
sys.stdout.write("Budynek %s -> %s...\n" %
(' i '.join([str(x) dla x w źródle]),
' i '.join([str(x) dla x w miejscu docelowym])))
env=Środowisko(PRINT_CMD_LINE_FUNC=print_cmd_line)
env.Program('foo', 'foo.c')

To po prostu wypisuje „Budynek nazwa docelowa od Nazwa źródła..." zamiast rzeczywistego
polecenia. Taka funkcja może również rejestrować rzeczywiste polecenia w pliku dziennika, na przykład
przykład.

PROGEMITTER
WSZYSTKO

PROGPREFIX
Przedrostek używany w nazwach plików wykonywalnych.

PROGSUFIKS
Sufiks używany w nazwach plików wykonywalnych.

PSCOM
Wiersz poleceń używany do konwersji plików TeX DVI na plik PostScript.

PSCOMSTR
Ciąg wyświetlany podczas konwersji pliku TeX DVI na plik PostScript. Jeśli to
nie jest ustawiony, to $PSCOM (wiersz poleceń).

PSPREFIX
Przedrostek używany w nazwach plików PostScript.

PSSUFIKS
Przedrostek używany w nazwach plików PostScript.

QT_AUTOSKAN
Wyłącz skanowanie w poszukiwaniu plików przenośnych. Użyj Moc Builder, aby jawnie określić pliki
uruchomić moc dalej.

QT_BINPATH
Ścieżka, w której zainstalowane są pliki binarne qt. Wartość domyślna to „$QTDIR/kosz'.

QT_CPPPATH
Ścieżka, w której instalowane są pliki nagłówkowe qt. Wartość domyślna to
'$QTDIR/włączać'. Uwaga: Jeśli ustawisz tę zmienną na Brak, narzędzie nie zmieni
$CPPATH zmienna konstrukcyjna.

QT_DEBUG
Drukuje wiele informacji debugowania podczas skanowania w poszukiwaniu plików moc.

QT_LIB
Wartość domyślna to „qt”. Możesz ustawić to na „qt-mt”. Uwaga: jeśli to ustawisz
zmiennej na None, narzędzie nie zmieni wartości $LIBS zmienna.

QT_LIBPATH
Ścieżka, w której są zainstalowane biblioteki qt. Wartość domyślna to „$QTDIR/ lib'.
Uwaga: Jeśli ustawisz tę zmienną na Brak, narzędzie nie zmieni $LIBPATH
zmienna konstrukcyjna.

QT_MOC
Wartość domyślna to '$QT_BINPATH/moc”.

QT_MOCCXXPREFIX
Wartość domyślna to „”. Przedrostek plików wyjściowych moc, gdy źródłem jest plik cxx.

QT_MOCCXXSUFFIX
Wartość domyślna to „.moc”. Przyrostek dla plików wyjściowych moc, gdy źródłem jest plik cxx.

QT_MOCFROMCXXCOM
Polecenie wygenerowania pliku moc z pliku cpp.

QT_MOCFROMCXXCOMSTR
Ciąg wyświetlany podczas generowania pliku moc z pliku cpp. Jeśli nie jest to ustawione,
następnie $QT_MOCFROMCXXCOM (wiersz poleceń).

QT_MOCFROMCXXFLAGS
Wartość domyślna to „-i”. Flagi te są przekazywane do moc podczas kpin z pliku C++.

QT_MOCFROMHCOM
Polecenie wygenerowania pliku moc z nagłówka.

QT_MOCFROMHCOMSTR
Ciąg wyświetlany podczas generowania pliku moc z pliku cpp. Jeśli nie jest to ustawione,
następnie $QT_MOCFROMHCOM (wiersz poleceń).

QT_MOCFROMHFLAGS
Wartość domyślna to „”. Flagi te są przekazywane do moc podczas kpin z pliku nagłówkowego.

QT_MOCHPREFIX
Wartość domyślna to „moc_”. Przedrostek plików wyjściowych moc, gdy źródłem jest nagłówek.

QT_MOCHSUFFIX
Wartość domyślna to '$CXXFILESUFIKS'. Przyrostek dla plików wyjściowych moc, gdy źródłem jest a
header.

QT_UIC
Wartość domyślna to '$QT_BINPATH/uic”.

QT_UICCOM
Polecenie generowania plików nagłówkowych z plików .ui.

QT_UICCOMSTR
Ciąg wyświetlany podczas generowania plików nagłówkowych z plików .ui. Jeśli nie jest to ustawione,
następnie $QT_UICCOM (wiersz poleceń).

QT_UICDECLFLAGS
Wartość domyślna to „”. Flagi te są przekazywane do uic podczas tworzenia pliku aah z pliku
plik .ui.

QT_UICDECCLPREFIX
Wartość domyślna to „”. Prefiks dla plików nagłówkowych generowanych przez uic.

QT_UICDECLSSUFFIX
Wartość domyślna to „.h”. Sufiks dla plików nagłówkowych generowanych przez uic.

QT_UICIMPLFLAGS
Wartość domyślna to „”. Flagi te są przekazywane do uic podczas tworzenia pliku cxx z pliku
plik .ui.

QT_UICIMPPREFIX
Wartość domyślna to „uic_”. Prefiks dla plików implementacyjnych generowanych przez uic.

QT_UICIMPSUFFIX
Wartość domyślna to '$CXXFILESUFIKS'. Przyrostek dla plików implementacyjnych generowanych przez uic.

QT_UISUFFIX
Wartość domyślna to „.ui”. Przyrostek plików wejściowych projektanta.

QTDIR
Narzędzie qt próbuje pobrać to z os.environ. Inicjuje także wszystkie QT_*
zmienne konstrukcyjne wymienione poniżej. (Zauważ, że wszystkie ścieżki są zbudowane za pomocą
metodę os.path.join() Pythona, ale są one tutaj wymienione z separatorem „/” dla łatwiejszego
czytanie.) Ponadto zmienne środowiskowe konstrukcji $CPPATH, $LIBPATH i
$LIBS mogą być modyfikowane i zmienne $PROGEMITTER, $SHLIBEMITTER i $LIBEMITTER
są modyfikowane. Ponieważ korzystanie z tego narzędzia ma wpływ na wydajność kompilacji, tak
aby wyraźnie to określić podczas tworzenia środowiska:

Środowisko(tools=['domyślne','qt'])

Narzędzie qt obsługuje następujące operacje:

automatycznie Moc filet generacja od nagłówek akta. Nie musisz określać plików moc
wyraźnie, narzędzie zrobi to za Ciebie. Aby to zrobić, należy jednak spełnić kilka warunków:
Twój plik nagłówkowy musi mieć tę samą bazę plików, co plik implementacyjny i musi pozostać
w tym samym katalogu. Musi mieć jeden z przyrostków .h, .hpp, .H, .hxx, .hh. Ty
można wyłączyć automatyczne generowanie plików moc, ustawiając QT_AUTOSCAN na 0. Zobacz także
odpowiedni moc() metoda konstruktora.

automatycznie Moc filet generacja od cxx akta. Jak stwierdzono w dokumentacji qt,
dołącz plik moc na końcu pliku cxx. Pamiętaj, że musisz uwzględnić
plik, który jest generowany przez transformację
${QT_MOCCXXPREFIX} Domyślnie ${QT_MOCCXXSUFFIX} .moc. Ostrzeżenie
jest generowany po zbudowaniu pliku moc, jeśli nie dołączysz prawidłowego pliku. Jeśli
używasz katalogu VariantDir, może być konieczne określenie duplikatu = 1. Możesz wyłączyć
automatyczne generowanie pliku moc poprzez ustawienie QT_AUTOSCAN na 0. Zobacz także odpowiedni
moc metoda budownicza.

automatycznie obsługa of .ui akta. Pliki implementacyjne wygenerowane z plików .ui
są obsługiwane w podobny sposób jak pliki yacc lub lex. Każdy plik .ui podany jako źródło
Program, Biblioteka lub SharedLibrary wygenerują trzy pliki: plik deklaracji, plik
plik implementacyjny i plik moc. Ponieważ istnieją również generowane nagłówki, możesz
należy określić duplikat = 1 w wywołaniach VariantDir. Zobacz także odpowiedni Uic
metoda budownicza.

RANLIB
Indeksator archiwum.

RANLIBCOM
Wiersz poleceń używany do indeksowania archiwum biblioteki statycznej.

RANLIBCOMSTR
Ciąg wyświetlany podczas indeksowania archiwum biblioteki statycznej. Jeśli nie jest to ustawione,
następnie $RANLIBCOM (wiersz poleceń).

env = Środowisko(RANLIBCOMSTR = „Indeksowanie $TARGET”)

FLAGI RANLIB
Opcje ogólne przekazane do indeksatora archiwum.

RC
Kompilator zasobów używany do tworzenia pliku zasobów Microsoft Visual C++.

RCCOM
Wiersz poleceń używany do tworzenia pliku zasobów Microsoft Visual C++.

RCCOMSTR
Ciąg wyświetlany podczas wywoływania kompilatora zasobów w celu zbudowania programu Microsoft Visual
Plik zasobów C++. Jeśli nie jest to ustawione, to $RCCOM (wiersz poleceń).

RCFLAGI
Flagi przekazane do kompilatora zasobów przez konstruktora RES.

FLAGI RCIN
Automatycznie wygenerowana zmienna konstrukcyjna zawierająca opcje wiersza poleceń
do określania katalogów, które mają być przeszukiwane przez kompilator zasobów. Wartość
$RCINCFLAGS jest tworzony poprzez dołączenie $RCINCPREFIKS i $RCINCSSUFIKS na początek i
koniec każdego katalogu w $CPPATH.

RCINCPREFIKS
Przedrostek (flaga) używany do określenia katalogu dołączanego w kompilatorze zasobów
wiersz poleceń. Zostanie on dodany na początku każdego katalogu w pliku $CPPATH
zmienna konstrukcyjna, gdy $RCINCFLAGS zmienna jest rozwinięta.

SUFIKS RCINC
Przyrostek używany do określenia katalogu dołączanego w wierszu poleceń kompilatora zasobów.
Zostanie on dodany na końcu każdego katalogu w pliku $CPPATH Budowa
zmienna, gdy $RCINCFLAGS zmienna jest rozwinięta.

RCS
Plik wykonywalny RCS. Należy zauważyć, że ta zmienna nie jest w rzeczywistości używana w poleceniu do
pobierz pliki źródłowe z RCS; zobacz $RCS_CO zmienna konstrukcyjna, poniżej.

RCS_CO
Plik wykonywalny RCS „checkout”, używany do pobierania plików źródłowych z RCS.

RCS_COCOM
Wiersz poleceń używany do pobierania (pobierania) plików źródłowych z RCS.

RCS_COCOMSTR
Ciąg wyświetlany podczas pobierania pliku źródłowego z RCS. Jeśli nie jest to ustawione, to
$RCS_COCOM (wiersz poleceń).

RCS_COFLAGS
Opcje przekazywane do $RCS_CO dowództwo.

RDirs
Funkcja konwertująca ciąg znaków na listę instancji Dir poprzez przeszukiwanie
repozytoria.

REGSVR
Program używany w systemach Windows do rejestrowania nowo utworzonej biblioteki DLL za każdym razem, gdy plik
Biblioteka współdzielona konstruktorowi przekazany został argument słowa kluczowego Register=1.

REGSVRCOM
Wiersz poleceń używany w systemach Windows do rejestracji nowo utworzonej biblioteki DLL
kiedykolwiek Biblioteka współdzielona konstruktorowi przekazany został argument słowa kluczowego Register=1.

REGSVRCOMSTR
Ciąg wyświetlany podczas rejestracji nowo utworzonego pliku DLL. Jeśli nie jest to ustawione, to
$REGSVRCOM (wiersz poleceń).

REGSVRFLAGS
Flagi przekazywane do programu rejestrującego DLL w systemach Windows, gdy nowo zbudowana biblioteka DLL
biblioteka jest zarejestrowana. Domyślnie obejmuje to /s co zapobiega wyświetlaniu okien dialogowych
przed wyskakiwaniem i wymaganiem uwagi użytkownika.

RMIC
Kompilator kodu źródłowego Java RMI.

RMICCOM
Wiersz poleceń używany do kompilowania plików klas pośrednich i szkieletowych z klas Java, które
zawierają implementacje RMI. Wszelkie opcje określone w $RMICFLAGS Budowa
zmienne są zawarte w tym wierszu poleceń.

RMICCOMSTR
Ciąg wyświetlany podczas kompilowania plików klas pośredniczących i szkieletowych z klas Java
które zawierają implementacje RMI. Jeśli nie jest to ustawione, to $RMICCOM (wiersz poleceń)
jest wyświetlany.

env = Środowisko(RMICCOMSTR = "Generowanie plików klasy pośredniczącej/szkieletowej $TARGETS z $SOURCES")

RMICFLAG
Opcje ogólne przekazywane do kompilatora kodu pośredniczącego Java RMI.

_RPAT
Automatycznie wygenerowana zmienna konstrukcyjna zawierająca flagi rpath, które mają zostać użyte
podczas łączenia programu z bibliotekami współdzielonymi. Wartość $_RPAT jest tworzony przez
dołączanie $RPATHPREFIKS i SUFIKS $RPATH na początek i na koniec każdego katalogu w
$RPATKA.

ŚCIEŻKA
Lista ścieżek wyszukiwania bibliotek współdzielonych podczas uruchamiania programów. Obecnie tylko
używane w linkerach GNU (gnulink), IRIX (sgilink) i Sun (sunlink). Ignorowane dalej
platformy i łańcuchy narzędzi, które go nie obsługują. Należy pamiętać, że ścieżki dodane do RPATH to
nie są w żaden sposób przekształcane przez scons: jeśli chcesz ścieżki absolutnej, musisz ją stworzyć
absolutny siebie.

PREFIKS RPATH
Przedrostek używany do określenia katalogu, w którym mają być przeszukiwane biblioteki współdzielone, kiedy
uruchamiane programy. Zostanie on dodany na początku każdego katalogu w pliku
$RPATKA zmienna konstrukcyjna, gdy $_RPAT zmienna jest generowana automatycznie.

PRZYKŁADKA RPATH
Przyrostek używany do określenia katalogu, w którym mają być przeszukiwane biblioteki współdzielone, gdy
uruchamiane programy. Zostanie on dodany na końcu każdego katalogu w pliku $RPATKA
zmienna konstrukcyjna, gdy $_RPAT zmienna jest generowana automatycznie.

RPCGEN
Kompilator protokołu RPC.

FLAGI KLIENTA RPCGEN
Opcje przekazywane do kompilatora protokołu RPC podczas generowania kodów pośredniczących po stronie klienta. Te
są dodatkiem do flag określonych w $RPCGENFLAGS zmienna konstrukcyjna.

FLAGI RPCGEN
Opcje ogólne przekazywane do kompilatora protokołu RPC.

FLAGI RPCGENHEDER
Opcje przekazywane do kompilatora protokołu RPC podczas generowania pliku nagłówkowego. To są
oprócz wszelkich flag określonych w $RPCGENFLAGS zmienna konstrukcyjna.

FLAGI USŁUGI RPCGEN
Opcje przekazywane do kompilatora protokołu RPC podczas generowania kodów pośredniczących po stronie serwera. Te
są dodatkiem do flag określonych w $RPCGENFLAGS zmienna konstrukcyjna.

RPCGENXDRFLAGS
Opcje przekazywane do kompilatora protokołu RPC podczas generowania procedur XDR. Są w środku
dodatek do wszelkich flag określonych w $RPCGENFLAGS zmienna konstrukcyjna.

SKANERY
Lista dostępnych niejawnych skanerów zależności. Mogą zostać dodane nowe skanery plików
poprzez dołączenie do tej listy, chociaż bardziej elastycznym podejściem jest skojarzenie
skanery z określonym Builderem. Zobacz sekcje „Obiekty konstruktora” i „Skaner
Obiekty” poniżej, aby uzyskać więcej informacji.

SCCS
Plik wykonywalny SCCS.

SCCSCOM
Wiersz poleceń używany do pobierania plików źródłowych z SCCS.

SCCSCOMSTR
Ciąg wyświetlany podczas pobierania pliku źródłowego z repozytorium CVS. Jeśli tak nie jest
zestaw $SCCSCOM (wiersz poleceń).

FLAGI SCCS
Opcje ogólne przekazywane do SCCS.

SCCSGETFLAGS
Opcje przekazywane specjalnie do komendy SCCS „get”. Można to ustawić,
na przykład do -e aby sprawdzić edytowalne pliki z SCCS.

SCONS_HOME
(Opcjonalna) ścieżka do katalogu biblioteki SCons, zainicjowana z zewnątrz
środowisko. Jeśli jest ustawione, służy do konstruowania krótszego i bardziej wydajnego wyszukiwania
ścieżka w $MSVSSCONS wiersz poleceń wykonany z projektu Microsoft Visual Studio
akta.

SHCC
Kompilator C używany do generowania obiektów bibliotek współdzielonych.

SHCCCOM
Wiersz poleceń używany do kompilowania pliku źródłowego C do pliku obiektowego biblioteki współdzielonej. Każdy
opcje określone w $SHCFLAGS, $SHCCFLAGS i $CPPFLAGS zmienne konstrukcyjne
są zawarte w tym wierszu poleceń.

SHCCCOMSTR
Ciąg wyświetlany, gdy plik źródłowy C jest kompilowany do pliku obiektu współdzielonego. Jeśli to
nie jest ustawiony, to $SHCCCOM (wiersz poleceń).

env = Środowisko(SHCCCOMSTR = "Kompilowanie obiektu współdzielonego $TARGET")

SHCCFLAG
Opcje przekazywane do kompilatorów C i C++ w celu generowania obiektów bibliotek współdzielonych.

SHFLAG
Opcje przekazywane do kompilatora C (tylko; nie C++) w celu wygenerowania biblioteki współdzielonej
obiekty.

SZCXX
Kompilator C++ używany do generowania obiektów bibliotek współdzielonych.

SHCXXCOM
Wiersz poleceń używany do kompilowania pliku źródłowego C++ do pliku obiektowego biblioteki współdzielonej.
Wszelkie opcje określone w $SHCXXFLAGS i $CPPFLAGS zmienne konstrukcyjne są
zawarte w tym wierszu poleceń.

SHCXXCOMSTR
Ciąg wyświetlany, gdy plik źródłowy C++ jest kompilowany do pliku obiektu współdzielonego. Jeśli
w takim razie nie jest to ustawione $SHCXXCOM (wiersz poleceń).

env = Środowisko(SHCXXCOMSTR = "Kompilowanie obiektu współdzielonego $TARGET")

SHCXXFLAG
Opcje przekazywane do kompilatora C++ w celu generowania obiektów bibliotek współdzielonych.

SHDC
SHDC.

SHDCOM
SHDCOM.

SHDLINK
SHDLINK.

SHDLINKCOM
SHDLINKCOM.

FLAGI SHDLINK
FLAGI SHDLINK.

SHELL
Ciąg znaków określający program powłoki, który zostanie przekazany do metody $ SPAWN funkcjonować. Zobacz
$ SPAWN zmienna konstrukcyjna, aby uzyskać więcej informacji.

03 SHF
Kompilator Fortran 03 używany do generowania obiektów bibliotek współdzielonych. Powinieneś
normalnie ustaw $SHFORTRAN zmienna, która określa domyślny kompilator języka Fortran dla
wszystkie wersje Fortrana. Wystarczy ustawić 03 dolarów SHF jeśli chcesz użyć konkretnego
kompilator lub wersja kompilatora dla plików Fortran 03.

SHF03COM
Wiersz poleceń używany do kompilowania pliku źródłowego Fortran 03 do obiektu biblioteki współdzielonej
plik. Wystarczy ustawić $SHF03COM jeśli chcesz użyć określonego wiersza poleceń dla
Pliki Fortran 03. Zwykle powinieneś ustawić $SHFORTRANCOM zmienna, która określa
domyślna linia poleceń dla wszystkich wersji Fortranu.

SHF03COMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran 03 jest kompilowany do biblioteki współdzielonej
plik obiektowy. Jeśli nie jest to ustawione, to $SHF03COM or $SHFORTRANCOM (wiersz poleceń) jest
wystawiany.

FLAGI SHF03
Opcje przekazywane do kompilatora Fortran 03 do wygenerowanej biblioteki współdzielonej
obiekty. Wystarczy ustawić $SHF03FLAGI jeśli chcesz zdefiniować konkretne opcje użytkownika
dla plików Fortran 03. Zwykle powinieneś ustawić $SHFORTRANFLAGI zmienna, która
określa opcje określone przez użytkownika przekazywane do domyślnego kompilatora Fortran dla wszystkich
Wersje Fortrana.

SHF03PPCOM
Wiersz poleceń używany do kompilowania pliku źródłowego Fortran 03 do obiektu biblioteki współdzielonej
file po pierwszym uruchomieniu pliku przez preprocesor C. Wszelkie opcje określone w
dotychczasowy $SHF03FLAGI i $CPPFLAGS zmienne konstrukcyjne są zawarte w tym poleceniu
linia. Wystarczy ustawić $SHF03PPCOM jeśli chcesz użyć określonego preprocesora C
wiersz poleceń dla plików Fortran 03. Zwykle powinieneś ustawić $SHFORTRANPPCOM
zmienna, która określa domyślną linię poleceń preprocesora C dla całego języka Fortran
wersje.

SHF03PPCOMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran 03 jest kompilowany do biblioteki współdzielonej
object po pierwszym uruchomieniu pliku przez preprocesor C. Jeśli tak nie jest
zestaw $SHF03PPCOM or $SHFORTRANPPCOM (wiersz poleceń).

08 SHF
Kompilator Fortran 08 używany do generowania obiektów bibliotek współdzielonych. Powinieneś
normalnie ustaw $SHFORTRAN zmienna, która określa domyślny kompilator języka Fortran dla
wszystkie wersje Fortrana. Wystarczy ustawić 08 dolarów SHF jeśli chcesz użyć konkretnego
kompilator lub wersja kompilatora dla plików Fortran 08.

SHF08COM
Wiersz poleceń używany do kompilowania pliku źródłowego Fortran 08 do obiektu biblioteki współdzielonej
plik. Wystarczy ustawić $SHF08COM jeśli chcesz użyć określonego wiersza poleceń dla
Pliki Fortran 08. Zwykle powinieneś ustawić $SHFORTRANCOM zmienna, która określa
domyślna linia poleceń dla wszystkich wersji Fortranu.

SHF08COMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran 08 jest kompilowany do biblioteki współdzielonej
plik obiektowy. Jeśli nie jest to ustawione, to $SHF08COM or $SHFORTRANCOM (wiersz poleceń) jest
wystawiany.

FLAGI SHF08
Opcje przekazywane do kompilatora Fortran 08 do wygenerowanej biblioteki współdzielonej
obiekty. Wystarczy ustawić $SHF08FLAGI jeśli chcesz zdefiniować konkretne opcje użytkownika
dla plików Fortran 08. Zwykle powinieneś ustawić $SHFORTRANFLAGI zmienna, która
określa opcje określone przez użytkownika przekazywane do domyślnego kompilatora Fortran dla wszystkich
Wersje Fortrana.

SHF08PPCOM
Wiersz poleceń używany do kompilowania pliku źródłowego Fortran 08 do obiektu biblioteki współdzielonej
file po pierwszym uruchomieniu pliku przez preprocesor C. Wszelkie opcje określone w
dotychczasowy $SHF08FLAGI i $CPPFLAGS zmienne konstrukcyjne są zawarte w tym poleceniu
linia. Wystarczy ustawić $SHF08PPCOM jeśli chcesz użyć określonego preprocesora C
wiersz poleceń dla plików Fortran 08. Zwykle powinieneś ustawić $SHFORTRANPPCOM
zmienna, która określa domyślną linię poleceń preprocesora C dla całego języka Fortran
wersje.

SHF08PPCOMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran 08 jest kompilowany do biblioteki współdzielonej
object po pierwszym uruchomieniu pliku przez preprocesor C. Jeśli tak nie jest
zestaw $SHF08PPCOM or $SHFORTRANPPCOM (wiersz poleceń).

77 SHF
Kompilator Fortran 77 używany do generowania obiektów bibliotek współdzielonych. Powinieneś
normalnie ustaw $SHFORTRAN zmienna, która określa domyślny kompilator języka Fortran dla
wszystkie wersje Fortrana. Wystarczy ustawić 77 dolarów SHF jeśli chcesz użyć konkretnego
kompilator lub wersja kompilatora dla plików Fortran 77.

SHF77COM
Wiersz poleceń używany do kompilowania pliku źródłowego Fortran 77 do obiektu biblioteki współdzielonej
plik. Wystarczy ustawić $SHF77COM jeśli chcesz użyć określonego wiersza poleceń dla
Pliki Fortran 77. Zwykle powinieneś ustawić $SHFORTRANCOM zmienna, która określa
domyślna linia poleceń dla wszystkich wersji Fortranu.

SHF77COMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran 77 jest kompilowany do biblioteki współdzielonej
plik obiektowy. Jeśli nie jest to ustawione, to $SHF77COM or $SHFORTRANCOM (wiersz poleceń) jest
wystawiany.

FLAGI SHF77
Opcje przekazywane do kompilatora Fortran 77 do wygenerowanej biblioteki współdzielonej
obiekty. Wystarczy ustawić $SHF77FLAGI jeśli chcesz zdefiniować konkretne opcje użytkownika
dla plików Fortran 77. Zwykle powinieneś ustawić $SHFORTRANFLAGI zmienna, która
określa opcje określone przez użytkownika przekazywane do domyślnego kompilatora Fortran dla wszystkich
Wersje Fortrana.

SHF77PPCOM
Wiersz poleceń używany do kompilowania pliku źródłowego Fortran 77 do obiektu biblioteki współdzielonej
file po pierwszym uruchomieniu pliku przez preprocesor C. Wszelkie opcje określone w
dotychczasowy $SHF77FLAGI i $CPPFLAGS zmienne konstrukcyjne są zawarte w tym poleceniu
linia. Wystarczy ustawić $SHF77PPCOM jeśli chcesz użyć określonego preprocesora C
wiersz poleceń dla plików Fortran 77. Zwykle powinieneś ustawić $SHFORTRANPPCOM
zmienna, która określa domyślną linię poleceń preprocesora C dla całego języka Fortran
wersje.

SHF77PPCOMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran 77 jest kompilowany do biblioteki współdzielonej
object po pierwszym uruchomieniu pliku przez preprocesor C. Jeśli tak nie jest
zestaw $SHF77PPCOM or $SHFORTRANPPCOM (wiersz poleceń).

90 SHF
Kompilator Fortran 90 używany do generowania obiektów bibliotek współdzielonych. Powinieneś
normalnie ustaw $SHFORTRAN zmienna, która określa domyślny kompilator języka Fortran dla
wszystkie wersje Fortrana. Wystarczy ustawić 90 dolarów SHF jeśli chcesz użyć konkretnego
kompilator lub wersja kompilatora dla plików Fortran 90.

SHF90COM
Wiersz poleceń używany do kompilowania pliku źródłowego Fortran 90 do obiektu biblioteki współdzielonej
plik. Wystarczy ustawić $SHF90COM jeśli chcesz użyć określonego wiersza poleceń dla
Pliki Fortran 90. Zwykle powinieneś ustawić $SHFORTRANCOM zmienna, która określa
domyślna linia poleceń dla wszystkich wersji Fortranu.

SHF90COMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran 90 jest kompilowany do biblioteki współdzielonej
plik obiektowy. Jeśli nie jest to ustawione, to $SHF90COM or $SHFORTRANCOM (wiersz poleceń) jest
wystawiany.

FLAGI SHF90
Opcje przekazywane do kompilatora Fortran 90 do wygenerowanej biblioteki współdzielonej
obiekty. Wystarczy ustawić $SHF90FLAGI jeśli chcesz zdefiniować konkretne opcje użytkownika
dla plików Fortran 90. Zwykle powinieneś ustawić $SHFORTRANFLAGI zmienna, która
określa opcje określone przez użytkownika przekazywane do domyślnego kompilatora Fortran dla wszystkich
Wersje Fortrana.

SHF90PPCOM
Wiersz poleceń używany do kompilowania pliku źródłowego Fortran 90 do obiektu biblioteki współdzielonej
file po pierwszym uruchomieniu pliku przez preprocesor C. Wszelkie opcje określone w
dotychczasowy $SHF90FLAGI i $CPPFLAGS zmienne konstrukcyjne są zawarte w tym poleceniu
linia. Wystarczy ustawić $SHF90PPCOM jeśli chcesz użyć określonego preprocesora C
wiersz poleceń dla plików Fortran 90. Zwykle powinieneś ustawić $SHFORTRANPPCOM
zmienna, która określa domyślną linię poleceń preprocesora C dla całego języka Fortran
wersje.

SHF90PPCOMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran 90 jest kompilowany do biblioteki współdzielonej
object po pierwszym uruchomieniu pliku przez preprocesor C. Jeśli tak nie jest
zestaw $SHF90PPCOM or $SHFORTRANPPCOM (wiersz poleceń).

95 SHF
Kompilator Fortran 95 używany do generowania obiektów bibliotek współdzielonych. Powinieneś
normalnie ustaw $SHFORTRAN zmienna, która określa domyślny kompilator języka Fortran dla
wszystkie wersje Fortrana. Wystarczy ustawić 95 dolarów SHF jeśli chcesz użyć konkretnego
kompilator lub wersja kompilatora dla plików Fortran 95.

SHF95COM
Wiersz poleceń używany do kompilowania pliku źródłowego Fortran 95 do obiektu biblioteki współdzielonej
plik. Wystarczy ustawić $SHF95COM jeśli chcesz użyć określonego wiersza poleceń dla
Pliki Fortran 95. Zwykle powinieneś ustawić $SHFORTRANCOM zmienna, która określa
domyślna linia poleceń dla wszystkich wersji Fortranu.

SHF95COMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran 95 jest kompilowany do biblioteki współdzielonej
plik obiektowy. Jeśli nie jest to ustawione, to $SHF95COM or $SHFORTRANCOM (wiersz poleceń) jest
wystawiany.

FLAGI SHF95
Opcje przekazywane do kompilatora Fortran 95 do wygenerowanej biblioteki współdzielonej
obiekty. Wystarczy ustawić $SHF95FLAGI jeśli chcesz zdefiniować konkretne opcje użytkownika
dla plików Fortran 95. Zwykle powinieneś ustawić $SHFORTRANFLAGI zmienna, która
określa opcje określone przez użytkownika przekazywane do domyślnego kompilatora Fortran dla wszystkich
Wersje Fortrana.

SHF95PPCOM
Wiersz poleceń używany do kompilowania pliku źródłowego Fortran 95 do obiektu biblioteki współdzielonej
file po pierwszym uruchomieniu pliku przez preprocesor C. Wszelkie opcje określone w
dotychczasowy $SHF95FLAGI i $CPPFLAGS zmienne konstrukcyjne są zawarte w tym poleceniu
linia. Wystarczy ustawić $SHF95PPCOM jeśli chcesz użyć określonego preprocesora C
wiersz poleceń dla plików Fortran 95. Zwykle powinieneś ustawić $SHFORTRANPPCOM
zmienna, która określa domyślną linię poleceń preprocesora C dla całego języka Fortran
wersje.

SHF95PPCOMSTR
Ciąg wyświetlany, gdy plik źródłowy Fortran 95 jest kompilowany do biblioteki współdzielonej
object po pierwszym uruchomieniu pliku przez preprocesor C. Jeśli tak nie jest
zestaw $SHF95PPCOM or $SHFORTRANPPCOM (wiersz poleceń).

SHFORTRAN
Domyślny kompilator języka Fortran używany do generowania obiektów bibliotek współdzielonych.

SHFORTRANCOM
Wiersz poleceń używany do kompilowania pliku źródłowego języka Fortran do obiektu biblioteki współdzielonej
plik.

SHFORTRANCOMSTR
Ciąg wyświetlany, gdy plik źródłowy języka Fortran jest kompilowany do obiektu biblioteki współdzielonej
plik. Jeśli nie jest to ustawione, to $SHFORTRANCOM (wiersz poleceń).

SHFORTRANFLAGI
Opcje przekazywane do kompilatora języka Fortran w celu generowania obiektów bibliotek współdzielonych.

SHFORTRANPPCOM
Wiersz poleceń używany do kompilowania pliku źródłowego języka Fortran do pliku obiektowego biblioteki współdzielonej
po pierwszym uruchomieniu pliku przez preprocesor C. Wszelkie opcje określone w
$SHFORTRANFLAGI i $CPPFLAGS zmienne konstrukcyjne są zawarte w tym poleceniu
Linia.

SHFORTRANPPCOMSTR
Ciąg wyświetlany, gdy plik źródłowy języka Fortran jest kompilowany do obiektu biblioteki współdzielonej
file po pierwszym uruchomieniu pliku przez preprocesor C. Jeśli nie jest to ustawione, to
$SHFORTRANPPCOM (wiersz poleceń).

SHLIBEMITTER
WSZYSTKO

SHLIBNOVERSIONSYMLINKI
Poleca Biblioteka współdzielona builder, aby nie tworzył dowiązań symbolicznych dla udostępnionych wersji
biblioteki.

SHLIBPREFIX
Przedrostek używany w nazwach plików bibliotek współdzielonych.

_SHLIBSONAZWA
Makro automatycznie generujące SONAME biblioteki współdzielonej na podstawie $TARGET,
$SHLIBVERSION i $SHLIBSUFFIX. Używany przez Biblioteka współdzielona builder, gdy narzędzie linkera
obsługuje SONAME (np. gnulink).

SHLIBSUFIKS
Sufiks używany w nazwach plików bibliotek współdzielonych.

SHLIBVERSION
Po zdefiniowaniu tej zmiennej konstrukcyjnej tworzona jest wersjonowana biblioteka współdzielona
Biblioteka współdzielona budowniczy. To aktywuje $_SHLIBVERSIONFLAGS i w ten sposób modyfikuje
$SHLINKCOM w razie potrzeby dodaje numer wersji do nazwy biblioteki i tworzy plik
potrzebne dowiązania symboliczne. $SHLIBVERSION wersje powinny istnieć w formie alfanumerycznej,
wartości rozdzielane dziesiętnie zgodnie z definicją wyrażenia regularnego „\w+[\.\w+]*”. Przykład
$SHLIBVERSION wartości to „1”, „1.2.3” i „1.2.gitaa412c8b”.

_SHLIBVERSIONFLAGS
To makro automatycznie wprowadza dodatkowe flagi $SHLINKCOM podczas budowania wersji
Biblioteka współdzielona (to jest, kiedy $SHLIBVERSION jest ustawiony). _SHLIBVERSIONFLAGS zwykle dodaje
$SHLIBVERSIONFLAGS oraz kilka dodatkowych, dynamicznie generowanych opcji (takich jak
-Wl,-soname=$_SHLIBSONAZWA. Nie jest używany przez „zwykłe” (niewersjonowane) biblioteki współdzielone.

FLAGI WERSJI SHLIB
Dodano dodatkowe flagi $SHLINKCOM podczas budowania wersji Biblioteka współdzielona. Te flagi są
używany tylko wtedy, gdy $SHLIBVERSION jest ustawiona.

SHLINK
Linker dla programów korzystających z bibliotek współdzielonych.

SHLINKCOM
Wiersz poleceń używany do łączenia programów przy użyciu bibliotek współdzielonych.

SHLINKCOMSTR
Ciąg wyświetlany, gdy programy korzystające z bibliotek współdzielonych są połączone. Jeśli tak nie jest
zestaw $SHLINKCOM (wiersz poleceń).

env = Środowisko(SHLINKCOMSTR = "Łączenie udostępnionego $TARGET")

SHLINKFLAGI
Ogólne opcje użytkownika przekazywane do linkera dla programów korzystających z bibliotek współdzielonych. Notatka
że ta zmienna powinna nie zawierać -l (lub podobne) opcje łączenia z
biblioteki wymienione w $LIBS, ani -L (lub podobne) zawierają opcje ścieżki wyszukiwania, które skanują
generuje automatycznie z $LIBPATH. Zobaczyć $_LIBFLAGS powyżej dla zmiennej that
rozszerza się o opcje łączenia bibliotek i $_LIBDIRFLAGS powyżej dla zmiennej that
rozszerza się o opcje ścieżki przeszukiwania biblioteki.

SHOBJPREFIX
Przedrostek używany w nazwach plików obiektów współdzielonych.

SHOBJSUFIKS
Sufiks używany w nazwach plików obiektów współdzielonych.

NAZWA SONA
Zmienna używana do zakodowania na stałe SONAME dla wersjonowanej biblioteki współdzielonej/modułu ładowalnego.

env.SharedLibrary('test', 'test.c', SHLIBVERSION='0.1.2', SONAME='libtest.so.2')

Zmienna jest używana na przykład przez narzędzie linkera gnulink.

ŹRÓDŁO
Zastrzeżona nazwa zmiennej, której nie można ustawić ani używać w środowisku konstrukcyjnym.
(Patrz „Podstawianie zmiennych” poniżej.)

ŹRÓDŁO_URL
Adres URL (adres internetowy) lokalizacji, z której pobrano projekt. To jest
używany do wypełnienia pola Źródło: w informacjach kontrolnych dla Ipkg i RPM
pakiety.

ŹRÓDŁA
Zastrzeżona nazwa zmiennej, której nie można ustawić ani używać w środowisku konstrukcyjnym.
(Patrz „Podstawianie zmiennych” poniżej.)

IKRA
Funkcja interpretera poleceń, która zostanie wywołana w celu wykonania ciągów wiersza poleceń.
Funkcja musi oczekiwać następujących argumentów:

def spawn(Shell, escape, cmd, args, env):

sh to ciąg znaków określający program powłoki, który ma zostać użyty. uciec jest funkcją, która może być
wywoływany w celu uniknięcia znaków specjalnych powłoki w wierszu poleceń. cmd jest droga do
polecenie do wykonania. args to argumenty polecenia. env jest słownikiem j
zmienne środowiskowe, w których polecenie powinno zostać wykonane.

STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME
Gdy ta zmienna ma wartość true, przyjmuje się, że obiekty statyczne i obiekty współdzielone są obiektami
To samo; oznacza to, że SCons nie sprawdza połączenia obiektów statycznych z biblioteką współdzieloną.

SUBST_DICT
Słownik używany przez Plik podrzędny or Plik tekstowy konstruktorzy wartości zastępczych. To
może być dowolną wartością akceptowaną przez konstruktora dict(), więc oprócz słownika
listy krotek są również dopuszczalne.

PREFIKS PODPLIKU
Przedrostek używany do Plik podrzędny nazwy plików, domyślnie ciąg zerowy.

SUFIKS PODPLIKU
Przyrostek używany dla Plik podrzędny nazwy plików, domyślnie ciąg zerowy.

PODSUMOWANIE
Krótkie podsumowanie tego, na czym polega projekt. Służy do wypełniania podsumowania:
pole w informacjach kontrolnych dla pakietów Ipkg i RPM oraz jako plik
Opis: pole w pakietach MSI.

HAUST
Opakowanie i generator interfejsu języka skryptowego.

SWIGCFILESUFIKS
Sufiks, który będzie używany w pośrednich plikach źródłowych C generowanych przez
opakowanie języka skryptowego i generator interfejsu. Wartość domyślna to
_zawinąć$CFILESUFIKS. Domyślnie ta wartość jest używana zawsze, gdy -c++ Jest opcja nie
określone jako część $SWIGFLAGI zmienna konstrukcyjna.

SWIGCOM
Wiersz poleceń używany do wywoływania opakowania języka skryptowego i generatora interfejsu.

SWIGCOMSTR
Ciąg wyświetlany podczas wywoływania opakowania i interfejsu języka skryptowego
generator. Jeśli nie jest to ustawione, to $SWIGCOM (wiersz poleceń).

SWIGCXXFILESUFIKS
Sufiks, który będzie używany w pośrednich plikach źródłowych C++ generowanych przez
opakowanie języka skryptowego i generator interfejsu. Wartość domyślna to
_zawinąć$CFILESUFIKS. Domyślnie ta wartość jest używana zawsze, gdy używana jest opcja -c++
określone jako część $SWIGFLAGI zmienna konstrukcyjna.

SUFIKAT SWIGDIRECTORS
Sufiks, który będzie używany w pośrednich plikach nagłówkowych C++ generowanych przez
opakowanie języka skryptowego i generator interfejsu. Są one generowane tylko dla języka C++
kod, gdy włączona jest funkcja „dyrektorów” SWIG. Wartość domyślna to _wrap.h.

SWIGFLAGI
Opcje ogólne przekazywane do opakowania języka skryptowego i generatora interfejsu. Ten
to miejsce, w którym powinieneś ustawić -pyton, -perl5, -tcllub jakąkolwiek inną opcję, którą chcesz
podać SWIG. Jeśli ustawisz -c++ opcję w tej zmiennej, scons będzie domyślnie
wygeneruj pośredni plik źródłowy C++ z rozszerzeniem określonym jako
$CXXFILESUFIKS zmienna.

_FLAGI SWIGINC
Automatycznie generowana zmienna konstrukcyjna zawierająca polecenie wiersza poleceń SWIG
opcje określania katalogów, w których mają być przeszukiwane pliki dołączone. Wartość
$_SWIGINCFLAGS jest tworzony poprzez dołączenie $SWIGINCPREFIX i SUFIKS $SWIGINC do
początek i koniec każdego katalogu w $SWIGPATH.

PREFIKS SWIGINCPREFIKS
Prefiks używany do określenia katalogu include w wierszu poleceń SWIG. Będzie to
dołączony na początku każdego katalogu w $SWIGPATH zmienna konstrukcyjna
kiedy $_SWIGINCFLAGS zmienna jest generowana automatycznie.

PRZYSŁOŻEK SWIGINC
Sufiks używany do określenia katalogu include w wierszu poleceń SWIG. Będzie to
dołączony na końcu każdego katalogu w $SWIGPATH zmienna konstrukcyjna, gdy
$_SWIGINCFLAGS zmienna jest generowana automatycznie.

SWIGOUTDIR
Określa katalog wyjściowy, w którym znajduje się opakowanie i interfejs języka skryptowego
generator powinien umieścić wygenerowane pliki specyficzne dla języka. Będzie to używane przez SCons
aby zidentyfikować pliki, które zostaną wygenerowane przez wywołanie swig i przetłumaczone na
opcja swig -outdir w wierszu poleceń.

ŚCIEŻKA SWIGA
Lista katalogów generowanych przez wrapper i interfejs języka skryptowego
będzie wyszukiwał dołączone pliki. Skaner zależności niejawnych SWIG będzie wyszukiwał te
katalogi dla plików dołączonych. Wartością domyślną jest pusta lista.

Nie umieszczaj jawnie argumentów katalogu dołączanego w zmiennej SWIGFLAGS; wynik będzie następujący:
non-portable i katalogi nie będą przeszukiwane przez skaner zależności. Notatka:
nazwy katalogów w SWIGPATH będą wyszukiwane w odniesieniu do katalogu SConscript
kiedy są użyte w poleceniu. Aby zmusić scons do przeszukania katalogu względem
korzeń drzewa źródłowego użyj #:

env = Środowisko(SWIGPATH='#/include')

Przeszukiwanie katalogów można również wymusić za pomocą metody Państwo() funkcja:

obejmują = Dir('uwzględnij')
env = Środowisko(SWIGPATH=include)

Lista katalogów zostanie dodana do linii poleceń poprzez automatycznie wygenerowany plik
$_SWIGINCFLAGS zmienna konstrukcyjna, która jest konstruowana poprzez dołączenie wartości
dotychczasowy $SWIGINCPREFIX i SUFIKS $SWIGINC zmienne konstrukcyjne na początku i na końcu
każdego katalogu w $SWIGPATH. Wszystkie wiersze poleceń, które zdefiniujesz, wymagające SWIGPATH
lista katalogów powinna zawierać $_SWIGINCFLAGS:

env = Environment(SWIGCOM="my_swig -o $TARGET $_SWIGINCFLAGS $SOURCES")

WERSJA SWIG
Numer wersji narzędzia SWIG.

TAR
Archiwizator tar.

TARCOM
Wiersz poleceń używany do wywołania archiwizatora tar.

TARCOMSTR
Ciąg wyświetlany podczas archiwizowania plików za pomocą archiwizatora tar. Jeśli nie jest ustawiony,
następnie $TARCOM (wiersz poleceń).

env = Environment(TARCOMSTR = "Archiwizowanie $TARGET")

PŁATKI TARFLAGI
Ogólne opcje przekazane do archiwizatora tar.

TARGET
Zastrzeżona nazwa zmiennej, której nie można ustawić ani używać w środowisku konstrukcyjnym.
(Patrz „Podstawianie zmiennych” poniżej.)

ARCHITEKTURA DOCELOWA
Nazwa docelowej architektury sprzętowej dla skompilowanych obiektów utworzonych przez to
Środowisko. Domyślnie jest to wartość HOST_ARCH, a użytkownik może ją zastąpić.
Obecnie ustawione tylko dla Win32.

Ustawia docelową architekturę kompilatora Visual Studio (czyli architekturę plików binarnych)
wygenerowane przez kompilator). Jeśli nie ustawione, domyślnie ARCHITEKTURA HOSTlub jeśli jest nieustawione,
do architektury systemu operacyjnego maszyny, na której działa (należy pamiętać, że kompilacja Pythona lub
architektura nie ma wpływu). Ta zmienna musi zostać przekazana jako argument do
Konstruktor Environment(); późniejsze ustawienie nie ma żadnego efektu. Obecnie jest używany tylko
na Windows, ale w przyszłości będzie używany również na innych systemach operacyjnych.

Prawidłowe wartości dla systemu Windows to x86, i386 (dla 32 bitów); amd64, emt64, x86_64 (dla 64 bitów).
bity); i ia64 (Itanium). Na przykład, jeśli chcesz skompilować pliki binarne 64-bitowe,
ustawi TARGET_ARCH='x86_64' w środowisku SCons.

DOCELOWY_OS
Nazwa docelowego systemu operacyjnego dla skompilowanych obiektów utworzonych przez to
Środowisko. Domyślnie jest to wartość HOST_OS, a użytkownik może ją zastąpić.
Obecnie ustawione tylko dla Win32.

CELE
Zastrzeżona nazwa zmiennej, której nie można ustawić ani używać w środowisku konstrukcyjnym.
(Patrz „Podstawianie zmiennych” poniżej.)

TARSUFFIX
Sufiks używany w nazwach plików tar.

PREFIKS TEMPFILE
Prefiks dla pliku tymczasowego używanego do wykonywania wierszy dłuższych niż $MAXLINELENGTH.
domyślnie '@'. Może być ustawione dla łańcuchów narzędzi, które używają innych wartości, takich jak '-@' dla
kompilator diab lub '-via' w przypadku zestawu narzędzi ARM.

TEX
Formater i skład tekstu TeX.

TEXKOM
Wiersz poleceń służący do wywoływania formatera i składarki TeX.

TEXCOMSTR
Ciąg wyświetlany podczas wywołania formatera i składarki TeX. Jeśli nie jest to
zestaw $TEXCOM (wiersz poleceń).

env = Environment(TEXCOMSTR = "Budowanie $TARGET z danych wejściowych TeX $SOURCES")

FLAGI TEKSTU
Ogólne opcje przekazywane formaterowi i składowi tekstu TeX.

WEJŚCIA TEKSTU
Lista katalogów, w których program LaTeX będzie wyszukiwał katalogi zawierające.
Skaner niejawnych zależności LaTeX przeszuka te katalogi pod kątem \include i
\importuj pliki.

PREFIKS PLIKU TEKSTU
Przedrostek używany do Plik tekstowy nazwy plików, domyślnie ciąg zerowy.

PRZYROST PLIKUTEKSTU
Przyrostek używany dla Plik tekstowy nazwy plików; domyślnie .txt.

TOOLS
Lista nazw specyfikacji narzędzi, które są częścią tej konstrukcji
środowisko.

NIEZMIENIONE_ŹRÓDŁA
Zastrzeżona nazwa zmiennej, której nie można ustawić ani używać w środowisku konstrukcyjnym.
(Patrz „Podstawianie zmiennych” poniżej.)

UNCHANGED_TARGETS
Zastrzeżona nazwa zmiennej, której nie można ustawić ani używać w środowisku konstrukcyjnym.
(Patrz „Podstawianie zmiennych” poniżej.)

SPRZEDAWCA
Osoba lub organizacja dostarczająca pakiet oprogramowania. Służy do wypełniania
pole Dostawca: w informacjach sterujących dla pakietów RPM oraz
Producent: pole w informacjach kontrolnych dla pakietów MSI.

WERSJA
Wersja projektu określona jako ciąg znaków.

WINSERT_DEF WIN32
Przestarzały synonim słowa $WINDOWS_INSERT_DEF.

WIN32DEFPREFIX
Przestarzały synonim słowa $WINDOWSDEFPREFIX.

WIN32DEFSUFFIX
Przestarzały synonim słowa SUFIKS $WINDOWSDEF.

WIN32EXPPREFIX
Przestarzały synonim słowa $WINDOWSEXPSUFFIX.

WIN32EXPSUFFIX
Przestarzały synonim słowa $WINDOWSEXPSUFFIX.

MANIFEST_WINDOWS_EMBED
Ustaw tę zmienną na True lub 1, aby osadzić manifest wygenerowany przez kompilator (zwykle
${TARGET}.manifest) do wszystkich plików exe i bibliotek DLL systemu Windows utworzonych w tym środowisku jako
zasób podczas kroku łączenia. Odbywa się to za pomocą $MT i $MTEXECOM i $MTSHLIBCOM.

WSTAW_OKNA_DEF
Gdy ta opcja jest ustawiona na wartość true, zostanie utworzona biblioteka współdzielonej biblioteki systemu Windows (plik .dll).
jednocześnie utwórz również odpowiedni plik .def, jeśli plik .def nie jest jeszcze utworzony
wymieniony jako cel kompilacji. Domyślnie jest to 0 (nie kompiluj pliku .def).

MANIFEST_WINDOWS_INSERT
Gdy ta opcja jest ustawiona na true, scons będzie wiedział o plikach .manifest generowanych przez
Microsoft Visua C/C++ 8.

PREFIKS WINDOWSDEF
Prefiks używany w nazwach plików .def w systemie Windows.

Sufix WINDOWSDEF
Sufiks używany w nazwach plików .def w systemie Windows.

PREFIKS WINDOWSEXP
Prefiks używany w nazwach plików .exp w systemie Windows.

WINDOWSEXPSUFFIX
Sufiks używany w nazwach plików .exp systemu Windows.

PREFIKS MANIFESTU PROGRAMU WINDOWS
Prefiks używany w plikach wykonywalnych programu .manifest generowanych przez program Microsoft Visual
C/C++.

SUFFIX MANIFESTU PROGRAMU WINDOWS
Sufiks używany w plikach wykonywalnych programu .manifest generowanych przez program Microsoft Visual
C/C++.

PREFIKS MANIFESTU WINDOWSSHLIB
Prefiks używany w plikach manifestu biblioteki współdzielonej generowanych przez program Microsoft Visual
C/C++.

Sufix manifesu Windows
Sufiks używany w plikach manifestu biblioteki współdzielonej generowanych przez program Microsoft Visual
C/C++.

X_IPK_DEPENDS
Służy do wypełniania pola Zależności: w informacjach sterujących dla Ipkg
pakiety.

Opis X_IPK
Służy do wypełniania pola Opis: w informacjach sterujących dla Ipkg
pakiety. Wartość domyślna to $SUMMARY\n$DESCRIPTION

X_IPK_KONTROLER
Służy do wypełniania pola „Utrzymujący” w informacjach sterujących dla Ipkg
pakiety.

PRIORYTET X_IPK
Służy do wypełniania pola Priorytet: w informacjach sterujących dla Ipkg
pakiety.

Sekcja X_IPK
Służy do wypełniania pola Sekcja: w informacjach sterujących dla Ipkg
pakiety.

JĘZYK X_MSI
Służy do wypełniania atrybutu Język: w informacjach sterujących dla MSI
pakiety.

TEKST_LICENCJI_X_MSI
Tekst licencji oprogramowania w formacie RTF. Znaki powrotu karetki będą
zastąpiono odpowiednikiem RTF \\par.

KOD_AKTUALIZACJI_X_MSI
WSZYSTKO

X_RPM_AUTOREQPROV
Służy do wypełnienia pola AutoReqProv: w pliku RPM .spec.

Kompilacja X_RPM
wewnętrzny, ale możliwy do przezwyciężenia

WYMAGANIA KOMPLETNE X_RPM
Służy do wypełnienia pola BuildRequires: w pliku RPM .spec.

X_RPM_BUILDROOT
wewnętrzny, ale możliwy do przezwyciężenia

Czyszczenie X_RPM
wewnętrzny, ale możliwy do przezwyciężenia

KONFLIKTY X_RPM
Służy do wypełnienia pola Konflikty: w pliku RPM .spec.

X_RPM_DEFATTR
Ta wartość jest używana jako domyślne atrybuty dla plików w pakiecie RPM.
wartość domyślna to (-,root,root).

Dystrybucja X_RPM
Służy do wypełnienia pola Dystrybucja: w pliku RPM .spec.

EPOKA X_RPM
Służy do wypełniania pola Epoka: w informacjach sterujących dla RPM
pakiety.

X_RPM_EXCLUDEARCH
Służy do wypełnienia pola ExcludeArch: w pliku RPM .spec.

X_RPM_EXLUSIVEARCH
Służy do wypełnienia pola ExclusiveArch: w pliku RPM .spec.

Grupa_X_RPM
Służy do wypełnienia pola Grupa: w pliku RPM .spec.

Język_X_RPM_GROUP
Służy do wypełnienia pola Group(lang): w pliku RPM .spec. Należy zauważyć, że lang
nie jest dosłowne i powinno zostać zastąpione odpowiednim kodem języka.

IKONA X_RPM
Służy do wypełnienia pola Ikona: w pliku RPM .spec.

Instalacja X_RPM
wewnętrzny, ale możliwy do przezwyciężenia

X_RPM_PAKOWACZ
Służy do wypełnienia pola Packager: w pliku RPM .spec.

X_RPM_POSTINSTALL
Służy do wypełnienia sekcji %post: w pliku RPM .spec.

X_RPM_POSTUNINSTALL
Służy do wypełnienia sekcji %postun: w pliku RPM .spec.

Prefiks X_RPM
Służy do wypełnienia pola Prefiks: w pliku RPM .spec.

X_RPM_PREINSTALL
Służy do wypełnienia sekcji %pre: w pliku RPM .spec.

X_RPM_PREP
wewnętrzny, ale możliwy do przezwyciężenia

X_RPM_PREUNINSTALL
Służy do wypełnienia sekcji %preun: w pliku RPM .spec.

X_RPM_PROVIDES
Służy do wypełnienia pola Dostarcza: w pliku RPM .spec.

WYMAGANIA_X_RPM
Służy do wypełnienia pola Wymagania: w pliku RPM .spec.

X_RPM_SERIAL
Służy do wypełnienia pola Serial: w pliku RPM .spec.

Adres URL X_RPM
Służy do wypełnienia pola Url: w pliku RPM .spec.

POBIERZTEKST
Ścieżka do xgettekst(1) program (znaleziono poprzez Wykryć()). Zobacz narzędzie xgettext i POTUaktualizacja
budowniczy.

XGETTEXTCOM
Kompletny wiersz poleceń xgettext. Zobacz narzędzie xgettext i POTUaktualizacja budowniczy.

XGETTEXTCOMSTR
Ciąg, który jest wyświetlany, gdy xgettekst(1) polecenie jest wywoływane (domyślnie: '', co oznacza
"wydrukować $XGETTEXTCOM"). Zobacz narzędzie xgettext i POTUaktualizacja budowniczy.

_XGETTEXTDOMENA
Wewnętrzne „makro”. Generuje xgettekst nazwa domeny źródłowa i docelowa (domyślnie:
„${TARGET.filebase}”).

XGETTEXTFLAGS
Dodatkowe flagi do xgettekst(1). Zobacz narzędzie xgettext i POTUaktualizacja budowniczy.

XGETTEXTFROM
Nazwa pliku zawierającego listę xgettekst(1)Pliki źródłowe. Użytkownicy Autotools wiedzą o tym
jako POTFILES.in, więc w większości przypadków ustawią tutaj XGETTEXTFROM="POTFILES.in".
$XGETTEXTFROM Pliki mają taką samą składnię i semantykę jak dobrze znany plik GNU POTFILES.in.
Zobacz narzędzie xgettext i POTUaktualizacja budowniczy.

_XGETTEXTFROMFLAGS
Wewnętrzne „makro”. Generuje listę -D flagi z $XGETTEXTPATH lista.

XGETTEXFROMPREFIX
Ta flaga służy do dodawania pojedynczych $XGETTEXTFROM złożyć do xgettekst(1)wiersz poleceń
(domyślnie: '-f').

XGETTEXFROMSUFFIX
(domyślny: '')

ŚCIEŻKA XGETTEXTPATH
Lista katalogów, tam xgettekst(1) będzie szukać plików źródłowych (domyślnie: []).

Note
Ta zmienna działa tylko razem z $XGETTEXTFROM
Zobacz także narzędzie xgettext i POTUaktualizacja budowniczy.

_FLAGI PATH_XGETTEXTPATHFLAGS
Wewnętrzne „makro”. Generuje listę -f flagi z $XGETTEXTFROM.

XGETTEXTPATHPREFIX
Ta flaga służy do dodawania pojedynczej ścieżki wyszukiwania do xgettekst(1)wiersz poleceń (domyślnie:
'-D').

XGETTEXTPATHSUFFIX
(domyślny: '')

YACC
Generator parsera.

YACCCOM
Wiersz poleceń służący do wywołania generatora parsera w celu wygenerowania pliku źródłowego.

YACCCOMSTR
Ciąg wyświetlany podczas generowania pliku źródłowego za pomocą generatora parsera. Jeśli to
nie jest ustawiony, to $YACCCOM (wiersz poleceń).

env = Environment(YACCCOMSTR = "Yacc'ing $TARGET z $SOURCES")

Flagi YACC
Ogólne opcje przekazane do generatora parsera. Jeśli $YACCFLAGS zawiera -d opcja,
SCons zakłada, że ​​wywołanie spowoduje również utworzenie pliku .h (jeśli plik źródłowy yacc kończy się
z rozszerzeniem .y) lub plik .hpp (jeśli plik źródłowy yacc kończy się rozszerzeniem .yy)

YACCHFILESUFFIX
Sufiks pliku nagłówkowego C wygenerowany przez generator parsera podczas -d opcja
jest używany. Należy pamiętać, że ustawienie tej zmiennej nie powoduje, że generator parsera
wygeneruj plik nagłówkowy z określonym sufiksem, istnieje on po to, aby umożliwić Ci określenie
jaki sufiks generator parsera będzie używał z własnej woli. Wartość domyślna to .h.

YACCHXXFILESUFFIX
Sufiks pliku nagłówkowego C++ generowany przez generator parsera podczas -d opcja
jest używany. Należy pamiętać, że ustawienie tej zmiennej nie powoduje, że generator parsera
wygeneruj plik nagłówkowy z określonym sufiksem, istnieje on po to, aby umożliwić Ci określenie
jaki sufiks generator parsera będzie używał z własnej woli. Wartość domyślna to
.hpp, z wyjątkiem systemu Mac OS X, gdzie domyślnym plikiem jest ${TARGET.suffix}.h., ponieważ domyślnym plikiem jest ${TARGET.suffix}.h.
Generator parsera Bison po prostu dodaje rozszerzenie .h do nazwy wygenerowanego pliku C++.

YACCCVCGFILESUFFIX
Sufiks pliku zawierającego definicję automatu gramatycznego VCG, gdy
--graf= opcja jest używana. Należy zauważyć, że ustawienie tej zmiennej nie powoduje, że parser
generator do generowania pliku VCG z określonym sufiksem, istnieje on po to, aby umożliwić Ci
określ, jakiego sufiksu generator parsera będzie używał z własnej woli. Wartość domyślna
jest .vcg.

ZIP
Narzędzie do kompresji plików ZIP i pakowania plików.

ZIPCOM
Wiersz poleceń używany do wywołania narzędzia zip lub wewnętrzna funkcja Pythona używana do
utwórz archiwum zip.

KOMPRESJA ZIP
Kurs kompresja flaga z modułu zipfile Pythona używanego przez wewnętrzny Python
funkcja kontrolująca, czy archiwum zip jest kompresowane, czy nie. Wartość domyślna to
zipfile.ZIP_DEFLATED, który tworzy skompresowane archiwum zip. Ta wartość nie ma wpływu
jeśli moduł zipfile jest niedostępny.

ZIPCOMSTR
Ciąg wyświetlany podczas archiwizowania plików za pomocą narzędzia zip. Jeśli nie jest ustawiony,
następnie $ZIPCOM (wiersz poleceń lub wewnętrzna funkcja Pythona) jest wyświetlany.

env = Environment(ZIPCOMSTR = "Kompresja $TARGET")

FLAGI ZIP
Ogólne opcje przekazane do narzędzia zip.

ZIPROOT
Opcjonalny katalog główny zip (domyślnie pusty). Nazwy plików przechowywane w pliku zip
będzie względny do tego katalogu, jeśli jest podany. W przeciwnym wypadku nazwy plików są względne do
bieżący katalog polecenia. Na przykład:

env = Środowisko()
env.Zip('foo.zip', 'subdir1/subdir2/file1', ZIPROOT='subdir1')

wygeneruje plik zip foo.zip zawierający plik o nazwie subdir2/file1 zamiast
niż subdir1/subdir2/file1.

ZIPSUFFIX
Sufiks używany w nazwach plików zip.

Zmienne konstrukcyjne można pobrać i ustawić za pomocą Słownik metoda
środowisko budowlane:

dict = env.Słownik()
słownik["CC"] = "cc"

lub używając operatora []:

środowisko["CC"] = "cc"

Zmienne konstrukcyjne można również przekazać do konstruktora środowiska konstrukcyjnego:

env = Środowisko(CC="cc")

lub podczas kopiowania środowiska konstrukcyjnego za pomocą Clone metoda:

env2 = env.Klon(CC="cl.exe")

Konfigurowanie Konteksty
szyderstwa wspiera skonfigurować konteksty, zintegrowany mechanizm podobny do różnych AC_CHECK
makra w GNU autoconf do testowania istnienia plików nagłówkowych C, bibliotek itp.
w przeciwieństwie do autoconf, szyderstwa nie utrzymuje jawnej pamięci podręcznej testowanych wartości, ale
używa swojego normalnego śledzenia zależności, aby zachować sprawdzane wartości na bieżąco. Jednak użytkownicy
może zastąpić to zachowanie --konfig opcja linii poleceń.

W celu przeprowadzenia kontroli można zastosować następujące metody:

Konfiguruj(env[testy_niestandardowe, katalog_konf, plik dziennika, konfiguracja_h, kleń, pomoc]),
Konfiguruj środowisko([testy_niestandardowe, katalog_konf, plik dziennika, konfiguracja_h, kleń, pomoc])
Tworzy to kontekst konfiguracji, który można wykorzystać do przeprowadzania sprawdzeń. env określa
środowisko do budowania testów. To środowisko może być modyfikowane, gdy
przeprowadzanie kontroli. testy_niestandardowe jest słownikiem zawierającym testy niestandardowe. Zobacz także
sekcja o testach niestandardowych poniżej. Domyślnie żadne testy niestandardowe nie są dodawane do
skonfiguruj kontekst. katalog_konf określa katalog, w którym tworzone są przypadki testowe.
Należy zauważyć, że ten katalog nie jest używany do budowania normalnych celów. Wartość domyślna to
katalog #/.sconf_temp. plik dziennika określa plik, który zbiera dane wyjściowe
polecenia wykonywane w celu sprawdzenia istnienia plików nagłówkowych, bibliotek, itp.
Domyślnie jest to plik #/config.log. Jeśli używasz WariantDir() metoda, ty
możesz chcieć określić podkatalog w katalogu wariantu. konfiguracja_h określa a
Plik nagłówkowy C, w którym będą zapisywane wyniki testów, np. #define HAVE_STDIO_H,
#define HAVE_LIBM itd. Domyślnie nie zapisuje się konfiguracja.h plik. Możesz określić
to samo konfiguracja.h plik w wielu wywołaniach Configure, w takim przypadku szyderstwa będzie
połącz wszystkie wyniki w określonym pliku. Należy zauważyć, że SCons używa swojego normalnego
sprawdzanie zależności w celu podjęcia decyzji, czy konieczne jest ponowne utworzenie określonego konfiguracja_h
plik. Oznacza to, że plik nie jest koniecznie przebudowywany za każdym razem, gdy uruchamiany jest scons, ale
jest odbudowywany tylko wtedy, gdy jego zawartość ulegnie zmianie i pewien cel, który zależy od
konfiguracja_h plik jest budowany.

Opcjonalne kleń i pomoc argumenty mogą być użyte do powstrzymania wykonania
testy konfiguracji, gdy -c/--wyczyść or -H/-h/--pomocy stosowane są opcje,
odpowiednio. Domyślnym zachowaniem jest zawsze wykonywanie testów kontekstu konfiguracji, ponieważ
wyniki testów mogą mieć wpływ na listę celów do oczyszczenia lub pomoc
tekst. Jeśli testy konfiguracji nie mają na nie wpływu, możesz dodać wyczyść=Fałsz or
pomoc=Fałsz argumentów (lub obu), aby uniknąć niepotrzebnego wykonywania testów.

Stworzony Konfigurowanie instancja ma następujące skojarzone metody:

SConf.Zakończ(kontekst), sconf.Skończyć()
Tę metodę należy wywołać po zakończeniu konfiguracji. Zwraca ona środowisko
zmodyfikowane przez przeprowadzone kontrole konfiguracji. Po wywołaniu tej metody nie
dalsze kontrole można wykonać przy użyciu tego kontekstu konfiguracji. Możesz jednak
utwórz nowy kontekst Konfiguruj, aby wykonać dodatkowe sprawdzenia. Powinien być tylko jeden kontekst
być aktywnym w danym momencie.

Następujące kontrole są wstępnie zdefiniowane. (Ta lista prawdopodobnie będzie się wydłużać w miarę upływu czasu)
(przez programistów i twórców oprogramowania, którzy dostarczają nowe, przydatne testy.)

SConf.CheckHeader(kontekst, nagłówek[uwzględnij_cytaty, język]), sconf.SprawdźNagłówek(nagłówek,
[uwzględnij_cytaty, język])
Sprawdza, czy nagłówek można używać w określonym języku. nagłówek może być listą, w której
w przypadku, gdy ostatnim elementem na liście jest plik nagłówkowy, który należy sprawdzić, a poprzednia lista
elementy to pliki nagłówkowe, których #zawierać wiersze powinny poprzedzać wiersz nagłówka
sprawdzone. Opcjonalny argument uwzględnij_cytaty musi być ciągiem dwóch znaków,
gdzie pierwszy znak oznacza cytat otwierający, a drugi znak oznacza
zamykający cudzysłów. Domyślnie oba znaki to " (podwójny cudzysłów). Opcjonalny
argument język powinno być albo C or C + + i wybiera kompilator, który ma zostać użyty
sprawdzenie. Zwraca 1 w przypadku powodzenia i 0 w przypadku niepowodzenia.

SConf.CheckCHeader(kontekst, nagłówek[uwzględnij_cytaty]), sconf.SprawdźNagłówek(nagłówek,
[uwzględnij_cytaty])
To jest opakowanie SConf.CheckHeader który sprawdza, czy nagłówek można używać w C
język. nagłówek może być listą, w takim przypadku ostatnim elementem listy jest nagłówek
plik do sprawdzenia, a poprzednie elementy listy to pliki nagłówkowe, których #zawierać linie
powinien poprzedzać sprawdzany wiersz nagłówka. Opcjonalny argument uwzględnij_cytaty
musi to być ciąg dwóch znaków, gdzie pierwszy znak oznacza otwierający cudzysłów
a drugi znak oznacza zamykający cudzysłów (oba domyślnie \N'34'). Zwraca 1
w przypadku sukcesu i 0 w przypadku porażki.

SConf.CheckCXXHeader(kontekst, nagłówek[uwzględnij_cytaty]), sconf.SprawdźNagłówekCXX(nagłówek,
[uwzględnij_cytaty])
To jest opakowanie SConf.CheckHeader który sprawdza, czy nagłówek można używać w C++
język. nagłówek może być listą, w takim przypadku ostatnim elementem listy jest nagłówek
plik do sprawdzenia, a poprzednie elementy listy to pliki nagłówkowe, których #zawierać linie
powinien poprzedzać sprawdzany wiersz nagłówka. Opcjonalny argument uwzględnij_cytaty
musi to być ciąg dwóch znaków, gdzie pierwszy znak oznacza otwierający cudzysłów
a drugi znak oznacza zamykający cudzysłów (oba domyślnie \N'34'). Zwraca 1
w przypadku sukcesu i 0 w przypadku porażki.

SConf.FunkcjaSprawdzania(kontekst,, nazwa_funkcji[nagłówek, język]),
sconf.SprawdźFunkcję(nazwa_funkcji[nagłówek, język])
Sprawdza, czy określona funkcja C lub C++ jest dostępna. nazwa_funkcji jest imię
funkcja do sprawdzenia. Opcjonalnie nagłówek argument jest ciągiem znaków, który będzie
umieszczony na górze pliku testowego, który zostanie skompilowany w celu sprawdzenia, czy funkcja
istnieje; wartość domyślna to:

#ifdef __cplusplus
zewnętrzne „C”
#endif
char nazwa_funkcji();

Opcjonalne język argument powinien być C or C + + i wybiera kompilator, który ma zostać użyty
do sprawdzenia; domyślnie jest to „C”.

SConf.CheckLib(kontekst[biblioteka, symbol, nagłówek, język, automatyczne dodawanie=1]),
sconfSprawdźLib([biblioteka, symbol, nagłówek, język, automatyczne dodawanie=1])
Sprawdza, czy biblioteka zapewnia symbol. Jeśli wartość automatyczne dodawanie jest 1 i biblioteka
zapewnia określone symbol, dołącza bibliotekę do konstrukcji LIBS
zmienna środowiskowa. biblioteka może być również None (domyślne), w takim przypadku symbol is
sprawdzane przy użyciu bieżącej zmiennej LIBS lub listy nazw bibliotek, w takim przypadku każda
biblioteka na liście zostanie sprawdzona pod kątem symbol. Jeśli symbol nie jest ustawiony lub jest żaden, następnie
SConf.CheckLib() sprawdza tylko, czy można połączyć się z określonym biblioteka,
fakultatywny język argument powinien być C or C + + i wybiera kompilator, który ma zostać użyty
sprawdzenie; domyślnie jest to „C”. Wartość domyślna dla automatyczne dodawanie wynosi 1. Ta metoda zwraca
1 w przypadku sukcesu i 0 w przypadku błędu.

SConf.CheckLibWithHeader(kontekst, biblioteka, nagłówek, język[wezwanie, automatyczne dodawanie]),
sconf.SprawdźLibWithHeader(biblioteka, nagłówek, język[wezwanie, automatyczne dodawanie])
W przeciwieństwie do wywołania SConf.CheckLib, to wywołanie zapewnia bardziej wyrafinowany sposób
sprawdź w bibliotekach. Ponownie, biblioteka określa bibliotekę lub listę bibliotek
sprawdzić. nagłówek określa nagłówek, który należy sprawdzić. nagłówek może być listą, w której
w przypadku, gdy ostatnim elementem na liście jest plik nagłówkowy, który należy sprawdzić, a poprzednia lista
elementy to pliki nagłówkowe, których #zawierać wiersze powinny poprzedzać wiersz nagłówka
sprawdzone. język może być jednym z 'C', 'c', 'CXX', 'cxx', 'C++' i 'c++'. wezwanie może być
dowolne prawidłowe wyrażenie (z końcowym ';'). Jeśli wezwanie nie jest ustawiony, po prostu domyślny
sprawdza, czy można połączyć się z określonym biblioteka. automatyczne dodawanie określa, czy
dodaj bibliotekę do środowiska (tylko jeśli sprawdzenie się powiedzie). Ta metoda zwraca 1
w przypadku powodzenia i 0 w przypadku błędu.

SConf.TypSprawdzania(kontekst, Wpisz imię[obejmuje, język]), sconf.TypSprawdzania(Wpisz imię,
[obejmuje, język])
Sprawdza istnienie typu zdefiniowanego przez typedef. Wpisz imię określa
nazwa typedef do sprawdzenia. obejmuje jest ciągiem zawierającym jeden lub więcej #zawierać linie
który zostanie wstawiony do programu, który zostanie uruchomiony w celu sprawdzenia istnienia
typ. Opcjonalnie język argument powinien być C or C + + i wybiera kompilator
do użycia przy sprawdzaniu; domyślnie jest to "C". Przykład:

sconf.CheckType('foo_type', '#include "my_types.h"', 'C++')

Konfiguruj.SprawdźCC(samego siebie)
Sprawdza, czy kompilator C (zgodnie z definicją zmiennej konstrukcyjnej CC) działa
Próba skompilowania małego pliku źródłowego.

Domyślnie SCons wykrywa tylko, czy istnieje program o prawidłowej nazwie, a nie czy jest on
jest działającym kompilatorem.

Używa dokładnie tego samego polecenia, którego używa konstruktor obiektów dla kodu źródłowego C
pliku, dzięki czemu można go użyć do wykrycia, czy konkretna flaga kompilatora działa, czy nie.

Konfiguruj.SprawdźCXX(samego siebie)
Sprawdza, czy kompilator C++ (zgodnie z definicją zmiennej konstrukcyjnej CXX) działa
Próbuję skompilować mały plik źródłowy. Domyślnie SCons wykrywa tylko, czy istnieje
program o prawidłowej nazwie, a nie czy jest to działający kompilator.

Używa dokładnie tego samego polecenia, którego używa konstruktor obiektów dla CXX
plików źródłowych, dzięki czemu można go wykorzystać do wykrycia, czy konkretna flaga kompilatora działa, czy nie.

Konfiguruj.Sprawdź SHCC(samego siebie)
Sprawdza, czy kompilator C (zgodnie z definicją zmiennej konstrukcyjnej SHCC) działa
Próbuję skompilować mały plik źródłowy. Domyślnie SCons wykrywa tylko, czy istnieje
program o prawidłowej nazwie, a nie czy jest to działający kompilator.

Używa dokładnie tego samego polecenia, którego używa konstruktor obiektów dla kodu źródłowego C
plik, więc można go użyć do wykrycia, czy konkretna flaga kompilatora działa, czy nie. Ten
nie sprawdza, czy kod obiektowy może zostać użyty do zbudowania biblioteki współdzielonej, tylko
że kompilacja (nie link) się powiedzie.

Konfiguruj.SprawdźSHCXX(samego siebie)
Sprawdza, czy kompilator C++ (zgodnie z definicją zmiennej konstrukcyjnej SHCXX) działa
próbując skompilować mały plik źródłowy. Domyślnie SCons wykrywa tylko, czy istnieje
program o prawidłowej nazwie, a nie czy jest to działający kompilator.

Używa dokładnie tego samego polecenia, którego używa konstruktor obiektów dla CXX
plików źródłowych, dzięki czemu można go wykorzystać do wykrycia, czy konkretna flaga kompilatora działa, czy nie.
Nie sprawdza, czy kod obiektowy może zostać użyty do zbudowania biblioteki współdzielonej,
tylko, że kompilacja (nie link) się powiedzie.

Przykład typowego użycia Configure:

env = Środowisko()
conf = Konfiguruj(env)
jeśli nie conf.CheckCHeader( 'math.h' ):
wydrukuj 'Naprawdę potrzebujemy math.h!'
Wyjście(1)
jeśli conf.CheckLibWithHeader( 'qt', 'qapp.h', 'c++',
'Aplikacja Q qapp(0,0);' ):
# zrób coś dla qt - użycie, np.
conf.env.Append( CPPFLAGS = '-DWITH_QT' )
env = conf.Finish()

SConf.CheckTypeSize(kontekst, Wpisz imię[nagłówek, język, oczekiwać]),
sconf.SprawdźRozmiarTypu(Wpisz imię[nagłówek, język, oczekiwać])
Sprawdza rozmiar typu zdefiniowanego przez typedef. Wpisz imię określa typ zdefiniowany
nazwa do sprawdzenia. Opcjonalnie nagłówek argument jest ciągiem znaków, który zostanie umieszczony w
na górze pliku testowego, który zostanie skompilowany w celu sprawdzenia, czy funkcja istnieje;
domyślnie jest pusty. Opcjonalnie język argument powinien być C or C + + i wybiera
kompilator, który ma być użyty do sprawdzenia; domyślnie jest to „C”. Opcjonalnie oczekiwać argument
powinna być liczbą całkowitą. Jeśli ten argument jest używany, funkcja sprawdzi tylko, czy
typ podany w type_name ma oczekiwany rozmiar (w bajtach). Na przykład,
SprawdźRozmiarTypu('krótki', oczekiwać = 2) zwróci wynik pomyślnie tylko jeśli short wynosi dwa bajty.

SConf.CheckDeclaration(kontekst, symbol[obejmuje, język]),
sconf.DeklaracjaSprawdzania(symbol[obejmuje, język])
Sprawdza, czy określony symbol jest zadeklarowany. obejmuje jest ciągiem zawierającym jeden lub
jeszcze #zawierać wiersze, które zostaną wstawione do programu, który zostanie uruchomiony w celu przetestowania
dla istnienia typu. Opcjonalnie język argument powinien być C or C + + i
wybiera kompilator, który ma zostać użyty do sprawdzenia; domyślnie jest to „C”.

SConf.Definiuj(kontekst, symbol[wartość, komentarz]), sconf.Określić(symbol[wartość, komentarz])
Ta funkcja nie sprawdza niczego, ale definiuje symbol preprocesora, który będzie
dodany do pliku nagłówkowego konfiguracji. Jest to odpowiednik AC_DEFINE i
definiuje symbol Nazwa z opcjonalnym wartość i opcjonalny komentarz komentarz.

Przykłady:

env = Środowisko()
conf = Konfiguruj(env)

# Umieszcza następujący wiersz w pliku nagłówkowym konfiguracji:
# #zdefiniuj A_SYMBOL
conf.Define('A_SYMBOL')

# Umieszcza następujący wiersz w pliku nagłówkowym konfiguracji:
# #zdefiniuj A_SYMBOL 1
conf.Define('A_SYMBOL', 1)

Należy jednak zachować ostrożność przy cytowaniu wartości ciągów znaków:

env = Środowisko()
conf = Konfiguruj(env)

# Umieszcza następujący wiersz w pliku nagłówkowym konfiguracji:
# #define A_SYMBOL YA
conf.Define('A_SYMBOL', "YA")

# Umieszcza następujący wiersz w pliku nagłówkowym konfiguracji:
# #define A_SYMBOL "YA"
conf.Define('A_SYMBOL', '"YA"')

Do komentarza:

env = Środowisko()
conf = Konfiguruj(env)

# Umieszcza następujące wiersze w pliku nagłówkowym konfiguracji:
# /* Ustaw na 1, jeśli masz symbol */
# #zdefiniuj A_SYMBOL 1
conf.Define('A_SYMBOL', 1, 'Ustaw na 1, jeśli masz symbol')

Możesz zdefiniować własne niestandardowe kontrole. oprócz wstępnie zdefiniowanych kontroli. Są to:
przekazany w słowniku do funkcji Configure. Ten słownik mapuje nazwy
sprawdza zdefiniowane przez użytkownika funkcje Pythona lub wystąpienia klas
wdrażanie __wezwanie__ Pierwszy argument wywołania jest zawsze Sprawdź kontekst
instancji, po której następują argumenty, które muszą zostać dostarczone przez użytkownika sprawdzania. Te
Instancje CheckContext definiują następujące metody:

SprawdźKontekst.Wiadomość(samego siebie, XNUMX)
Zwykle wywoływane przed rozpoczęciem sprawdzania. XNUMX zostanie wyświetlone użytkownikowi, np.
„Sprawdzanie biblioteki X...”

SprawdźKontekst.Wynik(samego siebie,, res)
Zazwyczaj wywoływane po zakończeniu kontroli. res może być liczbą całkowitą lub ciągiem znaków. W
w pierwszym przypadku użytkownikowi wyświetla się odpowiedź „tak” (res != 0) lub „nie” (res == 0)
w drugim przypadku wyświetlany jest podany ciąg znaków.

SprawdźKontekst.SpróbujKompilować(samego siebie, XNUMX, rozbudowa)
Sprawdza, czy plik o określonym rozbudowa (np. „.c”) zawierający XNUMX może być
skompilowano przy użyciu środowiska przedmiot builder. Zwraca 1 w przypadku powodzenia i 0 w przypadku
niepowodzenie.

SprawdźKontekst.TryLink(samego siebie, XNUMX, rozbudowa)
Sprawdza, czy plik o określonym rozbudowa (np. „.c”) zawierający XNUMX może być
skompilowano przy użyciu środowiska Program builder. Zwraca 1 w przypadku powodzenia i 0 w przypadku
niepowodzenie.

SprawdźKontekst.SpróbujUruchomić(samego siebie, XNUMX, rozbudowa)
Sprawdza, czy plik o określonym rozbudowa (np. „.c”) zawierający XNUMX może być
skompilowano przy użyciu środowiska Program builder. W przypadku powodzenia program jest uruchamiany. Jeśli
program wykonuje się pomyślnie (czyli jego status zwracany wynosi 0), krotka (1,
wyjścieStr) jest zwracany, gdzie wyjścieStr jest standardowym wyjściem programu. Jeśli
jeśli program nie zostanie wykonany (jego kod zwrotny jest różny od zera), zwracana jest wartość (0, '').

SprawdźKontekst.SpróbujAkcję(samego siebie, akcja[XNUMX, rozbudowa])
Sprawdza, czy określony akcja z opcjonalnym plikiem źródłowym (zawartość XNUMX , rozszerzenie
rozbudowa = '' ) może zostać wykonane. akcja może być cokolwiek, co można przekonwertować na
szyderstwa Działanie. O sukcesie, (1, wyjścieStr) jest zwracany, gdzie wyjścieStr to jest treść
pliku docelowego. W przypadku awarii (0, '') jest zwracany.

SprawdźKontekst.TryBuild(samego siebie, budowniczy[XNUMX, rozbudowa])
Implementacja niskiego poziomu do testowania konkretnych kompilacji; powyższe metody oparte są na
ta metoda. Biorąc pod uwagę instancję Builder budowniczy i opcjonalne XNUMX pliku źródłowego
z opcjonalnym rozbudowa, ta metoda zwraca 1 w przypadku powodzenia i 0 w przypadku niepowodzenia.
dodanie, self.ostatniCel jest ustawiony na węzeł docelowy kompilacji, jeśli kompilacja została
odnoszący sukcesy.

Przykład implementacji i wykorzystania niestandardowych testów:

def CheckQt(kontekst, qtdir):
context.Message( 'Sprawdzanie qt ...' )
lastLIBS = kontekst.env['LIBS']
ostatniaLIBPATH = context.env['LIBPATH']
lastCPPPATH= kontekst.env['CPPPATH']
kontekst.środowisko.Append(LIBS = 'qt', LIBPATH = qtdir + '/ lib', CPPPATH = qtdir + '/include' )
ret = kontekst.TryLink("""
#włączać
int main(int argc, char **argv) {
Aplikacja Q qapp(argc, argv);
0 wrócić;
}
„””)
jeśli nie ret:
context.env.Replace(LIBS = lastLIBS, LIBPATH=lastLIBPATH, CPPPATH=lastCPPPATH)
kontekst.Wynik( ret )
powrót ret

env = Środowisko()
conf = Konfiguruj(env, custom_tests = { 'CheckQt' : CheckQt } )
jeśli nie conf.CheckQt('/usr/lib/qt'):
wydrukuj 'Naprawdę potrzebujemy qt!'
Wyjście(1)
env = conf.Finish()

Wiersz poleceń Budownictwo Zmienne
Często podczas tworzenia oprogramowania niektóre zmienne muszą zostać określone w czasie kompilacji. Na przykład,
biblioteki potrzebne do kompilacji mogą znajdować się w niestandardowych lokalizacjach lub kompilatorze specyficznym dla danej lokalizacji
może być konieczne przekazanie opcji do kompilatora. szyderstwa zapewnia Zmienne oponować
obsługa nadpisywania zmiennych konstrukcyjnych w wierszu poleceń:

$ scons ZMIENNA=foo

Wartości zmiennych można również określić w pliku SConscript opartym na tekście. Aby utworzyć
Obiekt zmiennych, wywołaj funkcję Variables():

Zmienne([pliki], [args])
Tworzy obiekt Zmienne, który będzie odczytywał zmienne konstrukcyjne z pliku lub
lista nazw plików określonych w pliki. Jeżeli nie określono żadnych plików lub pliki argument
is żaden, wtedy żadne pliki nie zostaną odczytane. Opcjonalny argument args jest słownikiem j
wartości, które zastąpią wszystko, co zostanie odczytane z określonych plików; jest to przede wszystkim
przeznaczone do przekazania ARGUMENTY słownik zawierający zmienne określone w
wiersz poleceń. Przykład:

vars = Zmienne('custom.py')
vars = Zmienne('overrides.py', ARGUMENTY)
vars = Zmienne(Brak, {FOO:'rozszerzenie', BAR:7})

Obiekty zmiennych mają następujące metody:

Dodać(klucz[pomoc, domyślnym, walidator, przetwornik])
Dodaje zmienną konstrukcyjną, którą można dostosować do obiektu Zmienne. klucz jest
nazwa zmiennej. pomoc jest tekstem pomocy dla zmiennej. domyślnym jest wartością domyślną
wartość zmiennej; jeśli wartość domyślna to żaden i nie ma żadnej wyraźnej wartości
określona, ​​zmienna konstrukcyjna będzie nie zostać dodanym do konstrukcji
środowisko. walidator jest wywoływany w celu sprawdzenia wartości zmiennej i powinien
weź trzy argumenty: klucz, wartość i środowisko. Zalecany sposób obsługi
nieprawidłowa wartość spowoduje wygenerowanie wyjątku (zobacz przykład poniżej). przetwornik jest wezwany do
przekonwertować wartość przed umieszczeniem jej w środowisku i powinno to przyjąć albo
wartość lub wartość i środowisko jako parametry. przetwornik musi zwrócić wartość,
który zostanie przekonwertowany na ciąg przed zatwierdzeniem przez walidator (Jeśli w ogóle)
a następnie dodane do środowiska.

Przykłady:

vars.Add('CC', 'Kompilator C')

def validate_color(klucz, wartość, środowisko):
jeśli nie val w ['czerwony', 'niebieski', 'żółty']:
podnieś wyjątek („Nieprawidłowa wartość koloru '%s'” % val)
vars.Add('COLOR', walidator=valid_color)

DodajZmienne(podstęp)
Skrypt opakowujący, który dodaje wiele konfigurowalnych zmiennych konstrukcyjnych do zmiennych
obiekt. podstęp jest listą obiektów krotki lub listy, które zawierają argumenty dla
indywidualne połączenie do Dodaj Metoda.

opt.DodajZmienne(
('debugowanie', '', 0),
('CC', 'Kompilator C'),
('VALIDATE', 'Opcja testowania walidacji',
'notset', walidator, None),
)

Aktualizacja(env[args])
Ta aktualizacja aktualizuje środowisko konstrukcyjne env z niestandardową konstrukcją
zmienne. Wszelkie określone zmienne, które są nie skonfigurowano dla obiektu Zmienne
zostaną zapisane i mogą zostać odzyskane za pomocą Nieznane zmienne() poniżej.

Zwykle tej metody nie wywołuje się bezpośrednio, lecz pośrednio, przekazując
Obiekt zmiennych dla funkcji Environment():

env = Środowisko(zmienne=zmienne)

Pliki tekstowe określone podczas tworzenia obiektu Zmienne są wykonywane jako
Skrypty języka Python i wartości zmiennych języka Python (globalnych) ustawionych w pliku są dodawane do
środowisko budowlane.

Przykład:

CC = 'my_cc'

NieznaneZmienne()
Zwraca słownik zawierający wszystkie zmienne określone w plikach
lub słownik, za pomocą którego zainicjowano obiekt Variables, ale dla którego
Obiekt zmiennych nie został skonfigurowany.

env = Środowisko(zmienne=zmienne)
dla klucza, wartość w vars.UnknownVariables():
wydrukuj "nieznana zmienna: %s=%s" % (klucz, wartość)

Ratować(filename, env)
Zapisuje aktualnie ustawione zmienne do pliku skryptu o nazwie filename to może być
używane przy następnym wywołaniu, aby automatycznie załadować bieżące ustawienia. Ta metoda
w połączeniu z metodą Variables można wykorzystać do obsługi buforowania zmiennych pomiędzy
biegnie.

env = Środowisko()
vars = Zmienne(['variables.cache', 'custom.py'])
vars.Add(...)
vars.Update(env)
vars.Save('zmienne.cache', env)

GenerujTekstPomocy(env[rodzaj])
Generuje tekst pomocy dokumentujący zmienne konstrukcyjne, które można dostosować
do przekazania do funkcji Help(). env jest to środowisko budowlane, które będzie
być używane do pobierania rzeczywistych wartości zmiennych konfigurowalnych. Wywołanie z opcjonalnym
rodzaj Funkcja spowoduje, że dane wyjściowe zostaną posortowane według określonego argumentu.
specyficzny rodzaj funkcja powinna przyjmować dwa argumenty i zwracać -1, 0 lub 1 (jak
standardowy Python CMP funkcjonować).

Pomoc(vars.GenerateHelpText(env))
Pomoc(vars.GenerateHelpText(env, sort=cmp))

FormatZmiennejPomocyTekst(env, optować, pomoc, domyślnym, rzeczywisty)
Ta metoda zwraca sformatowany ciąg zawierający tekst pomocy możliwy do wydrukowania dla jednego
opcja. Zwykle nie jest wywoływana bezpośrednio, ale jest wywoływana przez Generuj tekst pomocy()
metoda tworzenia zwróconego tekstu pomocy. Może być zastąpiona przez twoją własną funkcję
który przyjmuje argumenty określone powyżej i zwraca ciąg tekstu pomocy sformatowany
według własnego uznania. Zauważ, że Generuj tekst pomocy() nie wstawi żadnych pustych linii ani dodatkowych
znaków pomiędzy wpisami, dlatego należy dodać te znaki do zwróconego
string jeśli chcesz oddzielić wpisy.

def my_format(env, opt, help, default, actual):
fmt = "\n%s: domyślnie=%s rzeczywiste=%s (%s)\n"
zwróć fmt % (opt, default. actual, help)
vars.FormatVariableHelpText = my_format

Aby ułatwić pracę ze zmiennymi konfigurowalnymi, szyderstwa zapewnia
liczba funkcji, które ułatwiają konfigurację różnych typów zmiennych:

Zmienna logiczna(klucz, pomoc, domyślnym)
Zwróć krotkę argumentów, aby skonfigurować opcję Boolean. Opcja będzie używać
określona nazwa klucz, mają wartość domyślną domyślnymi wyświetl określone pomoc
tekst. Opcja zinterpretuje wartości y, tak, t, prawdziwy, 1, on i cała kolekcja jako prawdziwe i
wartości n, Nie, f, fałszywy, 0, poza i Żaden jako fałszywe.

WyliczenieZmiennej(klucz, pomoc, domyślnym, dozwolone_wartości[mapa, ignorowanie przypadku])
Zwróć krotkę argumentów, aby skonfigurować opcję, której wartość może być jedną z określonych
lista legalnych wartości wyliczeniowych. Opcja będzie używać określonej nazwy klucz, mieć
domyślna wartość domyślnymi wyświetl określone pomoc tekst. Opcja będzie tylko
wspierać te wartości w dozwolone_wartości lista. Opcjonalne mapa argument jest
słownik, który można wykorzystać do konwersji wartości wejściowych na określone wartości prawne w
dozwolone_wartości lista. Jeśli wartość ignoruj_przypadek jest 0 (domyślnie), wówczas wartości
są rozróżniane wielkością liter. Jeśli wartość ignoruj_przypadek jest 1, wówczas wartości będą dopasowywane
bez względu na wielkość liter. Jeśli wartość ignoruj_przypadek jest 2, wówczas wartości będą dopasowywane
nie jest rozróżniana wielkość liter, a wszystkie wartości wejściowe zostaną zamienione na małe litery.

ListaZmiennych(klucz, pomoc, domyślnym, Nazwy[,mapa])
Zwróć krotkę argumentów, aby skonfigurować opcję, której wartość może być jedną lub większą liczbą z następujących:
określona lista legalnych wartości wyliczeniowych. Opcja będzie używać określonej nazwy klucz,
mieć wartość domyślną domyślnymi wyświetl określone pomoc tekst. Opcja będzie
wspieraj tylko wartości cała kolekcja, Żadenlub wartości w Nazwy lista. Więcej niż jeden
wartość może być określona, ​​przy czym wszystkie wartości są rozdzielone przecinkami. Domyślna wartość może być
ciąg wartości domyślnych rozdzielonych przecinkami lub lista wartości domyślnych.
fakultatywny mapa argument jest słownikiem, który można wykorzystać do konwersji wartości wejściowych na
konkretne wartości prawne w Nazwy lista.

ZmiennaPakietu(klucz, pomoc, domyślnym)
Zwróć krotkę argumentów, aby skonfigurować opcję, której wartością jest nazwa ścieżki dostępu
pakiet, który może być włączony, wyłączony lub mieć określoną nazwę ścieżki. Opcja ta
użyj określonej nazwy klucz, mają wartość domyślną domyślnymi wyświetl określone
pomoc tekst. Opcja będzie obsługiwać wartości tak, prawdziwy, on, umożliwiać or szukaniew
w którym przypadku określony domyślnym zostanie użyta lub opcja może być ustawiona na
dowolny ciąg (zwykle nazwa ścieżki do pakietu, który jest włączany).
opcja będzie również obsługiwać wartości Nie, fałszywy, poza or wyłączyć aby wyłączyć korzystanie z
określona opcja.

Zmienna ścieżki(klucz, pomoc, domyślnym[walidator])
Zwróć krotkę argumentów, aby skonfigurować opcję, której wartość ma być ścieżką
nazwa. Opcja użyje określonej nazwy klucz, mają wartość domyślną domyślnym,
wyświetl określony pomoc tekst. Dodatkowy walidator można określić, że będzie
wywołano w celu sprawdzenia, czy określona ścieżka jest akceptowalna. SCons dostarcza następujące
gotowe walidatory: PathVariable.PathExists (domyślnie), co weryfikuje, czy
określona ścieżka istnieje; PathVariable.PathIsFile, który weryfikuje, czy określona ścieżka
jest istniejącym plikiem; PathVariable.PathIsDir, który weryfikuje, czy określona ścieżka jest
istniejący katalog; PathVariable.PathIsDirCreate, który weryfikuje, że określony
ścieżka jest katalogiem i utworzy określony katalog, jeśli ścieżka nie jest
istnieć; i ZmiennaŚcieżki.ŚcieżkaAkceptuj, który po prostu akceptuje konkretną nazwę ścieżki
argument bez walidacji, który jest odpowiedni, jeśli chcesz, aby Twoi użytkownicy mogli
aby określić ścieżkę do katalogu, który zostanie utworzony w ramach procesu kompilacji,
przykład. Możesz dostarczyć własne walidator funkcja, która musi przyjmować trzy argumenty
(klucz, nazwa zmiennej, która ma zostać ustawiona; val, sprawdzana jest określona wartość; i
env(środowisko konstrukcyjne) i powinno zgłosić wyjątek, jeśli określony
wartość jest nie do przyjęcia.

Funkcje te ułatwiają tworzenie wielu zmiennych o spójnej wartości
zachowanie w jednym połączeniu z Dodaj zmienne metoda:

vars.DodajZmienne(
BoolVariable('ostrzeżenia', 'kompilacja z -Wall i podobnymi', 1),
EnumVariable('debug', 'wyjście debugowania i symbole', 'nie'
dozwolone_wartości=('tak', 'nie', 'pełny'),
map={}, ignorecase=0), # rozróżnia wielkość liter
ListaZmiennych('współdzielone',
„biblioteki budowane jako biblioteki współdzielone”,
'Wszystko',
nazwy = lista_bibliotek),
ZmiennaPakietu('x11',
'użyj zainstalowanego tutaj X11 (tak = przeszukaj niektóre miejsca)',
'Tak'),
PathVariable('qtdir', 'gdzie zainstalowany jest katalog główny Qt', qtdir),
PathVariable('foopath', 'gdzie zainstalowana jest biblioteka foo', foopath,
PathVariable.PathIsDir),

)

filet i Informator Węzły
Kurs filet() i Państwo() funkcje zwracają filet i Państwo Węzły, odpowiednio obiekty Pythona,
odpowiednio. Te obiekty mają kilka widocznych dla użytkownika atrybutów i metod, które są
często przydatne:

ścieżka
Ścieżka kompilacji danego pliku lub katalogu. Ta ścieżka jest względna do najwyższego poziomu
katalog (gdzie SCkonstrukcja plik został znaleziony). Ścieżka kompilacji jest taka sama jak
ścieżka źródłowa jeśli wariant_katalog nie jest używany.

Abspath
Bezwzględna ścieżka kompilacji danego pliku lub katalogu.

węzeł źródłowy()
Kurs węzeł źródłowy() metoda zwraca inną filet or Państwo obiekt reprezentujący źródło ścieżka
danego filet or Państwo,

# Pobierz ścieżkę do bieżącego katalogu kompilacji, względem katalogu głównego.
Ścieżka Dir('.').path
# Ścieżka bezwzględna bieżącego katalogu
Dir('.').abspath
# Następny wiersz to zawsze '.', ponieważ jest to ścieżka do najwyższego katalogu względem niego samego.
Dir('#.').path
File('foo.c').srcnode().path # ścieżka źródłowa podanego pliku źródłowego.

# Konstruktorzy zwracają również obiekty File:
foo = środowisko.Program('foo.c')
wydrukuj "foo zostanie zbudowane w %s"%foo.path

A Państwo Węzeł lub filet Węzeł może być również używany do tworzenia węzłów plików i podkatalogów
w stosunku do węzła generującego. A Państwo Węzeł umieści nowe węzły w
katalog, który reprezentuje. A filet węzeł umieści nowe węzły w obrębie swojego rodzica
katalogu (czyli „obok” danego pliku). Jeśli d jest Państwo (katalog) Węzeł i
f jest filet (plik) Węzeł, wówczas dostępne są następujące metody:

d.Reż(Nazwa)
Zwraca węzeł katalogu dla podkatalogu d o imieniu Nazwa.

d.Plik(Nazwa)
Zwraca węzeł pliku dla pliku w d o imieniu Nazwa.

d.Wejście(Nazwa)
Zwraca nierozwiązany węzeł w d o imieniu Nazwa.

f.Reż(Nazwa)
Zwraca katalog o nazwie Nazwa w katalogu nadrzędnym f.

f.Plik(Nazwa)
Zwraca plik o nazwie Nazwa w katalogu nadrzędnym f.

f.Wejście(Nazwa)
Zwraca nierozwiązany węzeł o nazwie Nazwa w katalogu nadrzędnym f.

Na przykład:

# Pobierz węzeł dla pliku w katalogu
włącz = Dir('zawiera')
f = incl.File('header.h')

# Pobierz węzeł dla podkatalogu w katalogu
dist = Dir('projekt-3.2.1)
src = dist.Dir('src')

# Pobierz węzeł dla pliku w tym samym katalogu
cfile = Plik('przykład.c')
hfile = cfile.Plik('przykład.h')

# Przykład łączony
dokumenty = Dir('dokumenty')
html = docs.Dir('html')
indeks = html.Plik('index.html')
css = index.Plik('app.css')

ROZSUWALNY SKONY


Budowniczy Obiekty
szyderstwa można rozszerzyć, aby budować różne typy celów, dodając nowe obiekty Builder do
środowisko budowlane. In ogólny, wystarczy, że dodasz nowy obiekt Builder
gdy chcesz zbudować nowy typ pliku lub inny zewnętrzny cel. Jeśli chcesz po prostu
wywołać inny kompilator lub inne narzędzie w celu zbudowania programu, obiektu, biblioteki lub dowolnego innego
inny typ pliku wyjściowego, dla którego szyderstwa ma już istniejącego Budowniczego, to zazwyczaj
znacznie łatwiej jest używać istniejących Builderów w środowisku budowlanym, które ustala
odpowiednie zmienne konstrukcyjne (CC, LINK, itp.).

Obiekty budowniczego są tworzone za pomocą Budowniczy funkcjonować. The Budowniczy funkcja akceptuje
następujące argumenty:

akcja
Ciąg wiersza poleceń używany do zbudowania celu ze źródła. akcja może też być:
lista ciągów znaków reprezentujących polecenie do wykonania i jego argumenty (odpowiednie)
do umieszczania białych znaków w argumencie), słownik mapujący nazwę pliku źródłowego
przyrostki do dowolnej kombinacji ciągów wiersza poleceń (jeśli program do tworzenia ma je zaakceptować)
wiele rozszerzeń plików źródłowych), funkcja Pythona, obiekt Action (patrz następny
sekcja) lub lista powyższych.

Funkcja akcji przyjmuje trzy argumenty: źródło - lista węzłów źródłowych, cel -
lista węzłów docelowych, env - środowisko budowlane.

prefiks
Prefiks, który będzie dodawany do nazwy pliku docelowego. Może być określony jako:
* ciąg,

* wywoływalny przedmiot - funkcja lub inna funkcja wywoływalna, która przyjmuje dwa argumenty (a
środowisko konstrukcyjne i listę źródeł) i zwraca prefiks,

* słownik - określa mapowanie z określonego sufiksu źródłowego (pierwszego sufiksu źródłowego)
określony) do odpowiadającego mu prefiksu docelowego. Zarówno sufiks źródłowy, jak i prefiks docelowy
specyfikacje mogą wykorzystywać podstawienie zmiennych środowiskowych i prefiks docelowy (
Wpisy 'value' w słowniku) mogą być również obiektem wywoływalnym. Domyślny cel
prefiks może być wskazany przez wpis w słowniku z wartością klucza None.

b = Builder("build_it < $SOURCE > $TARGET",
prefiks = "plik-")

def gen_prefix(env, źródła):
zwróć "file-" + env['PLATFORM'] + '-'
b = Builder("build_it < $SOURCE > $TARGET",
prefiks = gen_prefix)

b = Builder("build_it < $SOURCE > $TARGET",
sufiks = { Brak: "file-",
"$SRC_SFX_A": prefiks_gen. })

przyrostek
Sufiks, który zostanie dodany do nazwy pliku docelowego. Można go określić w
w taki sam sposób jak prefiks powyżej. Jeśli sufiks jest ciągiem znaków, to szyderstwa dołączę
'.' na początku sufiksu, jeśli go tam jeszcze nie ma. Ciąg zwrócony przez
obiekt wywoływalny (lub uzyskany ze słownika) jest nietknięty i musi zostać do niego dołączony jego własny
'.' na początku, jeżeli jest to pożądane.

b = Builder("build_it < $SOURCE > $TARGET"
przyrostek = "-plik")

def gen_suffix(env, źródła):
zwróć "." + env['PLATFORM'] + "-file"
b = Builder("build_it < $SOURCE > $TARGET",
sufiks = gen_suffix)

b = Builder("build_it < $SOURCE > $TARGET",
sufiks = { Brak: ".sfx1",
"$SRC_SFX_A": przyrostek_gen. })

zapewnij_sufiks
Gdy ustawiona jest na dowolną wartość true, powoduje szyderstwa aby dodać sufiks docelowy określony przez
przyrostek słowo kluczowe do dowolnych ciągów docelowych, które mają inny sufiks. (Domyślna wartość
zachowanie polega na pozostawieniu nietkniętej nazwy pliku docelowego, która wygląda, jakby już zawierała jakąkolwiek nazwę
przyrostek.)

b1 = Builder("build_it < $SOURCE > $TARGET"
przyrostek = ".out")
b2 = Builder("build_it < $SOURCE > $TARGET"
przyrostek = ".out",
zapewnij_sufiks)
env = Środowisko()
środowisko['BUILDERS']['B1'] = b1
środowisko['BUILDERS']['B2'] = b2

# Buduje „foo.txt”, ponieważ ensure_suffix nie jest ustawiony.
środowisko.B1('foo.txt', 'foo.in')

# Buduje „bar.txt.out”, ponieważ ustawiono ensure_suffix.
środowisko.B2('bar.txt', 'bar.in')

sufiks_źródłowy
Oczekiwany sufiks nazwy pliku źródłowego. Może to być ciąg lub lista ciągów.

skaner_docelowy
Obiekt skanera, który zostanie wywołany w celu znalezienia niejawnych zależności dla tego celu
plik. Ten argument słowa kluczowego powinien być używany dla obiektów Scanner, które znajdują niejawne
zależności oparte wyłącznie na pliku docelowym i środowisku konstrukcyjnym, nie dla
niejawne zależności oparte na plikach źródłowych. (Zobacz sekcję „Obiekty skanera” poniżej,
Aby uzyskać informacje na temat tworzenia obiektów skanera.)

skaner_źródłowy
Obiekt skanera, który zostanie wywołany w celu znalezienia niejawnych zależności w dowolnym źródle
pliki użyte do zbudowania tego pliku docelowego. Tutaj należy określić skaner do
znajdź takie rzeczy jak #zawierać wiersze w plikach źródłowych. Wstępnie zbudowane Skaner DirScannera Scanner
Obiekt może być użyty do wskazania, że ​​ten Builder powinien przeskanować drzewa katalogów w poszukiwaniu
zmiany na dysku w plikach, które szyderstwa nie wie o innym Builderze lub funkcji
wywołań. (Informacje na temat tworzenia obiektów skanera znajdują się w sekcji „Obiekty skanera” poniżej.
własne obiekty Skanera.)

fabryka_docelowa
Funkcja fabryczna, której Builder użyje do przekształcenia dowolnych celów określonych jako ciągi znaków
do węzłów SCons. Domyślnie SCons zakłada, że ​​wszystkie cele są plikami. Inne przydatne
wartości target_factory obejmują Państwo, gdy Builder tworzy katalog docelowy i
Wejście, gdy Builder może utworzyć plik lub katalog docelowy.

Przykład:

MakeDirectoryBuilder = Builder(akcja=my_mkdir, target_factory=Dir)
env = Środowisko()
env.Append(BUILDERS = {'MakeDirectory':MakeDirectoryBuilder})
env.MakeDirectory('nowy_katalog', [])

Należy pamiętać, że wywołanie MakeDirectory Builder wymaga określenia pustej listy źródłowej
aby ciąg znaków reprezentował cel konstruktora; bez tego przyjąłby, że
argumentem jest źródło i spróbujemy wywnioskować z niego nazwę docelową, która w
brak automatycznie dodanego prefiksu lub sufiksu doprowadziłby do dopasowania celu i
nazwa źródła i zależność cykliczna.

fabryka_źródłowa
Funkcja fabryczna, której Builder użyje do przekształcenia dowolnych źródeł określonych jako ciągi znaków
do węzłów SCons. Domyślnie SCons zakłada, że ​​wszystkie źródła to pliki. Inne przydatne
wartości source_factory obejmują Państwo, gdy Builder używa katalogu jako źródła,
i Wejście, gdy Builder może używać plików lub katalogów (lub obu) jako źródeł.

Przykład:

CollectBuilder = Builder(akcja=my_mkdir, source_factory=Entry)
env = Środowisko()
env.Append(BUILDERS = {'Zbierz':CollectBuilder})
env.Collect('archive', ['nazwa_katalogu', 'nazwa_pliku'])

emiter
Funkcja lub lista funkcji do manipulowania listami docelowymi i źródłowymi przed
ustanawiane są zależności i faktycznie budowane są obiekty docelowe. emiter Można również
będzie ciągiem zawierającym zmienną konstrukcyjną, która zostanie rozwinięta do funkcji emitera lub
lista funkcji lub słownik mapujący sufiksy plików źródłowych na funkcje emitera.
(Do wybrania rzeczywistego emitera używany jest tylko sufiks pierwszego pliku źródłowego
funkcja ze słownika emiterów.)

Funkcja emitera przyjmuje trzy argumenty: źródło - lista węzłów źródłowych, cel -
lista węzłów docelowych, env - środowisko konstrukcyjne. Emiter musi zwrócić
krotka zawierająca dwie listy, listę celów, które mają zostać zbudowane przez ten konstruktor, oraz
lista źródeł dla tego konstruktora.

Przykład:

def e(cel, źródło, środowisko):
zwróć (cel + ['foo.foo'], źródło + ['foo.src'])

# Proste skojarzenie funkcji emitera z Builderem.
b = Builder("my_build < $TARGET > $SOURCE",
emiter = e)

def e2(cel, źródło, środowisko):
zwróć (cel + ['bar.foo'], źródło + ['bar.src'])

# Proste skojarzenie listy funkcji emitera z Builderem.
b = Builder("my_build < $TARGET > $SOURCE",
emiter = [e, e2])

# Wywołanie funkcji emitera poprzez zmienną konstrukcyjną.
env = Środowisko(MY_EMITTER = e)
b = Builder("my_build < $TARGET > $SOURCE",
emiter = '$MY_EMITTER')

# Wywoływanie listy funkcji emitera poprzez zmienną konstrukcyjną.
env = Środowisko(EMITTER_LIST = [e, e2])
b = Builder("my_build < $TARGET > $SOURCE",
emiter = '$EMITTER_LIST')

# Kojarzenie wielu emiterów z różnymi plikami
# sufiksy używając słownika.
def e_suf1(cel, źródło, środowisko):
zwróć (cel + ['inny_plik_docelowy'], źródło)
def e_suf2(cel, źródło, środowisko):
zwróć (cel, źródło + ['inny_plik_źródłowy'])
b = Builder("my_build < $TARGET > $SOURCE",
emiter = {'.suf1' : e_suf1,
'.suf2' : e_suf2})

wielo
Określa, czy ten konstruktor może być wywoływany wielokrotnie w tym samym celu
docelowy(e) plik(i). Domyślnie jest to 0, co oznacza, że ​​nie można wywołać wielokrotnie budowniczego
razy dla tych samych plików docelowych. Wielokrotne wywoływanie konstruktora dla tego samego
target po prostu dodaje dodatkowe pliki źródłowe do celu; nie wolno go zmieniać
środowisko powiązane z celem, określ dodatkowe zastąpienia środowiska lub
powiązać inny konstruktor z celem.

env
Środowisko konstrukcyjne, które można wykorzystać do pobierania kodu źródłowego za pomocą tego narzędzia Builder.
(Należy pamiętać, że to środowisko jest nie używany do normalnych kompilacji normalnych plików docelowych,
które wykorzystują środowisko, które zostało użyte do wywołania Buildera dla pliku docelowego.)

generator
Funkcja zwracająca listę działań, które zostaną wykonane w celu zbudowania celu(ów)
ze źródła(ów). Zwrócone akcje mogą być obiektem Action lub czymkolwiek, co
można przekonwertować na obiekt akcji (patrz następna sekcja).

Funkcja generatora przyjmuje cztery argumenty: źródło - lista węzłów źródłowych, cel -
lista węzłów docelowych, env - środowisko budowlane, dla_podpisu - wartość logiczna
wartość określająca, czy generator jest wywoływany w celu wygenerowania kompilacji
podpis (w przeciwieństwie do faktycznego wykonania polecenia). Przykład:

def g(źródło, cel, środowisko, dla_podpisu):
zwróć [["gcc", "-c", "-o"] + cel + źródło]

b = Budowniczy(generator=g)

Kurs generator i akcja argumenty nie mogą być użyte dla tego samego Buildera.

Źródło_buildera
Określa program do tworzenia, który ma zostać użyty, gdy sufiks nazwy pliku źródłowego nie pasuje do żadnego z sufiksów
sufiksy buildera. Użycie tego argumentu powoduje powstanie buildera wieloetapowego.

pojedyncze_źródło
Określa, że ​​ten konstruktor oczekuje dokładnie jednego pliku źródłowego na wywołanie. Podając więcej niż
jeden plik źródłowy bez plików docelowych powoduje niejawne wywołanie konstruktora
wiele razy (raz dla każdego podanego źródła). Podawanie wielu plików źródłowych razem
w przypadku plików docelowych powoduje wyjątek UserError.

Kurs generator i akcja argumenty nie mogą być użyte dla tego samego Buildera.

źródło_ext_match
Gdy określony akcja argument jest słownikiem, domyślnym zachowaniem, gdy
program budujący przekazuje wiele plików źródłowych, aby upewnić się, że rozszerzenia wszystkich
pliki źródłowe są zgodne. Jeśli jest to legalne dla tego budowniczego, aby zostać wywołanym z listą plików źródłowych
pliki z różnymi rozszerzeniami, można pominąć tę kontrolę, ustawiając
źródło_ext_match do żaden lub jakaś inna nieprawdziwa wartość. Kiedy źródło_ext_match is
wyłączyć, szyderstwa użyje sufiksu pierwszego określonego pliku źródłowego, aby wybrać
odpowiednie działanie ze strony akcja słownik.

W poniższym przykładzie ustawienie źródło_ext_match zapobiega szyderstwa od wyjścia
z błędem spowodowanym niedopasowanymi sufiksami foo.in i foo.dodatkowy.

b = Builder(akcja={'.in' : 'kompiluj $SOURCES > $TARGET'},
source_ext_match = Brak)

env = Środowisko(BUILDERS = {'MyBuild':b})
środowisko.MyBuild('foo.out', ['foo.in', 'foo.extra'])

env
Środowisko konstrukcyjne, które można wykorzystać do pobierania kodu źródłowego za pomocą tego narzędzia Builder.
(Należy pamiętać, że to środowisko jest nie używany do normalnych kompilacji normalnych plików docelowych,
które wykorzystują środowisko, które zostało użyte do wywołania Buildera dla pliku docelowego.)

b = Builder(akcja="build < $SOURCE > $TARGET")
env = Środowisko(BUILDERS = {'MyBuild' : b})
env.MyBuild('foo.out', 'foo.in', my_arg = 'xyzzy')

chdir
Katalog, z którego scons wykona akcję(i) określoną(e) dla tego Buildera. Jeśli
dotychczasowy chdir argument jest ciągiem znaków lub katalogiem Node, scons zmieni się na określony
katalog. Jeśli chdir nie jest ciągiem znaków ani węzłem i jest różny od zera, wówczas scons będzie
przejdź do katalogu pliku docelowego.

Pamiętaj, że sknery to zrobią nie automatycznie modyfikuje swoje rozszerzenie zmiennych konstrukcyjnych
lubić $CEL i $ŹRÓDŁO podczas korzystania ze słowa kluczowego chdir, czyli rozszerzonego argumentu
nazwy plików nadal będą względne w stosunku do katalogu najwyższego poziomu SConstruct i
w konsekwencji niepoprawne w stosunku do katalogu chdir. Buildery utworzone przy użyciu chdir
argument słowa kluczowego, konieczne będzie użycie rozszerzeń zmiennych konstrukcyjnych, takich jak
${TARGET.plik} i ${ŹRÓDŁO.plik} aby użyć tylko części nazwy pliku docelowego i
źródło.

b = Builder(akcja="build < ${SOURCE.file} > ${TARGET.file}",
chdir=1)
env = Środowisko(BUILDERS = {'MyBuild' : b})
env.MyBuild('sub/dir/foo.out', 'sub/dir/foo.in')

UWAGA: Python przechowuje tylko jedną bieżącą lokalizację katalogu dla wszystkich wątków.
oznacza, że ​​użycie chdir argument będzie nie praca z SCons -j opcja, ponieważ
poszczególne wątki robocze generowane przez SCons zakłócają się wzajemnie podczas uruchamiania
zmiana katalogu.

Wszelkie dodatkowe argumenty słów kluczowych podane podczas tworzenia obiektu Builder (tj. podczas
zostanie wywołana funkcja Builder() zostanie ustawiona w środowisku wykonywania konstrukcji
gdy obiekt Builder jest wywoływany. Kanonicznym przykładem tutaj byłoby ustawienie
zmienna konstrukcyjna do repozytorium systemu kodu źródłowego.

Wszelkie dodatkowe argumenty słów kluczowych dostarczone podczas tworzenia przedmiot nazywa się będzie tylko
powiązane z celem utworzonym przez to konkretne wywołanie Buildera (i wszelkie inne pliki)
zbudowany w wyniku połączenia).

Te dodatkowe argumenty słów kluczowych są przekazywane do następujących funkcji: generator poleceń
funkcje, akcje funkcji i funkcje emitera.

Działania Obiekty
Kurs Budowniczy() funkcja zmieni swoją akcja argument słowa kluczowego do odpowiedniego wewnętrznego
Obiekt akcji. Możesz również jawnie tworzyć obiekty akcji za pomocą Działania() global
funkcja, która może być następnie przekazana do Budowniczy() Funkcja. Może być używana do
skonfigurować obiekt akcji w sposób bardziej elastyczny lub po prostu może być bardziej wydajny niż pozwalanie
każdy oddzielny obiekt Builder tworzy oddzielną akcję, gdy potrzeba wielu obiektów Builder
zrobić to samo.

Kurs Działania() funkcja globalna zwraca odpowiedni obiekt dla akcji reprezentowanej przez
typ pierwszego argumentu:

Działania
Jeżeli pierwszy argument jest już obiektem akcji, obiekt ten jest po prostu zwracany.

sznur
Jeśli pierwszy argument jest ciągiem znaków, zwracana jest akcja wiersza poleceń. Należy zauważyć, że
ciąg wiersza poleceń może być poprzedzony @ (znak at) aby wstrzymać drukowanie
określonej linii poleceń lub przez - (myślnik) aby zignorować status wyjścia z
określone polecenie:

Akcja('$CC -c -o $TARGET $SOURCES')

# Nie drukuje wykonywanego wiersza.
Akcja('@build $TARGET $SOURCES')

# Ignoruje wartość zwracaną
Akcja('-build $TARGET $SOURCES')

Lista
Jeśli pierwszy argument jest listą, to zwracana jest lista obiektów Action.
obiekt jest tworzony w razie potrzeby dla każdego elementu na liście. Jeśli element w ciągu dotychczasowy
lista sama w sobie jest listą, wewnętrzna lista to polecenie i argumenty do wykonania
za pomocą wiersza poleceń. Pozwala to na uwzględnienie białych znaków w argumencie przez
definiowanie polecenia na liście w obrębie listy:

Akcja([['cc', '-c', '-DBIAŁA SPACJA', '-o', '$TARGET', '$SOURCES']])

Funkcjonować
Jeśli pierwszym argumentem jest funkcja Pythona, zwracana jest funkcja Action.
funkcja musi przyjmować trzy argumenty słów kluczowych, cel (obiekt węzła reprezentujący
plik docelowy), źródło (obiekt Node reprezentujący plik źródłowy) i env (
środowisko konstrukcyjne używane do budowania pliku docelowego). cel i źródło
argumenty mogą być listami obiektów Node, jeśli istnieje więcej niż jeden plik docelowy lub źródłowy
plik. Rzeczywiste nazwy plików docelowych i źródłowych mogą być pobrane z ich węzła
obiekty poprzez wbudowaną funkcję Python str():

target_file_name = str(docelowy)
source_file_names = mapa(lambda x: str(x), źródło)

Funkcja powinna zwrócić 0 lub żaden aby wskazać pomyślną kompilację celu
plik(i). Funkcja może zgłosić wyjątek lub zwrócić kod wyjścia różny od zera
oznacza nieudaną kompilację.

def build_it(target = None, source = None, env = None):
# zbuduj cel ze źródła
zwróć 0

a = Akcja(zbuduj)

Jeżeli argument akcji nie jest żadnym z powyższych, zwracana jest wartość None.

Drugi argument jest opcjonalny i służy do zdefiniowania wyniku, który zostanie wydrukowany po
Akcja jest faktycznie wykonywana. W przypadku braku tego parametru lub jeśli jest pusty
string, domyślne wyjście zależne od typu akcji jest używane. Na przykład,
akcja wiersza poleceń wydrukuje wykonane polecenie. Argument musi być albo Pythonem
funkcja lub ciąg znaków.

W pierwszym przypadku jest to funkcja zwracająca ciąg znaków, który należy wydrukować, aby opisać
wykonywana akcja. Funkcja może być również określona przez struktura= słowo kluczowe
argument. Podobnie jak funkcja do budowania pliku, ta funkcja musi przyjąć trzy słowa kluczowe
argumenty: cel (obiekt Node reprezentujący plik docelowy), źródło (obiekt węzła
reprezentujący plik źródłowy) i env (środowisko budowlane). cel i źródło
argumenty mogą być listami obiektów Node, jeśli istnieje więcej niż jeden plik docelowy lub źródłowy
plik.

W drugim przypadku podajesz sam ciąg. Ciąg może być również określony przez
polecenie= argument słowa kluczowego. Ten ciąg zwykle zawiera zmienne, zwłaszcza $TARGET(S) i
$SOURCE(S) lub składa się tylko z jednej zmiennej, która jest opcjonalnie zdefiniowana w innym miejscu
w przeciwnym razie. SCons sam w sobie obficie korzysta z tej drugiej odmiany.

Przykłady:

def build_it(cel, źródło, środowisko):
# zbuduj cel ze źródła
zwróć 0

def string_it(cel, źródło, środowisko):
zwróć "budynek '%s' z '%s'" % (cel[0], źródło[0])

# Użyj argumentu pozycyjnego.
f = Akcja(zbuduj_to, ciąg_to)
s = Action(build_it, "kompilowanie '$TARGET' z '$SOURCE'")

# Alternatywnie, użyj argumentu słowa kluczowego.
f = Akcja(build_it, strfunction=string_it)
s = Action(build_it, cmdstr="kompilowanie '$TARGET' z '$SOURCE'")

# Możesz podać konfigurowalną zmienną.
l = Akcja(kompiluj, '$STRINGIT')

Trzeci i kolejne argumenty, jeżeli występują, mogą być zmienną konstrukcyjną lub
lista zmiennych konstrukcyjnych, których wartości zostaną uwzględnione w podpisie
Działanie przy podejmowaniu decyzji, czy cel powinien zostać odbudowany, ponieważ działanie uległo zmianie.
zmienne mogą być również określone przez varlista= parametr słowa kluczowego; jeżeli oba są obecne,
są połączone. Jest to konieczne, gdy chcesz, aby cel został przebudowany, gdy określony
zmienna konstrukcyjna ulega zmianie. Nie jest to często potrzebne w przypadku akcji ciągu, ponieważ
rozszerzone zmienne będą zazwyczaj częścią wiersza poleceń, ale mogą być potrzebne, jeśli
Funkcja Python action wykorzystuje wartość zmiennej konstrukcyjnej podczas generowania
wiersz poleceń.

def build_it(cel, źródło, środowisko):
# zbuduj cel ze zmiennej konstrukcyjnej „XXX”
otwórz(cel[0], 'w').napisz(środowisko['XXX'])
zwróć 0

# Użyj argumentów pozycyjnych.
a = Akcja(kompiluj, '$STRINGIT', ['XXX'])

# Alternatywnie, użyj argumentu słowa kluczowego.
a = Akcja(zbuduj, lista_zmiennych=['XXX'])

Kurs Działania() do funkcji globalnej można przekazać następujące opcjonalne argumenty słów kluczowych
zmodyfikuj zachowanie obiektu Akcji:

chdir Kurs chdir argument słowa kluczowego określa, że ​​scons wykona akcję po
zmiana na określony katalog. Jeśli chdir argument jest ciągiem znaków lub katalogiem
Węzeł, scons zmieni się na określony katalog. Jeśli chdir argument nie jest ciągiem znaków
lub Node i jest różna od zera, wówczas scons przejdzie do katalogu pliku docelowego.

Pamiętaj, że sknery to zrobią nie automatycznie modyfikuje swoje rozwinięcie zmiennych konstrukcyjnych, takich jak
$CEL i $ŹRÓDŁO podczas używania argumentu słowa kluczowego chdir — czyli rozwiniętego pliku
nazwy będą nadal odnosić się do katalogu SConstruct najwyższego poziomu, a co za tym idzie
niepoprawne w stosunku do katalogu chdir. Buildery utworzone przy użyciu argumentu słowa kluczowego chdir,
będzie trzeba użyć rozszerzeń zmiennych konstrukcyjnych, takich jak ${TARGET.plik} i ${ŹRÓDŁO.plik}
aby użyć tylko części docelowej i źródłowej zawierającej nazwę pliku.

a = Akcja("kompilacja < ${SOURCE.file} > ${TARGET.file}",
chdir=1)

funkcja exitstat Kurs Działania() funkcja globalna przyjmuje również funkcja exitstat argument słowa kluczowego
który określa funkcję, której przekazywany jest kod wyjścia (lub wartość zwracana) z
określona akcja i może zwrócić dowolną lub zmodyfikowaną wartość. Może być używana, dla
na przykład, aby określić, że wartość zwracana obiektu Action powinna zostać zignorowana w ramach specjalnych
warunki i SCons powinny zatem zakładać, że działanie zawsze się powiedzie:

def always_succeed(s):
# Zawsze zwracaj 0, co oznacza sukces.
zwróć 0
a = Akcja("kompilacja < ${SOURCE.file} > ${TARGET.file}",
exitstatfunc=always_succeed)

klucz_partii Kurs klucz_partii argument słowa kluczowego może być użyty do określenia, że ​​akcja może tworzyć
wielu plików docelowych poprzez jednoczesne przetwarzanie wielu niezależnych plików źródłowych. (
kanonicznym przykładem jest „kompilacja wsadowa” wielu plików obiektów poprzez przekazanie wielu
pliki źródłowe do pojedynczego wywołania kompilatora, takiego jak Microsoft Visual C/C++
kompilator.) Jeśli klucz_partii argumentem jest dowolna wartość Pythona inna niż False, której nie można wywołać,
skonfigurowany obiekt akcji spowoduje szyderstwa aby zebrać wszystkie cele zbudowane za pomocą Akcji
obiekt i skonfigurowany przy użyciu tego samego środowiska konstrukcyjnego w pojedyncze wywołania
wiersz poleceń lub funkcja obiektu Action. Wiersze poleceń zazwyczaj będą chciały użyć
ZMIENIONO_ŹRÓDŁA zmienna konstrukcyjna (i ewentualnie CHANGED_TARGETS (również) tylko do przejścia
do wiersza poleceń te źródła, które faktycznie uległy zmianie od czasu, gdy ich cele zostały
wybudowany.

Przykład:

a = Akcja('kompiluj $CHANGED_SOURCES', batch_key=True)

Kurs klucz_partii argument może być również funkcją wywoływalną, która zwraca klucz, który będzie
służy do identyfikacji różnych „partii” plików docelowych, które mają zostać zebrane do zbudowania partii.
klucz_partii funkcja musi przyjmować następujące argumenty:

akcja
Obiekt akcji.

env
Środowisko konstrukcyjne skonfigurowane dla celu.

cel
Lista celów dla określonej skonfigurowanej akcji.

źródło
Lista źródeł dla konkretnej skonfigurowanej akcji.

Zwrócony klucz powinien być zazwyczaj krotką wartości uzyskanych z argumentów,
używając dowolnej odpowiedniej logiki, aby zdecydować, jak wiele wywołań powinno być grupowanych.
przykład, A klucz_partii funkcja może zdecydować się na zwrócenie wartości określonego elementu
zmienna konstrukcyjna z env argument, który spowoduje szyderstwa do kompilacji wsadowej
cele z pasującymi wartościami tej zmiennej lub ewentualnie zwrócić id() z
całe środowisko budowlane, w takim przypadku szyderstwa zbuduje wsadowo wszystkie cele
skonfigurowane przy użyciu tego samego środowiska konstrukcyjnego. Powrót żaden wskazuje, że
konkretny cel powinien nie być częścią dowolnej kompilacji wsadowej, ale zamiast tego zostanie zbudowana
przez oddzielne wywołanie polecenia lub funkcji akcji. Przykład:

def batch_key(akcja, środowisko, cel, źródło):
tdir = cel[0].dir
jeśli tdir.name == 'specjalny':
# Nie kompiluj wsadowo żadnego celu
# w podkatalogu special/.
powrót Brak
zwróć (id(akcja), id(środowisko), tdir)
a = Akcja('kompiluj $CHANGED_SOURCES', klucz_wsadowy=klucz_wsadowy)

Różne Działania Funkcje
szyderstwa dostarcza szereg funkcji, które porządkują różne wspólne pliki i katalogi
manipulacje do wykonania. Są one podobne w koncepcji do „zadań” w kompilacji Ant
narzędzie, chociaż implementacja jest nieco inna. Te funkcje w rzeczywistości nie
wykonać określoną akcję w momencie wywołania funkcji, ale zamiast tego zwrócić
Obiekt akcji, który może zostać wykonany w odpowiednim czasie. (W obiektowym
terminologia, to są w rzeczywistości działania Fabryka funkcje zwracające obiekty Action.)

W praktyce istnieją dwa naturalne sposoby, w jakie te funkcje akcji mają być realizowane
używany.

Po pierwsze, jeśli musisz wykonać akcję w momencie odczytu pliku SConscript,
możesz użyć Wykonać globalna funkcja umożliwiająca to:

Wykonaj(Dotknij('plik'))

Po drugie, możesz użyć tych funkcji, aby dostarczyć Akcje na liście do wykorzystania przez Command
Metoda ta pozwala na wykonywanie bardziej skomplikowanych sekwencji manipulacji plikami
bez polegania na zewnętrznych poleceniach specyficznych dla platformy: że

env = Środowisko(TMPBUILD = '/tmp/builddir')
env.Command('foo.out', 'foo.in',
[Mkdir('$TMPBUILD'),
Kopiuj('$TMPBUILD', '${SOURCE.dir}'),
"cd $TMPBUILD && make",
Usuń('$TMPBUILD')])

Chmod(przeznaczenie, tryb)
Zwraca obiekt akcji, który zmienia uprawnienia dla określonego przeznaczenie plik lub
katalog do określonego tryb. Przykłady:

Wykonaj(Chmod('plik', 0755))

env.Command('foo.out', 'foo.in',
[Kopiuj('$TARGET', '$SOURCE'),
Chmod('$TARGET', 0755)])

Kopia(przeznaczenie, src)
Zwraca obiekt akcji, który skopiuje src plik źródłowy lub katalog do przeznaczenie
plik lub katalog docelowy. Przykłady:

Wykonaj(Kopiuj('foo.output', 'foo.input'))

env.Command('bar.out', 'bar.in',
Kopiuj('$TARGET', '$SOURCE'))

Usuwać(wejście[musi_istnieć])
Zwraca akcję, która usuwa określony wejście, który może być plikiem lub katalogiem
drzewo. Jeśli katalog jest określony, całe drzewo katalogów zostanie usunięte. Jeśli
musi_istnieć flaga jest ustawiona, wówczas zostanie zgłoszony błąd Pythona, jeśli określony wpis nie
nie istnieje; wartość domyślna to musi_istnieć=0, czyli Akcja nie będzie nic robić w milczeniu
jeśli wpis nie istnieje. Przykłady:

Wykonaj(Usuń('/tmp/buildroot'))

env.Command('foo.out', 'foo.in',
[Usuń('${TARGET.dir}'),
MojaAkcjaBudowy])

Wykonaj(Usuń('plik_który_musi_istnieć', musi_istnieć=1))

Mkdir(reż)
Zwraca akcję, która tworzy określony katalog reż . Przykłady:

Wykonaj(Mkdir('/tmp/outputdir'))

env.Command('foo.out', 'foo.in',
[Mkdir('/tmp/builddir'),
Kopiuj('/tmp/builddir/foo.in', '$SOURCE'),
"cd /tmp/builddir && make",
Kopiuj('$TARGET', '/tmp/builddir/foo.out')])

Przenosić(przeznaczenie, src)
Zwraca akcję, która przesuwa określony obiekt src plik lub katalog do określonego przeznaczenie
plik lub katalog. Przykłady:

Wykonaj(Przenieś('file.destination', 'file.source'))

env.Command('plik_wyjściowy', 'plik_wejściowy',
[MojaAkcjaBudowy,
Przenieś('$TARGET', 'plik_utworzony_przez_MyBuildAction')])

Dotykać(filet)
Zwraca akcję, która aktualizuje czas modyfikacji w określonym czasie filet. Przykłady:

Wykonaj(Dotknij('plik_do_dotknięcia'))

env.Command('znacznik', 'plik_wejściowy',
[MojaAkcjaBudowy,
Dotknij('$TARGET')])

Zmienna Podstawienie
Przed wykonaniem polecenia, szyderstwa wykonuje interpolację zmiennej konstrukcyjnej na
ciągi znaków tworzące wiersz poleceń konstruktorów. Zmienne są wprowadzane przez $ prefiks.
Oprócz zmiennych konstrukcyjnych scons zapewnia następujące zmienne dla każdego polecenia
wykonanie:

ZMIENIONO_ŹRÓDŁA
Nazwy plików wszystkich źródeł polecenia kompilacji, które uległy zmianie od czasu utworzenia obiektu docelowego
został zbudowany jako ostatni.

CHANGED_TARGETS
Nazwy plików wszystkich celów, które zostaną zbudowane na podstawie źródeł zmienionych od tego czasu
cel został zbudowany jako ostatni.

ŹRÓDŁO
Nazwa pliku źródłowego polecenia kompilacji lub nazwa pliku pierwszego źródła
jeśli tworzonych jest wiele źródeł.

ŹRÓDŁA
Nazwy plików źródłowych polecenia kompilacji.

TARGET
Nazwa pliku docelowego, który jest budowany, lub nazwa pliku pierwszego docelowego, jeśli
budowanych jest wiele celów.

CELE
Nazwy plików wszystkich tworzonych obiektów docelowych.

NIEZMIENIONE_ŹRÓDŁA
Nazwy plików wszystkich źródeł polecenia kompilacji, które mają nie Zmienione od czasu
cel został zbudowany jako ostatni.

UNCHANGED_TARGETS
Nazwy plików wszystkich celów, które zostaną zbudowane ze źródeł, które mają nie zmieniony
od czasu, gdy cel został ostatnio zbudowany.

(Należy pamiętać, że powyższe zmienne są zarezerwowane i nie można ich ustawiać w konstrukcji
środowisko.)

Na przykład, biorąc pod uwagę zmienną konstrukcyjną CC='cc', targets=['foo'] i
źródła=['foo.c', 'bar.c']:

akcja='$CC -c -o $TARGET $SOURCES'

wygeneruje wiersz poleceń:

cc -c -o foo foo.c bar.c

Nazwy zmiennych mogą być ujęte w nawiasy klamrowe ({}), aby oddzielić nazwę od zmiennej.
znaki końcowe. W nawiasach klamrowych nazwa zmiennej może mieć wycinek Pythona
indeks dolny dodawany w celu wybrania jednego lub więcej elementów z listy. W poprzednim przykładzie
strunowy:

{ŹRÓDŁA[1]}

wytworzy:

bar.c

Dodatkowo do nazwy zmiennej mogą być dołączone następujące specjalne modyfikatory:
załączając nawiasy klamrowe w celu modyfikacji interpolowanego ciągu:

baza
Ścieżka bazowa nazwy pliku, obejmująca ścieżkę katalogu, ale bez sufiksu.

reż
Nazwa katalogu, w którym znajduje się plik.

filet
Nazwa pliku pomniejszona o część katalogu.

baza plików
Tylko nazwa bazowa pliku, bez sufiksu i bez katalogu.

przyrostek
Tylko sufiks pliku.

Abspath
Bezwzględna ścieżka dostępu do pliku.

posix
Forma ścieżki POSIX, w której katalogi są rozdzielone znakiem / (ukośniki) nie
ukośniki. Jest to czasami konieczne w systemach Windows, gdy ścieżka odwołuje się do
plik w innych systemach (POSIX).

ścieżka źródłowa
Katalog i nazwa pliku źródłowego połączonego z tym plikiem za pomocą
WariantDir(). Jeśli ten plik nie jest połączony, zwraca tylko katalog i nazwę pliku
bez zmian.

katalog src
Katalog zawierający plik źródłowy połączony z tym plikiem za pomocą WariantDir(). Jeśli
ten plik nie jest linkowany, zwraca jedynie część nazwy pliku określającą katalog.

ścieżka rsrc
Katalog i nazwa pliku źródłowego połączonego z tym plikiem za pomocą
WariantDir(). Jeśli plik nie istnieje lokalnie, ale istnieje w repozytorium, ścieżka
w Repozytorium jest zwracany. Jeśli ten plik nie jest połączony, zwraca tylko
katalog i nazwa pliku niezmienione.

rsrcdir
Katalog repozytorium zawierający plik źródłowy połączony z tym plikiem za pomocą
WariantDir(). Jeśli ten plik nie jest połączony, zwraca tylko część katalogu
Nazwa pliku.

Na przykład określony cel zostanie rozszerzony w następujący sposób dla odpowiednich modyfikatorów:

$TARGET => sub/dir/file.x
${TARGET.base} => podkatalog/plik
${TARGET.dir} => podkatalog
${TARGET.file} => plik.x
${TARGET.filebase} => plik
${TARGET.suffix} => .x
${TARGET.abspath} => /top/dir/sub/dir/file.x

SConscript('src/SConscript', variant_dir='sub/dir')
$SOURCE => sub/dir/file.x
${SOURCE.srcpath} => src/file.x
${SOURCE.srcdir} => źródło

Repozytorium('/usr/repository')
$SOURCE => sub/dir/file.x
${SOURCE.rsrcpath} => /usr/repository/src/file.x
${ŹRÓDŁO.rsrcdir} => /usr/repository/src

Należy pamiętać, że nawiasy klamrowe można również stosować do ujmowania dowolnego kodu Pythona.
oceniane. (W rzeczywistości powyższe modyfikatory są podstawiane w ten sposób, są one po prostu
atrybuty obiektów Pythona, które reprezentują DOCEL, ŹRÓDŁA itd.) Zobacz sekcję
Dokładniejsze przykłady tego, jak można to wykorzystać, znajdziesz poniżej w sekcji „Podmiana kodu w Pythonie”.

Na koniec nazwa zmiennej może być wywoływalną funkcją Pythona powiązaną z konstrukcją
zmienna w środowisku. Funkcja powinna przyjmować cztery argumenty: cel - lista
węzły docelowe, źródło - lista węzłów źródłowych, env - środowisko budowlane,
dla_podpisu - wartość logiczna określająca, czy funkcja jest wywoływana
generowanie podpisu kompilacji. SCons wstawi wszystko, co wywołana funkcja zwróci do
rozwinięty ciąg:

def foo(cel, źródło, środowisko, dla_podpisu):
zwróć "bar"

# Rozszerzy $BAR do „bar baz”
env=Środowisko(FOO=foo, BAR="$FOO baz")

Za pomocą tej funkcji można przekazywać argumenty do funkcji języka Python, tworząc funkcję wywoływalną
klasa, która przechowuje jeden lub więcej argumentów w obiekcie, a następnie używa ich, gdy
__dzwonić__() wywoływana jest metoda. Należy zauważyć, że w tym przypadku cała ekspansja zmiennej musi być
ujęte w nawiasy klamrowe, tak aby argumenty były skojarzone z instancją
klasy:

klasa foo(obiekt):
def __init__(self, arg):
sam.arg = arg

def __call__(self, target, source, env, for_signature):
zwróć self.arg + "bar"

# Rozszerzy $BAR do „mój argument bar baz”
env=Środowisko(FOO=foo, BAR="${FOO('mój argument')} baz")

Specjalne pseudozmienne $( i $) można używać do otaczania części wiersza poleceń
to może się zmienić bez powodujące odbudowę – czyli takie, które nie są uwzględnione w
podpis plików docelowych zbudowanych za pomocą tego polecenia. Cały tekst pomiędzy $( i $) będzie
usunięte z wiersza poleceń przed dodaniem do podpisów plików i $( i $)
zostanie usunięty przed wykonaniem polecenia. Na przykład wiersz poleceń:

echo Ostatnia kompilacja miała miejsce $( $TODAY $). > $TARGET

wykonałby polecenie:

echo Ostatnia kompilacja miała miejsce $TODAY. > $TARGET

ale podpis polecenia dodany do dowolnych plików docelowych będzie wyglądał następująco:

echo Ostatnia kompilacja miała miejsce. > $TARGET

Python Code Podstawienie
Jakikolwiek kod Pythona w ${-} pary są oceniane przez python 'eval' z globalnymi zmiennymi python
ustaw na bieżący zestaw zmiennych konstrukcyjnych środowiska. Tak więc w następującym przypadku:

środowisko['WARUNEK'] = 0
env.Command('foo.out', 'foo.in',
'''echo ${COND==1 i 'FOO' lub 'BAR'} > $TARGET''')

wykonane polecenie będzie albo

echo FOO > foo.out

or

echo BAR > foo.out

zgodnie z bieżącą wartością env['COND'] w momencie wykonania polecenia. Ocena
występuje, gdy cel jest budowany, a nie gdy SConscript jest odczytywany. Więc jeśli
env['COND'] zostanie zmienione później w SConscript, zostanie użyta wartość końcowa.

Oto bardziej interesujący przykład. Zauważ, że wszystkie COND, FOO i BAR są środowiskowe
zmienne, a ich wartości są podstawiane do ostatniego polecenia. FOO jest listą, więc jego
elementy są interpolowane i oddzielane spacjami.

env=Środowisko()
środowisko['WARUNEK'] = 0
środowisko['FOO'] = ['foo1', 'foo2']
środ['BAR'] = 'barbar'
env.Command('foo.out', 'foo.in',
'echo ${COND==1 i FOO lub BAR} > $TARGET')

# Wykona to:
# echo foo1 foo2 > foo.out

Podczas konwersji zmiennych konstrukcyjnych do wierszy poleceń SCons korzysta z następujących reguł:

sznur
Gdy wartość jest ciągiem znaków, jest ona interpretowana jako lista wiersza poleceń oddzielona spacją
argumenty.

Lista
Gdy wartość jest listą, jest ona interpretowana jako lista argumentów wiersza poleceń. Każdy
element listy jest konwertowany na ciąg znaków.

Inne
Wszystko, co nie jest listą lub ciągiem znaków, jest konwertowane na ciąg znaków i interpretowane jako
pojedynczy argument wiersza poleceń.

Nowa linia
Znaki nowej linii (\n) oddzielają linie. Analiza nowej linii jest wykonywana po wszystkich innych
parsowania, więc nie jest możliwe, aby argumenty (np. nazwy plików) zawierały osadzone
znaki nowej linii. To ograniczenie prawdopodobnie zniknie w przyszłej wersji SCons.

Scanner Obiekty
Możesz użyć Scanner funkcja do definiowania obiektów do skanowania nowych typów plików w poszukiwaniu niejawnych
zależności. The Scanner funkcja akceptuje następujące argumenty:

funkcjonować
Może to być: 1) funkcja Pythona, która przetworzy węzeł (plik) i zwróci
lista węzłów plików reprezentujących niejawne zależności (nazwy plików) znalezione w
zawartość; lub: 2) słownik, który mapuje klucze (zwykle sufiks pliku, ale zobacz poniżej)
(w celu dalszej dyskusji) do innych skanerów, które powinny zostać wezwane.

Jeśli argument jest w rzeczywistości funkcją Pythona, funkcja musi przyjąć trzy lub cztery
argumenty:

def scanner_function(węzeł, środowisko, ścieżka):

def scanner_function(węzeł, środowisko, ścieżka, arg=None):

Kurs węzeł argument jest wewnętrznym węzłem SCons reprezentującym plik. Użyj str(węzeł) do
pobierz nazwę pliku i węzeł.get_contents() aby pobrać zawartość pliku.
Należy pamiętać, że plik jest nie gwarantowane jest, że istnieje przed wywołaniem skanera, więc
funkcja skanera powinna sprawdzić, czy istnieje jakiekolwiek prawdopodobieństwo, że zeskanowany plik może
nie istnieje (na przykład, jeśli został zbudowany z innych plików).

Kurs env argument jest środowiskiem konstrukcyjnym dla skanowania. Pobierz z niego wartości
używając env.Dictionary() Metoda.

Kurs ścieżka argumentem jest krotka (lub lista) katalogów, w których można przeszukiwać pliki.
Zwykle będzie to krotka zwrócona przez funkcja_ścieżki argument (patrz poniżej).

Kurs arg argument jest argumentem podanym podczas tworzenia skanera, jeśli taki istniał.

Nazwa
Nazwa skanera. Służy głównie do wewnętrznej identyfikacji skanera.

argument
Opcjonalny argument, który jeśli zostanie określony, zostanie przekazany do funkcji skanera
(opisano powyżej) i funkcję ścieżki (określoną poniżej).

niebo
Opcjonalna lista, która może być używana do określania, który skaner powinien być używany w danym przypadku.
podany węzeł. W zwykłym przypadku skanowania nazw plików, ten argument będzie listą
sufiksów dla różnych typów plików, które ten skaner potrafi skanować. Jeśli
argument jest ciągiem znaków, zostanie on rozwinięty do listy zgodnie z bieżącym środowiskiem.

funkcja_ścieżki
Funkcja języka Python przyjmująca cztery lub pięć argumentów: środowisko konstrukcyjne,
Węzeł dla katalogu zawierającego plik SConscript, w którym znajdował się pierwszy cel
zdefiniowano, listę węzłów docelowych, listę węzłów źródłowych i opcjonalny argument
dostarczone podczas tworzenia skanera. funkcja_ścieżki zwraca krotkę
katalogi, w których można przeszukiwać pliki zwracane przez ten obiekt Scanner.
(Zauważ, że FindPathDirsFunkcji () można użyć do zwrócenia gotowego obiektu
funkcja_ścieżki dla danej nazwy zmiennej konstrukcyjnej, zamiast konieczności pisania swojej
(własna funkcja od podstaw.)

klasa_węzła
Klasa Node, która powinna zostać zwrócona przez ten obiekt Scanner. Wszelkie ciągi znaków lub inne
obiekty zwrócone przez funkcję skanera, które nie należą do tej klasy, zostaną uruchomione
przez fabryka_węzłów funkcja.

fabryka_węzłów
Funkcja języka Python, która przyjmuje ciąg znaków lub inny obiekt i zamienia go na
odpowiednia klasa węzła, która ma zostać zwrócona przez ten obiekt skanera.

skanowanie_sprawdzanie
Opcjonalna funkcja języka Python przyjmująca dwa argumenty: węzeł (plik) i konstrukcję
środowisko i zwraca informację, czy węzeł powinien zostać faktycznie przeskanowany pod kątem
zależności. To sprawdzenie może być użyte do wyeliminowania niepotrzebnych wywołań skanera
funkcja, gdy na przykład plik bazowy reprezentowany przez węzeł nie jest jeszcze
istnieć.

rekurencyjne
Opcjonalna flaga określająca, czy ten skaner powinien zostać ponownie wywołany
pliki zależności zwrócone przez skaner. Gdy ta flaga nie jest ustawiona, Node
podsystem wywoła skaner tylko dla skanowanego pliku, a nie (np.
(np.) również w plikach określonych w wierszach #include w skanowanym pliku.
rekurencyjne może być funkcją wywoływalną, w takim przypadku zostanie wywołana z listą
Znaleziono węzły i należy zwrócić listę węzłów, które należy przeskanować rekurencyjnie; to
można użyć do wybrania konkretnego podzbioru węzłów w celu przeprowadzenia dodatkowego skanowania.

Należy pamiętać, że szyderstwa ma globalny Skaner plików źródłowych obiekt, który jest używany przez przedmiot()
Obiekt udostępniony(), oraz Obiekt statyczny() konstruktorzy decydują, który skaner powinien być używany
różne rozszerzenia plików. Możesz użyć SourceFileScanner.add_scanner() metoda dodawania
własny obiekt skanera do szyderstwa infrastruktura, która buduje programy docelowe lub
biblioteki z listy plików źródłowych różnych typów:

def xyz_scan(węzeł, środowisko, ścieżka):
zawartość = node.get_text_contents()
# Przeskanuj zawartość i zwróć dołączone pliki.

XYZScanner = Skaner(xyz_scan)

SourceFileScanner.add_scanner('.xyz', XYZScanner)

env.Program('my_prog', ['file1.c', 'file2.f', 'file3.xyz'])

SPECYFICZNE DLA SYSTEMU ZACHOWANIE


SCons i jego pliki konfiguracyjne są bardzo przenośne, głównie dzięki implementacji w
Python. Istnieje jednak kilka problemów z przenośnością, które czekają, aby złapać nieostrożnych.

.C filet przyrostek
SCons obsługuje wielkie litery .C sufiks pliku może być różny w zależności od możliwości
system bazowy. W systemach rozróżniających wielkość liter, takich jak Linux lub UNIX, SCons traktuje
plik z rozszerzeniem .C sufiks jako plik źródłowy C++. W systemie bez uwzględniania wielkości liter, takim jak Windows,
SCons traktuje plik jako .C sufiks jako plik źródłowy C.

.F filet przyrostek
SCons obsługuje wielkie litery .F sufiks pliku może być różny w zależności od możliwości
system bazowy. W systemach rozróżniających wielkość liter, takich jak Linux lub UNIX, SCons traktuje
plik z rozszerzeniem .F sufiks jako plik źródłowy Fortran, który ma zostać najpierw uruchomiony przez
standardowy preprocesor C. W systemach niewrażliwych na wielkość liter, takich jak Windows, SCons traktuje plik
z .F sufiks jako plik źródłowy Fortran, który powinien nie być uruchomionym przez C
preprocesor.

Windows: Cygwin Tools i Cygwin Python vs Windows Pytony
Cygwin dostarcza zestaw narzędzi i programów użytkowych, które umożliwiają użytkownikom pracę w systemie Windows przy użyciu
bardziej POSIX-podobne środowisko. Narzędzia Cygwin, w tym Cygwin Python, robią to w
część, poprzez dzielenie się możliwością interpretowania nazw ścieżek UNIX-owych. Na przykład Cygwin
narzędzia wewnętrznie przetłumaczą nazwę ścieżki Cygwin, np. /cygdrive/c/mydir, na odpowiednik
Ścieżka dostępu systemu Windows do C:/mydir (odpowiednik C:\mydir).

Wersje języka Python przeznaczone do natywnego wykonywania w systemie Windows, takie jak python.org i
Wersje ActiveState nie mają semantyki nazw ścieżek Cygwin. Oznacza to, że użycie
natywna wersja Pythona dla systemu Windows do tworzenia skompilowanych programów przy użyciu narzędzi Cygwin (takich jak
gcc, bison i flex) mogą dać nieprzewidywalne rezultaty. „Mieszanie i dopasowywanie” w ten sposób
można to zrobić, ale wymaga to szczególnej uwagi przy używaniu nazw ścieżek w
Pliki SConscript.

W praktyce użytkownicy mogą obejść ten problem, stosując się do następujących zasad: Podczas korzystania z gcc,
użyj interpretera języka Python dostarczonego przez Cygwin do uruchomienia SCons; podczas korzystania z Microsoft Visual C/C++
(lub innego kompilatora Windows) użyj wersji Pythona python.org lub ActiveState, aby
uruchom SCons.

Windows: scons.bat filet
W systemach Windows SCons jest wykonywany za pośrednictwem opakowania scons.bat plik. To ma (przynajmniej)
dwa konsekwencje:

Po pierwsze, użytkownicy wiersza poleceń systemu Windows, którzy chcą używać przypisania zmiennej w wierszu poleceń
może trzeba będzie umieścić zadania w cudzysłowie:

scons "FOO=BAR" "BAZ=BLEH"

Po drugie, powłoka Cygwin nie rozpoznaje tego pliku jako takiego samego jak szyderstwa
polecenie wydane w wierszu poleceń. Możesz to obejść, wykonując
scons.bat z wiersza poleceń Cygwin lub tworząc skrypt powłoki o nazwie szyderstwa
.

MinGW
Katalog bin MinGW musi znajdować się w zmiennej środowiskowej PATH lub zmiennej PATH
pod zmienną konstrukcji ENV dla SCons do wykrywania i używania narzędzi MinGW. Kiedy
działając pod natywnym interpreterem języka Python systemu Windows, SCons będzie preferować narzędzia MinGW
nad narzędziami Cygwin, jeśli oba są zainstalowane, niezależnie od kolejności w koszu
katalogi w zmiennej PATH. Jeśli masz zainstalowane MSVC i MinGW i chcesz
aby użyć MinGW zamiast MSVC, należy wyraźnie powiedzieć SCons, aby użył MinGW, przekazując

narzędzia=['mingw']

do funkcji Environment(), ponieważ SCons będzie preferował narzędzia MSVC zamiast MinGW
narzędzia.

PRZYKŁADY


Aby ułatwić Ci rozpoczęcie korzystania z SCons, w tej sekcji znajdziesz krótki przegląd niektórych typowych
zadania.

Basic Kompilacja Cena Od a Jedna Źródło filet
env = Środowisko()
env.Program(cel = 'foo', źródło = 'foo.c')

Uwaga: Zbuduj plik, określając cel jako argument („scons foo” lub „scons
foo.exe"). lub przez podanie kropki ("scons .").

Basic Kompilacja Cena Od Wielokrotność Źródło Akta
env = Środowisko()
env.Program(cel = 'foo', źródło = Split('f1.c f2.c f3.c'))

Oprawa a Kompilacja Flaga
env = Środowisko(CCFLAGS = „-g”)
env.Program(cel = 'foo', źródło = 'foo.c')

Szukaj Kurs miejscowy Informator W razie zamówieenia projektu .h Akta
Uwaga: Tak, tak. nie należy ustawić CCFLAGS, aby określić opcje -I ręcznie. SCons skonstruuje
prawa opcja -I z CPPPATH.

env = Środowisko(CPPPATH = ['.'])
env.Program(cel = 'foo', źródło = 'foo.c')

Szukaj Wielokrotność Katalogi W razie zamówieenia projektu .h Akta
env = Środowisko(CPPPATH = ['include1', 'include2'])
env.Program(cel = 'foo', źródło = 'foo.c')

Budowanie a Statyczny Biblioteka
env = Środowisko()
env.StaticLibrary(cel = 'foo', źródło = Split('l1.c l2.c'))
env.StaticLibrary(cel = 'bar', źródło = ['l3.c', 'l4.c'])

Budowanie a wspólne Biblioteka
env = Środowisko()
env.SharedLibrary(cel = 'foo', źródło = ['l5.c', 'l6.c'])
env.SharedLibrary(cel = 'bar', źródło = Split('l7.c l8.c'))

Łączenie a miejscowy Biblioteka W a Program
env = Środowisko(LIBS = 'mylib', LIBPATH = ['.'])
env.Library(cel = 'mylib', źródło = Split('l1.c l2.c'))
env.Program(cel = 'prog', źródło = ['p1.c', 'p2.c'])

Definiowanie Twój Własny Budowniczy przedmiot
Zwróć uwagę, że podczas wywoływania programu Builder możesz pominąć sufiks pliku docelowego i
SCons doda je automatycznie.

bld = Builder(akcja = 'pdftex < $SOURCES > $TARGET'
przyrostek = '.pdf',
src_suffix = '.tex')
env = Środowisko(BUILDERS = {'PDFBuilder' : bld})
env.PDFBuilder(cel = 'foo.pdf', źródło = 'foo.tex')

# Poniższe polecenie tworzy „bar.pdf” z „bar.tex”
env.PDFBuilder(cel = 'bar', źródło = 'bar')

Należy również pamiętać, że powyższa inicjalizacja nadpisuje domyślne obiekty Builder, więc
Środowiska utworzonego powyżej nie można używać do wywołań Builderów, takich jak env.Program(), env.Object(),
env.StaticLibrary() itd.

Dodawanie Twój Własny Budowniczy przedmiot do an Środowisko
bld = Builder(akcja = 'pdftex < $SOURCES > $TARGET'
przyrostek = '.pdf',
src_suffix = '.tex')
env = Środowisko()
env.Append(BUILDERS = {'PDFBuilder' : bld})
env.PDFBuilder(cel = 'foo.pdf', źródło = 'foo.tex')
env.Program(target = 'bar', source = 'bar.c')

Można również użyć innych technik języka Python, aby dodać do zmiennej konstrukcyjnej BUILDERS,
takich jak:

env = Środowisko()
env['BUILDERS]['PDFBuilder'] = bld

Definiowanie Twój Własny Scanner przedmiot
Poniższy przykład pokazuje niezwykle prosty skaner ( skanowanie pliku() funkcja) która
nie używa w ogóle ścieżki wyszukiwania i po prostu zwraca nazwy plików znajdujące się w dowolnym miejscu zawierać
wierszy w skanowanym pliku. To oznaczałoby domniemanie, że wszystkie dołączone pliki znajdują się w
katalog najwyższego poziomu:

importuj ponownie

include_re = re.kompiluj(r'^include\s+(\S+)$', re.M)

def kfile_scan(węzeł, środowisko, ścieżka, argument):
zawartość = node.get_text_contents()
zawiera = include_re.findall(zawartość)
zwróć env.File(zawiera)

kscan = Skaner(nazwa = 'kfile',
funkcja = kfile_scan,
argument = Brak,
skeys = ['.k'])
skanery = Środowisko().Słownik('SKANERY')
env = Środowisko(SKANERY = skanery + [kscan])

env.Command('foo', 'foo.k', 'kprocess < $SOURCES > $TARGET')

bar_in = Plik('bar.in')
env.Command('bar', bar_in, 'kprocess $SOURCES > $TARGET')
bar_in.target_scanner = kscan

Ważne jest, aby pamiętać, że musisz zwrócić listę węzłów plików ze skanowania
funkcja, proste ciągi dla nazw plików nie wystarczą. Jak w przykładach, które pokazujemy
tutaj możesz użyć Plik() funkcja Twojego bieżącego środowiska w celu tworzenia węzłów
„w locie” z sekwencji nazw plików ze ścieżkami względnymi.

Oto podobny, ale bardziej kompletny przykład, który przeszukuje ścieżkę katalogów (określonych)
jak MOJAŚCIEŻKA zmienna konstrukcyjna) dla plików, które faktycznie istnieją:

importuj ponownie
zaimportować cię
include_re = re.kompiluj(r'^include\s+(\S+)$', re.M)

def mój_skan(węzeł, środowisko, ścieżka, argument):
zawartość = node.get_text_contents()
zawiera = include_re.findall(zawartość)
jeśli zawiera == []:
powrót []
wyniki = []
dla inc w obejmuje:
dla katalogu w ścieżce:
plik = str(dir) + os.sep + inc
jeśli os.path.exists(plik):
wyniki.append(plik)
złamać
zwróć env.File(wyniki)

skaner = Skaner(nazwa = 'mójskaner',
funkcja = mój_skan,
argument = Brak,
skeys = ['.x'],
path_function = FindPathDirs('MYPATH')
)
skanery = Środowisko().Słownik('SKANERY')
env = Environment(SKANERY = skanery + [skaner],
MOJAŚCIEŻKA = ['incs'])

env.Command('foo', 'foo.x', 'xprocess < $SOURCES > $TARGET')

Kurs FindPathDirsFunkcja () użyta w poprzednim przykładzie zwraca funkcję (właściwie
obiekt Pythona, który można wywołać, a który zwróci listę katalogów określonych w $MOJAŚCIEŻKA
zmienna konstrukcyjna. Pozwala SCons wykryć plik incs/foo.inc , nawet jeśli foo.x zawiera
linia zawierać foo.inc tylko. Jeśli chcesz dostosować sposób, w jaki ścieżka wyszukiwania jest wyprowadzana,
dostarczyłbyś swój własny funkcja_ścieżki argument podczas tworzenia obiektu skanera, jako
następuje:

# MYPATH to lista katalogów, w których należy wyszukiwać pliki
def pf(środowisko, katalog, cel, źródło, arg):
top_dir = Dir('#').abspath
wyniki = []
jeśli 'MYPATH' w env:
dla p w env['MYPATH']:
wyniki.append(top_dir + os.sep + p)
zwróć wyniki

skaner = Skaner(nazwa = 'mójskaner',
funkcja = mój_skan,
argument = Brak,
skeys = ['.x'],
funkcja_ścieżki = pf
)

Tworzenie a Hierarchiczny Buduj
Należy pamiętać, że nazwy plików określone w pliku SConscript podkatalogu są względne w stosunku do
tego podkatalogu.

SKonstrukcja:

env = Środowisko()
env.Program(cel = 'foo', źródło = 'foo.c')

SConscript('sub/SConscript')

subskrypcja/SConscript:

env = Środowisko()
# Buduje sub/foo z sub/foo.c
env.Program(cel = 'foo', źródło = 'foo.c')

SConscript('katalog/SConscript')

podkatalog/SConscript:

env = Środowisko()
# Buduje sub/dir/foo z sub/dir/foo.c
env.Program(cel = 'foo', źródło = 'foo.c')

Udostępnianie Zmienne Między S Poborowy Akta
Musisz jawnie określić zmienne Export() i Import(), które chcesz udostępniać między
Pliki SConscript.

SKonstrukcja:

env = Środowisko()
env.Program(cel = 'foo', źródło = 'foo.c')

Eksportuj("środowisko")
SConscript('podkatalog/SConscript')

podkatalog/SConscript:

Importuj("środowisko")
env.Program(cel = 'foo', źródło = 'foo.c')

Budowanie Wielokrotność Warianty Cena Od dotychczasowy Podobnie Źródło
Użyj argumentu słowa kluczowego variant_dir w funkcji SConscript, aby ustalić jeden lub więcej
oddzielne drzewa katalogów kompilacji wariantów dla danego katalogu źródłowego:

SKonstrukcja:

cppdefines = ['FOO']
Eksportuj("cppdefines")
SConscript('src/SConscript', variant_dir='foo')

cppdefines = ['BAR']
Eksportuj("cppdefines")
SConscript('src/SConscript', variant_dir='bar')

źródło/SConscript:

Importuj("cppdefines")
env = Środowisko(CPPDEFINES = cppdefines)
env.Program(cel = 'src', źródło = 'src.c')

Należy zwrócić uwagę na użycie metody Export() w celu ustawienia zmiennej „cppdefines” na inną wartość
za każdym razem, gdy wywołujemy funkcję SConscript.

Hierarchiczny Buduj of dwa biblioteki Powiązany Wraz z a Program
SKonstrukcja:

env = Środowisko(LIBPATH = ['#libA', '#libB'])
Eksportuj('env')
SConscript('libA/SConscript')
SConscript('libB/SConscript')
SConscript('Główny/SConscript')

libA/SConscript:

Importuj('środowisko')
env.Library('a', Split('a1.c a2.c a3.c'))

libB/SConscript:

Importuj('środowisko')
env.Library('b', Split('b1.c b2.c b3.c'))

Główny/SConscript:

Importuj('środowisko')
e = env.Copy(LIBS = ['a', 'b'])
e.Program('foo', Split('m1.c m2.c m3.c'))

Znak „#” w katalogach LIBPATH określa, że ​​są one względne w stosunku do najwyższego poziomu
katalogu, aby nie zamieniły się w „Main/libA”, gdy zostaną użyte w Main/SConscript.

Określenie tylko „a” i „b” jako nazw bibliotek umożliwia programowi SCons dołączenie odpowiednich
prefiks i sufiks biblioteki dla bieżącej platformy (na przykład „liba.a” w POSIX)
systemach, „a.lib” w systemie Windows).

Dostosowywanie Budowa zmienne od dotychczasowy komenda Linia.
Poniższe polecenie umożliwi określenie kompilatora C w wierszu poleceń lub w
plik custom.py.

vars = Zmienne('custom.py')
vars.Add('CC', 'Kompilator C.')
env = Środowisko(zmienne=zmienne)
Pomoc(vars.GenerateHelpText(env))

Użytkownik może określić kompilator C w wierszu poleceń:

scons "CC=my_cc"

lub w pliku custom.py:

CC = 'my_cc'

lub uzyskaj dokumentację dotyczącą opcji:

$ scons -h

CC: Kompilator C.
Domyślnie: Brak
aktualny: cc

Korzystanie z Microsoft Wizualny C + + prekompilowany headers
Ponieważ windows.h zawiera wszystko, łącznie z zlewem kuchennym, może to zająć trochę czasu
kompilować go wielokrotnie dla wielu plików obiektowych, dlatego Microsoft udostępnia
mechanizm umożliwiający jednokrotne skompilowanie zestawu nagłówków, a następnie dołączenie wcześniej skompilowanych
nagłówki w dowolnym pliku obiektu. Technologia ta nazywana jest nagłówkami prekompilowanymi. Ogólne
przepis polega na utworzeniu pliku o nazwie „StdAfx.cpp”, który zawiera pojedynczy nagłówek o nazwie
„StdAfx.h”, a następnie uwzględnij każdy nagłówek, który chcesz skompilować wstępnie w „StdAfx.h” i
na koniec uwzględnij „StdAfx.h” jako pierwszy nagłówek we wszystkich plikach źródłowych, które kompilujesz
do plików obiektów. Na przykład:

StdAfx.h:

#włączać
#włączać

StdAfx.cpp:

#włączać

Foo.cpp:

#włączać

/* zrób coś */

Pasek.cpp:

#włączać

/* zrób coś innego */

SKonstrukcja:

env=Środowisko()
env['PCHSTOP'] = 'StdAfx.h'
env['PCH'] = env.PCH('StdAfx.cpp')[0]
env.Program('MojaAplikacja', ['Foo.cpp', 'Bar.cpp'])

Więcej informacji znajdziesz w dokumencie dotyczącym programu PCH builder oraz PCH i PCHSTOP
zmienne konstrukcyjne. Aby dowiedzieć się więcej o szczegółach wstępnie skompilowanych nagłówków, zapoznaj się z MSDN
dokumentacja dla /Yc, /Yu i /Yp.

Korzystanie z Microsoft Wizualny C + + zewnętrzny debugowania Informacja
Ponieważ uwzględnienie informacji o debugowaniu w programach i bibliotekach współdzielonych może powodować ich
rozmiar znacznie wzrośnie, firma Microsoft udostępnia mechanizm umożliwiający włączenie debugowania
informacji w pliku zewnętrznym zwanym plikiem PDB. SCons obsługuje pliki PDB poprzez
Zmienna konstrukcyjna PDB.

SKonstrukcja:

env=Środowisko()
env['PDB'] = 'MojaAplikacja.pdb'
env.Program('MojaAplikacja', ['Foo.cpp', 'Bar.cpp'])

Więcej informacji można znaleźć w dokumencie dotyczącym zmiennej konstrukcyjnej PDB.

ŚRODOWISKO


SCONS_LIB_DIR
Określa katalog zawierający katalog modułów SCons Pythona (np
/home/aroach/scons-src-0.01/src/engine).

SKONFLAGI
Ciąg opcji, które będą używane przez scons oprócz tych przekazanych dalej
wiersz poleceń.

Użyj scons online korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad