как я могу создать статическую библиотеку из файлов, автоматически созданных при запуске perl-скрипта в SConscript

#scons

#scons

Вопрос:

Вот что мне нужно сделать в scons, и в настоящее время я не могу заставить это работать правильно.

Сначала мне нужно запустить perl-скрипт 1. Это генерирует серию cpp-файлов. Затем мне нужно запустить perl-скрипт 2. При этом генерируется еще одна серия cpp-файлов. Затем мне нужно взять cpp-файлы, которые были созданы в результате выполнения двух perl-скриптов, и создать из них статическую библиотеку.

Я использую пользовательский конструктор для выполнения perl-скриптов. Я не хочу вручную определять целевой список, поскольку это может измениться в зависимости от файла, который perl-скрипты используют для генерации исходных файлов.

я был бы очень признателен за помощь ny. Спасибо, D

Ответ №1:

Для запуска perl-скриптов вам просто нужно использовать стандартный код python:

 import subprocess
subprocess.call(['perl', ...args...])
  

Для создания статической библиотеки попробуйте что-то вроде этого:

 env = Environment()
env.StaticLibrary('example', Glob('*.cpp'))
  

где Glob('*.cpp') генерируется список всех .cpp файлов. Если у вас уже есть какая-то настроенная среда, просто используйте is вместо env в моем примере.