2016-06-20 5 views
1

Я хочу скопировать файл (prebuild) из исходной папки в папку назначения (variant_dir).Скопируйте файл предварительной сборки для создания папки (SCons)

Это приводит к циклу зависимостей:

Command('main.elf', 'main.elf', Copy("$TARGET", "$SOURCE")) 

Как я мог бы указать, что файл для копирования находится в исходной папке (папка проекта) и цель находится в папке сборки без использования постоянных значений (в SConscript)?

Как обходного я переименовал файл:

Command('main.elf', 'main.orig', Copy("$TARGET", "$SOURCE")) 
+0

Вы используете duplicate = 0 с вариантом dir? – bdbaddog

+0

yes, duplicate = False – Knut

+0

Вы попробовали мой ответ ниже? – bdbaddog

ответ

0

Это должно быть правильный синтаксис для того, что вы хотите сделать:

Command('main.elf', 'main.elf', Copy("$TARGET", "${SOURCE.srcpath}")) 

См: http://scons.org/doc/production/HTML/scons-man.html и поиск srcpath, чтобы увидеть раздел на замена.

Это то, что вы действительно просите, это дубликат = частичный. Я не уверен, что это сработает.

Можете ли вы указать файл elf с полным путем в командной строке на свой инструмент?

Command('main.elf', 'main.elf',"my_tool $TARGET ${SOURCE.srcpath}") 

Или эквивалентно?

+0

a) 'srcpath', кажется, не имеет никакого эффекта: scons: *** Найденный цикл (и) зависимостей: variant_dir/main.elf -> variant_dir/main.elf. б) Я не нашел ничего о _partial_ режиме в документах (только 0 и 1 для 'duplicate'). c) Я не хочу использовать полный путь для всех последующих инструментов. – Knut

+0

Чтобы быть ясным, когда я сказал, что вы запрашиваете дубликат = partial, я не имел в виду, что он существует, но это была функциональность, которую вы хотели. – bdbaddog

Смежные вопросы