Создание иерархической сборки с помощью SCons - PullRequest
6 голосов
/ 14 сентября 2010

У меня есть проект библиотеки, который содержит несколько образцов в подпапке.

Сама библиотека имеет файл SConstruct, и каждый образец имеет свою собственную папку и собственный файл SConstruct.

Я бы хотел добавить цель в основной (корневой) SConstruct файл, который позволил бы мне скомпилировать библиотеку как обычно и все примеры сразу.

Существует ли существующий механизм/ builder для этого?

PS: я не хочу иметь только один большой SConstruct файл, потому что я хочу, чтобы папки примеров оставались независимыми.

Ответы [ 2 ]

8 голосов
/ 14 сентября 2010

http://www.scons.org/doc/production/HTML/scons-man.html

Создание иерархической сборки

Обратите внимание, что имена файлов, указанные в файле SConscript подкаталога, относятся к этому подкаталогу.

SConstruct:

env = Environment()
env.Program(target = 'foo', source = 'foo.c')

SConscript('sub/SConscript')

sub / SConcript:

env = Environment()
# Builds sub/foo from sub/foo.c
env.Program(target = 'foo', source = 'foo.c')

SConscript('dir/SConscript')

sub / dir / SConscript:

env = Environment()
# Builds sub/dir/foo from sub/dir/foo.c
env.Program(target = 'foo', source = 'foo.c')
4 голосов
/ 22 июля 2014

Для таких, как я, пришедших на этот вопрос от Google, я нашел более полный пример создания библиотеки и кода, который назвал бы ее здесь .

(Извиняюсь, если этот ответстарый вопрос не одобряется - большое количество запросов на различные комбинации "scons", "подкаталога", "иерархического", "build" и т. д. предлагают эту страницу, и я хотел бы сохранить другим те 8+ часов, которые я только что провелпытаясь заставить работать иерархические сборки чисто).

...