SCons: получить путь к исходному файлу (как будто я не установил вариант_дир) - PullRequest
8 голосов
/ 20 мая 2011

Я могу использовать File('foo.bar').abspath, чтобы получить местоположение файла, но если у меня установлена ​​опция variable_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 Ответ

8 голосов
/ 20 мая 2011

Вы можете использовать srcnode().Чтобы процитировать справочную страницу :

Метод srcnode () возвращает другой объект File или Dir, представляющий исходный путь к данному File или Dir.

Это даст вам абсолютный путь в исходном каталоге:

File('foo.bar').srcnode().abspath
...