#scons
#scons
Вопрос:
Я могу использовать File('foo.bar').abspath
для получения местоположения файла, но если у меня установлен variant_dir, то возвращаемый путь будет в variant_dir, а не в исходном местоположении. Если я duplicate=0
установил, то возвращаемый файл фактически не будет существовать.
Очевидно, что SCons знает, где находится исходный файл, поскольку он передается в качестве аргумента при фактической сборке файла (например gcc -c -o variant/foo.o orig/foo.c
).
Есть ли какой-то File('foo.bar').origpath
способ, который я могу использовать?
Если бы дошло до этого, я мог бы использовать os.path.join(Dir('#').abspath, 'orig')
но для этого SConscript должен знать, в каком каталоге он находится, что является беспорядочным.
Ответ №1:
Вы можете использовать srcnode()
. Чтобы процитировать справочную страницу:
Метод srcnode() возвращает другой объект File или Dir, представляющий исходный путь к данному файлу или каталогу.
Это даст вам абсолютный путь в исходном каталоге:
File('foo.bar').srcnode().abspath
Комментарии:
1. Ах, красиво! Я знал, что должно быть что-то подобное. Спасибо!