make dist generation work again
This commit is contained in:
53
wscript
53
wscript
@@ -60,6 +60,30 @@ REGRESSION_SUFFIX = "-ref-traces"
|
||||
srcdir = '.'
|
||||
blddir = 'build'
|
||||
|
||||
def load_env():
|
||||
bld_cls = getattr(Utils.g_module, 'build_context', Utils.Context)
|
||||
bld_ctx = bld_cls()
|
||||
bld_ctx.load_dirs(os.path.abspath(os.path.join (srcdir,'..')),
|
||||
os.path.abspath(os.path.join (srcdir,'..', blddir)))
|
||||
bld_ctx.load_envs()
|
||||
env = bld_ctx.get_env()
|
||||
return env
|
||||
|
||||
def get_files(base_dir):
|
||||
retval = []
|
||||
reference=os.path.dirname(base_dir)
|
||||
for root, dirs, files in os.walk(base_dir):
|
||||
if root.find('.hg') != -1:
|
||||
continue
|
||||
for file in files:
|
||||
if file.find('.hg') != -1:
|
||||
continue
|
||||
fullname = os.path.join(root,file)
|
||||
# we can't use os.path.relpath because it's new in python 2.6
|
||||
relname = fullname.replace(reference + '/','')
|
||||
retval.append([fullname,relname])
|
||||
return retval
|
||||
|
||||
|
||||
def dist_hook():
|
||||
import tarfile
|
||||
@@ -69,18 +93,19 @@ def dist_hook():
|
||||
|
||||
## build the name of the traces subdirectory. Will be something like
|
||||
## ns-3-dev-ref-traces
|
||||
traces_name = APPNAME + '-' + VERSION + regression.REGRESSION_SUFFIX
|
||||
traces_name = APPNAME + '-' + VERSION + REGRESSION_SUFFIX
|
||||
## Create a tar.bz2 file with the traces
|
||||
traces_dir = os.path.join(regression.REGRESSION_DIR, traces_name)
|
||||
if not os.path.isdir(traces_dir):
|
||||
Logs.warn("Not creating traces archive: the %s directory does not exist" % traces_dir)
|
||||
env = load_env()
|
||||
regression_dir = env['REGRESSION_TRACES']
|
||||
if not os.path.isdir(regression_dir):
|
||||
Logs.warn("Not creating traces archive: the %s directory does not exist" % regression_dir)
|
||||
else:
|
||||
traceball = traces_name + wutils.TRACEBALL_SUFFIX
|
||||
tar = tarfile.open(os.path.join("..", traceball), 'w:bz2')
|
||||
tar.add(traces_dir)
|
||||
files = get_files(regression_dir)
|
||||
for fullfilename,relfilename in files:
|
||||
tar.add(fullfilename,arcname=relfilename)
|
||||
tar.close()
|
||||
## Now remove it; we do not ship the traces with the main tarball...
|
||||
shutil.rmtree(traces_dir, True)
|
||||
|
||||
def set_options(opt):
|
||||
# options provided by the modules
|
||||
@@ -209,24 +234,24 @@ def configure(conf):
|
||||
pass
|
||||
conf.check_tool('command')
|
||||
|
||||
# create the second environment, set the variant and set its name
|
||||
variant_env = conf.env.copy()
|
||||
variant_name = Options.options.build_profile
|
||||
|
||||
# Check for the location of regression reference traces
|
||||
if Options.options.regression_traces is not None:
|
||||
if os.path.isdir(Options.options.regression_traces):
|
||||
conf.check_message("regression traces location", '', True, ("%s (given)" % Options.options.regression_traces))
|
||||
variant_env['REGRESSION_TRACES'] = os.path.abspath(Options.options.regression_traces)
|
||||
conf.env['REGRESSION_TRACES'] = os.path.abspath(Options.options.regression_traces)
|
||||
else:
|
||||
traces = os.path.join('..', "%s-%s%s" % (APPNAME, VERSION, REGRESSION_SUFFIX))
|
||||
if os.path.isdir(traces):
|
||||
conf.check_message("regression reference traces", '', True, ("%s (guessed)" % traces))
|
||||
variant_env['REGRESSION_TRACES'] = os.path.abspath(traces)
|
||||
conf.env['REGRESSION_TRACES'] = os.path.abspath(traces)
|
||||
del traces
|
||||
if not variant_env['REGRESSION_TRACES']:
|
||||
if not conf.env['REGRESSION_TRACES']:
|
||||
conf.check_message("regression reference traces", '', False)
|
||||
|
||||
# create the second environment, set the variant and set its name
|
||||
variant_env = conf.env.copy()
|
||||
variant_name = Options.options.build_profile
|
||||
|
||||
if Options.options.enable_gcov:
|
||||
variant_name += '-gcov'
|
||||
variant_env.append_value('CCFLAGS', '-fprofile-arcs')
|
||||
|
||||
Reference in New Issue
Block a user