Скомпилируйте стороннюю библиотеку, также используя SCons из скрипта сборки SCons - PullRequest
0 голосов
/ 27 апреля 2019

Я использую SCons для создания своего проекта.

Сторонняя библиотека, которую я интегрировал, также использует SCons, но ее можно обновить из Git в любое время, и я не могу контролировать содержимое ее SConstruct файла.

При самостоятельной компиляции файл SConstruct библиотеки принимает параметры bits=32/64 и target=debug/release

.

Я пытался создать его с помощью env.SConscript(), но он не передает параметры в форме, которую принимает целевой файл SConstruct (без использования функции Import() SCons):

# Compile Godot-CPP, a wrapper library we depend on
if nuclex._is_debug_build(environment):
    compile_godot_cpp = environment.SConscript(
        'addons/godot-cpp/SConstruct', export='bits=64 target=debug'
    )
else:
    compile_godot_cpp = environment.SConscript(
        'addons/godot-cpp/SConstruct', export='bits=64 target=release'
    )

Могу ли я скомпилировать еще один SConstruct файл и передать ему параметры, как если бы SCons был вызван из командной строки самостоятельно?

Я знаю, что мог бы просто использовать env.Command() для запуска другого процесса SCons, но тогда SCons не мог распараллелить сборку (т.е. scons -j16), как это происходит в случае env.SConscript().

1 Ответ

0 голосов
/ 27 апреля 2019

Нет хорошего способа сделать это, кроме Command (). Вы можете спросить проект Godot, могут ли они переместить большую часть своей логики в SConscript на верхнем уровне, который вы затем можете импортировать и каким-то образом передать необходимые параметры.

...