diff --git a/scripts/jw-build-create-project.sh b/scripts/jw-build-create-project.sh index d388db05..fe4e69bc 100644 --- a/scripts/jw-build-create-project.sh +++ b/scripts/jw-build-create-project.sh @@ -79,7 +79,7 @@ cat_make_project_conf() group = System/Libraries subpackages = $subpackages - [pkg.required] + [pkg.required.jw] run = ytools-run = VERSION devel = $name-run = VERSION-REVISION, ytools-devel = VERSION build = ytools-devel diff --git a/scripts/projects.py b/scripts/projects.py index 506b9b11..ca6e0571 100644 --- a/scripts/projects.py +++ b/scripts/projects.py @@ -10,16 +10,11 @@ from os.path import basename from os.path import realpath import re -# meaning of pkg.required variables +# meaning of pkg.required.xxx variables # build: needs to be built and installed before this can be built # devel: needs to be installed before this-devel can be installed, i.e. before _other_ packages can be built against this # run: needs to be installed before this-run can be installed, i.e. before this and other packages can run with this -def re_section(name): - return re.compile('[' + name + ']' - '.*?' - '(?=[)', - re.DOTALL) # --------------------------------------------------------------------- helpers def debug(*objs): @@ -29,6 +24,12 @@ def debug(*objs): def proj_dir(name): return projs_root + '/' + name +def re_section(name): + return re.compile('[' + name + ']' + '.*?' + '(?=[)', + re.DOTALL) + # TODO: add support for customizing this in project.conf def htdocs_dir(name): pd = proj_dir(name) @@ -38,6 +39,9 @@ def htdocs_dir(name): return r return None +def required_cascade(): + return [] + def strip_module_from_spec(mod): return re.sub(r'-devel$|-run$', '', re.split('([=><]+)', mod)[0].strip()) @@ -168,7 +172,7 @@ def get_libname(names): # -L needs to contain more paths than libs linked with -l would require def get_ldpathflags(names): - deps = get_modules_from_project_txt(names, 'pkg.required', 'build', + deps = get_modules_from_project_txt(names, 'pkg.required.jw', 'build', scope = 2, add_self=True, names_only=True) r = '' for m in deps: @@ -179,7 +183,7 @@ def get_ldpathflags(names): def get_ldflags(names): #print(names) - deps = get_modules_from_project_txt(names, 'pkg.required', 'build', + deps = get_modules_from_project_txt(names, 'pkg.required.jw', 'build', scope = 1, add_self=False, names_only=True) #print(deps) r = '' @@ -221,7 +225,7 @@ def cmd_ldlibpath(args_): parser = argparse.ArgumentParser(description='ldlibpath') parser.add_argument('module', nargs='*', help='Modules') args=parser.parse_args(args_) - deps = get_modules_from_project_txt(args.module, 'pkg.required', [ 'run', 'build' ], + deps = get_modules_from_project_txt(args.module, 'pkg.required.jw', [ 'run', 'build' ], scope = 2, add_self=True, names_only=True) r = '' for m in deps: @@ -232,7 +236,7 @@ def cmd_exepath(args_): parser = argparse.ArgumentParser(description='exepath') parser.add_argument('module', nargs='*', help='Modules') args=parser.parse_args(args_) - deps = get_modules_from_project_txt(args.module, 'pkg.required', 'run', + deps = get_modules_from_project_txt(args.module, 'pkg.required.jw', 'run', scope = 2, add_self=True, names_only=True) r = '' for m in deps: @@ -255,7 +259,7 @@ def cmd_cflags(args_): parser = argparse.ArgumentParser(description='ldlibpath') parser.add_argument('module', nargs='*', help='Modules') args=parser.parse_args(args_) - deps = get_modules_from_project_txt(args.module, 'pkg.required', 'build', + deps = get_modules_from_project_txt(args.module, 'pkg.required.jw', 'build', scope = 1, add_self=True, names_only=True) r = '' for m in reversed(deps): @@ -266,7 +270,7 @@ def cmd_path(args_): parser = argparse.ArgumentParser(description='path') parser.add_argument('module', nargs='*', help='Modules') args=parser.parse_args(args_) - deps = get_modules_from_project_txt(args.module, 'pkg.required', 'run', + deps = get_modules_from_project_txt(args.module, 'pkg.required.jw', 'run', scope = 2, add_self=True, names_only=True) r = '' for m in deps: @@ -278,7 +282,7 @@ def cmd_prereq(args_): parser.add_argument('flavour', help='Flavour') parser.add_argument('module', nargs='*', help='Modules') args=parser.parse_args(args_) - deps = get_modules_from_project_txt(args.module, 'pkg.required', + deps = get_modules_from_project_txt(args.module, 'pkg.required.jw', args.flavour, scope = 2, add_self=False, names_only=True) print(' '.join(deps)) @@ -289,7 +293,7 @@ def cmd_pkg_requires(args_): args=parser.parse_args(args_) r = [] for m in args.module: - value = get_value(m, 'pkg.required', args.flavour) + value = get_value(m, 'pkg.required.jw', args.flavour) if not value: continue deps = value.split(',') @@ -355,7 +359,7 @@ def read_dep_graph(modules, section, graph): for m in modules: if m in graph: continue - deps = get_modules_from_project_txt([ m ], 'pkg.required', section, + deps = get_modules_from_project_txt([ m ], 'pkg.required.jw', section, scope = 1, add_self=False, names_only=True) if not deps is None: graph[m] = deps