2012-06-13 9 views

Odpowiedz

8

Lepszym rozwiązaniem byłoby wykorzystanie cel i() Builder polecenia, na przykład:

prgTarget = env.Program("program_name", [ "file1.cc", "file2.cc" ]) 
Command(target = "../program_name", 
     source = prgTarget, 
     action = Copy("$TARGET", "$SOURCE")) 

lub w zależności od sytuacji, należy użyć Install() builder, tak:

prgTarget = env.Program("program_name", [ "file1.cc", "file2.cc" ]) 
Install("../program_name", source = prgTarget) 
+0

+ 1 To brzmi jak dobra robota dla konstruktora instalacji. Korzystanie z programu budującego polecenia brzmi jak komplikowanie kodu. Czy znasz sytuacje, w których kompilacja polecenia miałaby jakieś zalety? – daramarak

+0

@daramarak, konstruktor Command() jest bardziej elastyczny, ponieważ może to być dowolne polecenie, takie jak skrypty itp. Konstruktor Install() służy tylko do "instalowania" (kopiowania) jednego lub kilku plików/celów. – Brady

+0

Wiem, że program budujący polecenia jest elastyczny, ale zastanawiałem się, czy istnieją przypadki, w których powinien być preferowany program budujący polecenia do kopiowania pliku zamiast instalatora instalacji? – daramarak