SCons: восстановить после сбоя очистки - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь пример: https://bitbucket.org/Anteru/build-systems/src/default/scons/

Я изменил файл SConstruct, чтобы установить каталоги сборки:

SConscript(
    'statlib/SConscript',
    variant_dir='build/statlib',
    duplicate=0
)
SConscript(
    'dynlib/SConscript',
    variant_dir='build/dynlib',
    duplicate=0
)
SConscript(
    'executable/SConscript',
    variant_dir='build/executable',
    duplicate=0
)

Первая сборка прошла успешно.

Однако сборка после scons --clean и сборка с scons --no-cache завершились неудачно, поскольку SCons использует неправильный путь к файлу tablegen.py.

Модифицированный пример: scons.zip

1 Ответ

0 голосов
/ 16 декабря 2018

Если вы измените свой пример файла statlib / SConscript на:

import os

# This is needed so we get the python from PATH
env = Environment(ENV = os.environ)

env.Append (CPPPATH='#')
pyexec = 'python' if os.name == 'nt' else 'python3'
env.Command ('table.cpp', 'tablegen.py', '{} $SOURCE > $TARGET'.format (pyexec))

env.StaticLibrary('statlib', [
    # This adds fPIC in a portable way
    SharedObject ('StaticLibrarySource.cpp'), 
    SharedObject ('table.cpp')])

Это должно сработать.

Примечание: я подал проблему в отношении указанного вами репо.https://bitbucket.org/Anteru/build-systems/issues/2/youre-statlib-sconscript-has-issue-which

...