Chcę uruchomić polecenie w SCons, który nie ma żadnych plików wejściowych/wyjściowych (faktycznie dane wejściowe i wyjściowe są tego samego pliku). W tej chwili jestem po prostu ręcznie uruchomiony z podprocesu.Popen, ale czy istnieje więcej sposób SCONSy to zrobić?Uruchom polecenie w SCons bez zależności
8
A
Odpowiedz
13
Możesz użyć funkcji Command, aby uruchomić dowolne polecenie zewnętrzne uruchamiane przez Popen, i możesz użyć funkcji AlwaysBuild, aby upewnić się, że polecenie jest zawsze uruchamiane, nawet jeśli plik docelowy istnieje. Scons nie lubi cykli zależności, więc pozostaw listę źródłową pustą.
myfile = env.Command('myfile.out', [], 'echo Hello world > $TARGETS')
env.AlwaysBuild(myfile)
Wiki scons ma również przepis na PhonyTargets co sprawia, że łatwo skonfigurować wiele prostych poleceń.
Powiązane problemy
- 1. SCONS: Cykle zależności?
- 2. EF6 - Uruchom polecenie aktualizacji bazy danych bez nasion
- 3. Uruchom polecenie PowerShell z wiersza polecenia (bez skryptu ps1)
- 4. Uruchom polecenie reg w cmd (plik bat)?
- 5. Uruchom polecenie bash w CocoaPod post_install krok
- 6. Konfigurowanie SCons na Autolint
- 7. uruchom kod w zależności od pory dnia
- 8. jak powiązać polecenie z "Uruchom ponownie i uruchom wszystko"?
- 9. VIM, Uruchom polecenie na wielu plikach
- 10. Uruchom polecenie powłoki, gdy plik zostanie dodany
- 11. Uruchom polecenie powłoki UEFI z aplikacji UEFI
- 12. Uruchom polecenie Exchange Powershell z C#
- 13. Uruchom polecenie po zatrzymaniu skryptu Bash
- 14. unix - uruchom polecenie jako inny użytkownik
- 15. Uruchom polecenie vim z linii poleceń
- 16. Ubuntu - Uruchom polecenie na rozruchu z „sudo”
- 17. SBT: Uruchom polecenie "uruchom" z głównej klasy projektu innego niż domyślny
- 18. Gulp: uruchom zadanie bez przeznaczenia
- 19. uruchom xterm -e bez kończenia
- 20. Ponownie uruchom nginx bez sudo?
- 21. Uruchom program elisp bez Emacsa?
- 22. Jak: Uruchom polecenie w języku C#, uzyskać wyniki STD OUT
- 23. skrypt wsadowy - uruchom polecenie dla każdego pliku w katalogu
- 24. Uruchom polecenie powłoki ze zmiennej w skrypcie powłoki
- 25. Uruchom polecenie w Docker Container tylko przy pierwszym uruchomieniu
- 26. Uruchom Raspberry Pi bez logowania
- 27. Jak uruchomić polecenie bez sudo?
- 28. SCONS: Jak wywołać samookreśloną funkcję Pythona w skrypcie scons i wykonać prawidłą zależność
- 29. Polecenie popen C++ bez konsoli
- 30. scons dziedziczenie środowiska budowlanego
Jeśli istnieje już reguła do budowania "myfile.out", to narzeka, że istnieje wiele sposobów na zbudowanie celu. Chcę mieć jedną regułę do utworzenia pliku, a drugą do modyfikacji. –
Myślę, że posiadanie dwóch reguł dla jednego celu jest złym pomysłem. W jaki sposób scons wie, czy reguła "modyfikuj" została wywołana, jeśli cel istnieje? Będzie działać lepiej, jeśli masz dwa cele, po jednym dla każdej reguły. Lub miej jedną regułę, która wykonuje zarówno akcje "twórz", jak i "modyfikuj". –
Należy zwrócić uwagę na dokumenty scons, w których podano "AlwaysBuild" to nazwa wprowadzająca w błąd. Przed wydaniem komendy nadal istnieje kilka reguł scons. –