Рассмотрим следующие wscript
:
- удаленные
install
или uninstall
команды - no
build
команда, но build_debug
и build_release
команды какмы используем вариант сборки.
import waflib
from waflib.Build import BuildContext, CleanContext, InstallContext, UninstallContext
APPNAME = 'TestApp'
VERSION = '1.0.0'
for x in 'debug release'.split():
for y in (BuildContext, CleanContext):
name = y.__name__.replace('Context','').lower()
class tmp(y):
cmd = name + '_' + x
variant = x
def options(opt):
mctx = waflib.Context.classes
mctx.remove(waflib.Build.InstallContext)
mctx.remove(waflib.Build.UninstallContext)
def configure(conf):
conf.setenv('debug')
conf.setenv('release')
def build(bld):
if not bld.variant:
bld.fatal('call "waf build_debug" or "waf build_release", and try "waf --help"')
Невозможно запустить distcheck
на этом wscript
:
D:\dev\distcheck>python waf configure distcheck
Setting top to : D:\dev\distcheck
Setting out to : D:\dev\distcheck\build
'configure' finished successfully (0.007s)
New archive created: TestApp-1.0.0.tar.bz2 (sha256='290babcef54fd88ab30b46662f62fe680dc1280ae26a931f2cda3b87382cafe2')
Setting top to : D:\dev\distcheck\TestApp-1.0.0
Setting out to : D:\dev\distcheck\TestApp-1.0.0\build
'configure' finished successfully (0.062s)
Waf: Entering directory `D:\dev\distcheck\TestApp-1.0.0\build'
call "waf build_debug" or "waf build_release", and try "waf --help"
distcheck failed with code 1
Я пытался настроить distcheck-args
но это не помогает:
D:\dev\distcheck>python waf configure --distcheck-args=configure,build_debug,build_debug
Setting top to : D:\dev\distcheck
Setting out to : D:\dev\distcheck\build
'configure' finished successfully (0.064s)
D:\dev\distcheck>python waf distcheck
New archive created: TestApp-1.0.0.tar.bz2 (sha256='4bf28bc95577749b25dc1cc911f4545b8c06c9fb8bac0c9ba53134bf620d0162')
Setting top to : D:\dev\distcheck\TestApp-1.0.0
Setting out to : D:\dev\distcheck\TestApp-1.0.0\build
'configure' finished successfully (0.017s)
Waf: Entering directory `D:\dev\distcheck\TestApp-1.0.0\build'
call "waf build_debug" or "waf build_release", and try "waf --help"
distcheck failed with code 1
Это оставляет мне два вопроса:
- Как правильно перезаписываются аргументы distcheck, генерируемые
Scripting.DistCheck.make_distcheck_cmd
? - Как проверка, генерируемая
Scripting.DistCheck.check
вывода команды, корректно перезаписывается?Директории установки не существует, так как нет команды установки.
Мое временное решение, позволяющее обезьяне исправлять функции Scripting.DistCheck.make_distcheck_cmd
и Scripting.DistCheck.check
, не очень удобно.