aboutsummaryrefslogtreecommitdiffstats
path: root/build/plugins
diff options
context:
space:
mode:
authorsvidyuk <svidyuk@yandex-team.ru>2022-02-10 16:47:12 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:47:12 +0300
commite23df0602fedd83374b43b6137a296baa2aad3f6 (patch)
tree1facb78b6535ac70f17ba39ed606d949f932fcea /build/plugins
parent92661c40a019d4809586c8ce322075d197427346 (diff)
downloadydb-e23df0602fedd83374b43b6137a296baa2aad3f6.tar.gz
Restoring authorship annotation for <svidyuk@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'build/plugins')
-rw-r--r--build/plugins/java.py316
-rw-r--r--build/plugins/res.py22
-rw-r--r--build/plugins/scarab_cant_clash.py6
-rw-r--r--build/plugins/swig.py124
-rw-r--r--build/plugins/ytest.py94
5 files changed, 281 insertions, 281 deletions
diff --git a/build/plugins/java.py b/build/plugins/java.py
index 16fc126734..ff5281624a 100644
--- a/build/plugins/java.py
+++ b/build/plugins/java.py
@@ -31,7 +31,7 @@ def extract_macro_calls2(unit, macro_value_name):
return calls
-def on_run_jbuild_program(unit, *args):
+def on_run_jbuild_program(unit, *args):
args = list(args)
"""
Custom code generation
@@ -76,31 +76,31 @@ def ongenerate_script(unit, *args):
def onjava_module(unit, *args):
args_delim = unit.get('ARGS_DELIM')
- idea_only = True if 'IDEA_ONLY' in args else False
-
- if idea_only:
- if unit.get('YA_IDE_IDEA') != 'yes':
- return
- if unit.get('YMAKE_JAVA_MODULES') != 'yes':
- return
-
+ idea_only = True if 'IDEA_ONLY' in args else False
+
+ if idea_only:
+ if unit.get('YA_IDE_IDEA') != 'yes':
+ return
+ if unit.get('YMAKE_JAVA_MODULES') != 'yes':
+ return
+
data = {
'BUNDLE_NAME': unit.name(),
'PATH': unit.path(),
- 'IDEA_ONLY': 'yes' if idea_only else 'no',
+ 'IDEA_ONLY': 'yes' if idea_only else 'no',
'MODULE_TYPE': unit.get('MODULE_TYPE'),
'MODULE_ARGS': unit.get('MODULE_ARGS'),
- 'MANAGED_PEERS': '${MANAGED_PEERS}',
- 'MANAGED_PEERS_CLOSURE': '${MANAGED_PEERS_CLOSURE}',
- 'NON_NAMAGEABLE_PEERS': '${NON_NAMAGEABLE_PEERS}',
- 'TEST_CLASSPATH_MANAGED': '${TEST_CLASSPATH_MANAGED}',
+ 'MANAGED_PEERS': '${MANAGED_PEERS}',
+ 'MANAGED_PEERS_CLOSURE': '${MANAGED_PEERS_CLOSURE}',
+ 'NON_NAMAGEABLE_PEERS': '${NON_NAMAGEABLE_PEERS}',
+ 'TEST_CLASSPATH_MANAGED': '${TEST_CLASSPATH_MANAGED}',
'EXCLUDE': extract_macro_calls(unit, 'EXCLUDE_VALUE', args_delim),
'JAVA_SRCS': extract_macro_calls(unit, 'JAVA_SRCS_VALUE', args_delim),
'JAVAC_FLAGS': extract_macro_calls(unit, 'JAVAC_FLAGS_VALUE', args_delim),
'ANNOTATION_PROCESSOR': extract_macro_calls(unit, 'ANNOTATION_PROCESSOR_VALUE', args_delim),
'EXTERNAL_JAR': extract_macro_calls(unit, 'EXTERNAL_JAR_VALUE', args_delim),
'RUN_JAVA_PROGRAM': extract_macro_calls2(unit, 'RUN_JAVA_PROGRAM_VALUE'),
- 'RUN_JAVA_PROGRAM_MANAGED': '${RUN_JAVA_PROGRAM_MANAGED}',
+ 'RUN_JAVA_PROGRAM_MANAGED': '${RUN_JAVA_PROGRAM_MANAGED}',
'MAVEN_GROUP_ID': extract_macro_calls(unit, 'MAVEN_GROUP_ID_VALUE', args_delim),
'JAR_INCLUDE_FILTER': extract_macro_calls(unit, 'JAR_INCLUDE_FILTER_VALUE', args_delim),
'JAR_EXCLUDE_FILTER': extract_macro_calls(unit, 'JAR_EXCLUDE_FILTER_VALUE', args_delim),
@@ -219,151 +219,151 @@ def onjava_module(unit, *args):
dart = 'JAVA_DART: ' + base64.b64encode(json.dumps(data)) + '\n' + DELIM + '\n'
unit.set_property(['JAVA_DART_DATA', dart])
- if not idea_only and unit.get('MODULE_TYPE') in ('JAVA_PROGRAM', 'JAVA_LIBRARY', 'JTEST', 'TESTNG', 'JUNIT5') and not unit.path().startswith('$S/contrib/java'):
- unit.on_add_classpath_clash_check()
+ if not idea_only and unit.get('MODULE_TYPE') in ('JAVA_PROGRAM', 'JAVA_LIBRARY', 'JTEST', 'TESTNG', 'JUNIT5') and not unit.path().startswith('$S/contrib/java'):
+ unit.on_add_classpath_clash_check()
if unit.get('LINT_LEVEL_VALUE') != "none":
unit.onadd_check(['JAVA_STYLE', unit.get('LINT_LEVEL_VALUE')])
-
-
-def on_add_java_style_checks(unit, *args):
- if unit.get('LINT_LEVEL_VALUE') != "none":
- unit.onadd_check(['JAVA_STYLE', unit.get('LINT_LEVEL_VALUE')] + list(args))
-
-
-def on_add_classpath_clash_check(unit, *args):
- jdeps_val = (unit.get('CHECK_JAVA_DEPS_VALUE') or '').lower()
- if jdeps_val and jdeps_val not in ('yes', 'no', 'strict'):
- ymake.report_configure_error('CHECK_JAVA_DEPS: "yes", "no" or "strict" required')
- if jdeps_val and jdeps_val != 'no':
- unit.onjava_test_deps(jdeps_val)
-
-
-# Ymake java modules related macroses
-
-
-def onexternal_jar(unit, *args):
- args = list(args)
- flat, kv = common.sort_by_keywords({'SOURCES': 1}, args)
- if not flat:
- ymake.report_configure_error('EXTERNAL_JAR requires exactly one resource URL of compiled jar library')
- res = flat[0]
- resid = res[4:] if res.startswith('sbr:') else res
- unit.set(['JAR_LIB_RESOURCE', resid])
- unit.set(['JAR_LIB_RESOURCE_URL', res])
-
-
-def on_check_java_srcdir(unit, *args):
- args = list(args)
- for arg in args:
- if not '$' in arg:
- arc_srcdir = os.path.join(unit.get('MODDIR'), arg)
- abs_srcdir = unit.resolve(os.path.join("$S/", arc_srcdir))
- if not os.path.exists(abs_srcdir) or not os.path.isdir(abs_srcdir):
- ymake.report_configure_error(
- 'Trying to set a [[alt1]]JAVA_SRCS[[rst]] for a missing directory: [[imp]]$S/{}[[rst]]',
- missing_dir=arc_srcdir
- )
- return
- srcdir = unit.resolve_arc_path(arg)
- if srcdir and not srcdir.startswith('$S'):
- continue
- abs_srcdir = unit.resolve(srcdir) if srcdir else unit.resolve(arg)
- if not os.path.exists(abs_srcdir) or not os.path.isdir(abs_srcdir):
- ymake.report_configure_error(
- 'Trying to set a [[alt1]]JAVA_SRCS[[rst]] for a missing directory: [[imp]]{}[[rst]]',
- missing_dir=srcdir
- )
-
-
-def on_fill_jar_copy_resources_cmd(unit, *args):
- if len(args) == 4:
- varname, srcdir, base_classes_dir, reslist = tuple(args)
- package = ''
- else:
- varname, srcdir, base_classes_dir, package, reslist = tuple(args)
- dest_dir = os.path.join(base_classes_dir, *package.split('.')) if package else base_classes_dir
- var = unit.get(varname)
- var += ' && $FS_TOOLS copy_files {} {} {}'.format(srcdir if srcdir.startswith('"$') else '${CURDIR}/' + srcdir, dest_dir, reslist)
- unit.set([varname, var])
-
-def on_fill_jar_gen_srcs(unit, *args):
- varname, jar_type, srcdir, base_classes_dir, java_list, kt_list, groovy_list, res_list = tuple(args[0:8])
- resolved_srcdir = unit.resolve_arc_path(srcdir)
- if not resolved_srcdir.startswith('$') or resolved_srcdir.startswith('$S'):
- return
-
- exclude_pos = args.index('EXCLUDE')
- globs = args[7:exclude_pos]
- excludes = args[exclude_pos + 1:]
- var = unit.get(varname)
- var += ' && ${{cwd:BINDIR}} $YMAKE_PYTHON ${{input:"build/scripts/resolve_java_srcs.py"}} --append -d {} -s {} -k {} -g {} -r {} --include-patterns {}'.format(srcdir, java_list, kt_list, groovy_list, res_list, ' '.join(globs))
- if jar_type == 'SRC_JAR':
- var += ' --all-resources'
- if len(excludes) > 0:
- var += ' --exclude-patterns {}'.format(' '.join(excludes))
- if unit.get('WITH_KOTLIN_VALUE') == 'yes':
- var += ' --resolve-kotlin'
- unit.set([varname, var])
-
-
-def on_check_run_java_prog_classpath(unit, *args):
- if len(args) != 1:
- ymake.report_configure_error('multiple CLASSPATH elements in RUN_JAVA_PROGRAM invocation no more supported. Use JAVA_RUNTIME_PEERDIR on the JAVA_PROGRAM module instead')
-
-
-def extract_words(words, keys):
- kv = {}
- k = None
-
- for w in words:
- if w in keys:
- k = w
- else:
- if not k in kv:
- kv[k] = []
- kv[k].append(w)
-
- return kv
-
-
-def parse_words(words):
- kv = extract_words(words, {'OUT', 'TEMPLATE'})
- ws = []
- for item in ('OUT', 'TEMPLATE'):
- for i, word in list(enumerate(kv[item])):
- if word == 'CUSTOM_PROPERTY':
- ws += kv[item][i:]
- kv[item] = kv[item][:i]
- tepmlates = kv['TEMPLATE']
- outputs = kv['OUT']
- if len(outputs) < len(tepmlates):
- ymake.report_configure_error('To many arguments for TEMPLATE parameter')
- return
- if ws and ws[0] != 'CUSTOM_PROPERTY':
- ymake.report_configure_error('''Can't parse {}'''.format(ws))
- custom_props = []
- for item in ws:
- if item == 'CUSTOM_PROPERTY':
- custom_props.append([])
- else:
- custom_props[-1].append(item)
- props = []
- for p in custom_props:
- if not p:
- ymake.report_configure_error('Empty CUSTOM_PROPERTY')
- continue
- props.append('-B')
- if len(p) > 1:
- props.append(base64.b64encode("{}={}".format(p[0], ' '.join(p[1:]))))
- else:
- ymake.report_configure_error('CUSTOM_PROPERTY "{}" value is not specified'.format(p[0]))
- for i, o in enumerate(outputs):
- yield o, tepmlates[min(i, len(tepmlates) - 1)], props
-
-
-def on_ymake_generate_script(unit, *args):
- for out, tmpl, props in parse_words(list(args)):
- unit.on_add_gen_java_script([out, tmpl] + list(props))
+
+
+def on_add_java_style_checks(unit, *args):
+ if unit.get('LINT_LEVEL_VALUE') != "none":
+ unit.onadd_check(['JAVA_STYLE', unit.get('LINT_LEVEL_VALUE')] + list(args))
+
+
+def on_add_classpath_clash_check(unit, *args):
+ jdeps_val = (unit.get('CHECK_JAVA_DEPS_VALUE') or '').lower()
+ if jdeps_val and jdeps_val not in ('yes', 'no', 'strict'):
+ ymake.report_configure_error('CHECK_JAVA_DEPS: "yes", "no" or "strict" required')
+ if jdeps_val and jdeps_val != 'no':
+ unit.onjava_test_deps(jdeps_val)
+
+
+# Ymake java modules related macroses
+
+
+def onexternal_jar(unit, *args):
+ args = list(args)
+ flat, kv = common.sort_by_keywords({'SOURCES': 1}, args)
+ if not flat:
+ ymake.report_configure_error('EXTERNAL_JAR requires exactly one resource URL of compiled jar library')
+ res = flat[0]
+ resid = res[4:] if res.startswith('sbr:') else res
+ unit.set(['JAR_LIB_RESOURCE', resid])
+ unit.set(['JAR_LIB_RESOURCE_URL', res])
+
+
+def on_check_java_srcdir(unit, *args):
+ args = list(args)
+ for arg in args:
+ if not '$' in arg:
+ arc_srcdir = os.path.join(unit.get('MODDIR'), arg)
+ abs_srcdir = unit.resolve(os.path.join("$S/", arc_srcdir))
+ if not os.path.exists(abs_srcdir) or not os.path.isdir(abs_srcdir):
+ ymake.report_configure_error(
+ 'Trying to set a [[alt1]]JAVA_SRCS[[rst]] for a missing directory: [[imp]]$S/{}[[rst]]',
+ missing_dir=arc_srcdir
+ )
+ return
+ srcdir = unit.resolve_arc_path(arg)
+ if srcdir and not srcdir.startswith('$S'):
+ continue
+ abs_srcdir = unit.resolve(srcdir) if srcdir else unit.resolve(arg)
+ if not os.path.exists(abs_srcdir) or not os.path.isdir(abs_srcdir):
+ ymake.report_configure_error(
+ 'Trying to set a [[alt1]]JAVA_SRCS[[rst]] for a missing directory: [[imp]]{}[[rst]]',
+ missing_dir=srcdir
+ )
+
+
+def on_fill_jar_copy_resources_cmd(unit, *args):
+ if len(args) == 4:
+ varname, srcdir, base_classes_dir, reslist = tuple(args)
+ package = ''
+ else:
+ varname, srcdir, base_classes_dir, package, reslist = tuple(args)
+ dest_dir = os.path.join(base_classes_dir, *package.split('.')) if package else base_classes_dir
+ var = unit.get(varname)
+ var += ' && $FS_TOOLS copy_files {} {} {}'.format(srcdir if srcdir.startswith('"$') else '${CURDIR}/' + srcdir, dest_dir, reslist)
+ unit.set([varname, var])
+
+def on_fill_jar_gen_srcs(unit, *args):
+ varname, jar_type, srcdir, base_classes_dir, java_list, kt_list, groovy_list, res_list = tuple(args[0:8])
+ resolved_srcdir = unit.resolve_arc_path(srcdir)
+ if not resolved_srcdir.startswith('$') or resolved_srcdir.startswith('$S'):
+ return
+
+ exclude_pos = args.index('EXCLUDE')
+ globs = args[7:exclude_pos]
+ excludes = args[exclude_pos + 1:]
+ var = unit.get(varname)
+ var += ' && ${{cwd:BINDIR}} $YMAKE_PYTHON ${{input:"build/scripts/resolve_java_srcs.py"}} --append -d {} -s {} -k {} -g {} -r {} --include-patterns {}'.format(srcdir, java_list, kt_list, groovy_list, res_list, ' '.join(globs))
+ if jar_type == 'SRC_JAR':
+ var += ' --all-resources'
+ if len(excludes) > 0:
+ var += ' --exclude-patterns {}'.format(' '.join(excludes))
+ if unit.get('WITH_KOTLIN_VALUE') == 'yes':
+ var += ' --resolve-kotlin'
+ unit.set([varname, var])
+
+
+def on_check_run_java_prog_classpath(unit, *args):
+ if len(args) != 1:
+ ymake.report_configure_error('multiple CLASSPATH elements in RUN_JAVA_PROGRAM invocation no more supported. Use JAVA_RUNTIME_PEERDIR on the JAVA_PROGRAM module instead')
+
+
+def extract_words(words, keys):
+ kv = {}
+ k = None
+
+ for w in words:
+ if w in keys:
+ k = w
+ else:
+ if not k in kv:
+ kv[k] = []
+ kv[k].append(w)
+
+ return kv
+
+
+def parse_words(words):
+ kv = extract_words(words, {'OUT', 'TEMPLATE'})
+ ws = []
+ for item in ('OUT', 'TEMPLATE'):
+ for i, word in list(enumerate(kv[item])):
+ if word == 'CUSTOM_PROPERTY':
+ ws += kv[item][i:]
+ kv[item] = kv[item][:i]
+ tepmlates = kv['TEMPLATE']
+ outputs = kv['OUT']
+ if len(outputs) < len(tepmlates):
+ ymake.report_configure_error('To many arguments for TEMPLATE parameter')
+ return
+ if ws and ws[0] != 'CUSTOM_PROPERTY':
+ ymake.report_configure_error('''Can't parse {}'''.format(ws))
+ custom_props = []
+ for item in ws:
+ if item == 'CUSTOM_PROPERTY':
+ custom_props.append([])
+ else:
+ custom_props[-1].append(item)
+ props = []
+ for p in custom_props:
+ if not p:
+ ymake.report_configure_error('Empty CUSTOM_PROPERTY')
+ continue
+ props.append('-B')
+ if len(p) > 1:
+ props.append(base64.b64encode("{}={}".format(p[0], ' '.join(p[1:]))))
+ else:
+ ymake.report_configure_error('CUSTOM_PROPERTY "{}" value is not specified'.format(p[0]))
+ for i, o in enumerate(outputs):
+ yield o, tepmlates[min(i, len(tepmlates) - 1)], props
+
+
+def on_ymake_generate_script(unit, *args):
+ for out, tmpl, props in parse_words(list(args)):
+ unit.on_add_gen_java_script([out, tmpl] + list(props))
def on_jdk_version_macro_check(unit, *args):
if len(args) != 1:
diff --git a/build/plugins/res.py b/build/plugins/res.py
index a937caba81..ec8e2801f7 100644
--- a/build/plugins/res.py
+++ b/build/plugins/res.py
@@ -28,12 +28,12 @@ def split(lst, limit):
yield bucket
-def remove_prefix(text, prefix):
- if text.startswith(prefix):
- return text[len(prefix):]
- return text
-
-
+def remove_prefix(text, prefix):
+ if text.startswith(prefix):
+ return text[len(prefix):]
+ return text
+
+
def onfat_resource(unit, *args):
unit.onpeerdir(['library/cpp/resource'])
@@ -56,7 +56,7 @@ def onresource_files(unit, *args):
This macro expands into
RESOURCE([DONT_PARSE] {path} resfs/file/{prefix}{path}
- - resfs/src/resfs/file/{prefix}{remove_prefix(path, prefix_to_strip)}={rootrel_arc_src(path)}
+ - resfs/src/resfs/file/{prefix}{remove_prefix(path, prefix_to_strip)}={rootrel_arc_src(path)}
)
resfs/src/{key} stores a source root (or build root) relative path of the
@@ -74,7 +74,7 @@ def onresource_files(unit, *args):
@see: https://wiki.yandex-team.ru/devtools/commandsandvars/resourcefiles/
"""
prefix = ''
- prefix_to_strip = None
+ prefix_to_strip = None
dest = None
res = []
first = 0
@@ -92,11 +92,11 @@ def onresource_files(unit, *args):
prefix, dest = next(args), None
elif arg == 'DEST':
dest, prefix = next(args), None
- elif arg == 'STRIP':
- prefix_to_strip = next(args)
+ elif arg == 'STRIP':
+ prefix_to_strip = next(args)
else:
path = arg
- key = 'resfs/file/' + (dest or (prefix + (path if not prefix_to_strip else remove_prefix(path, prefix_to_strip))))
+ key = 'resfs/file/' + (dest or (prefix + (path if not prefix_to_strip else remove_prefix(path, prefix_to_strip))))
src = 'resfs/src/{}={}'.format(key, rootrel_arc_src(path, unit))
res += ['-', src, path, key]
diff --git a/build/plugins/scarab_cant_clash.py b/build/plugins/scarab_cant_clash.py
index 77dc303183..a112a3220f 100644
--- a/build/plugins/scarab_cant_clash.py
+++ b/build/plugins/scarab_cant_clash.py
@@ -2,10 +2,10 @@ import _common as common
def onacceleo(unit, *args):
- if unit.get("YMAKE_JAVA_MODULES") == "yes":
- return
+ if unit.get("YMAKE_JAVA_MODULES") == "yes":
+ return
flat, kv = common.sort_by_keywords(
- {'XSD': -1, 'MTL': -1, 'MTL_ROOT': 1, 'LANG': -1, 'OUT': -1, 'OUT_NOAUTO': -1, 'OUTPUT_INCLUDES': -1, 'DEBUG': 0},
+ {'XSD': -1, 'MTL': -1, 'MTL_ROOT': 1, 'LANG': -1, 'OUT': -1, 'OUT_NOAUTO': -1, 'OUTPUT_INCLUDES': -1, 'DEBUG': 0},
args
)
diff --git a/build/plugins/swig.py b/build/plugins/swig.py
index 32a37204a6..f90185bcaa 100644
--- a/build/plugins/swig.py
+++ b/build/plugins/swig.py
@@ -26,22 +26,22 @@ class Swig(iw.CustomCommand):
self._swig_lang = unit.get('SWIG_LANG')
- if self._swig_lang != 'jni_java':
- self._main_out = os.path.join(
- self._bindir,
- '' if relpath == '.' else relpath.replace('..', '__'),
- self._input_name + '_wrap.swg.c')
-
- if not path.endswith('.c.swg'):
- self._flags += ['-c++']
- self._main_out += 'pp'
-
- # lang_specific_incl_dir = 'perl5' if self._swig_lang == 'perl' else self._swig_lang
- lang_specific_incl_dir = self._swig_lang
- if self._swig_lang == 'perl':
- lang_specific_incl_dir = 'perl5'
- elif self._swig_lang in ['jni_cpp', 'jni_java']:
- lang_specific_incl_dir = 'java'
+ if self._swig_lang != 'jni_java':
+ self._main_out = os.path.join(
+ self._bindir,
+ '' if relpath == '.' else relpath.replace('..', '__'),
+ self._input_name + '_wrap.swg.c')
+
+ if not path.endswith('.c.swg'):
+ self._flags += ['-c++']
+ self._main_out += 'pp'
+
+ # lang_specific_incl_dir = 'perl5' if self._swig_lang == 'perl' else self._swig_lang
+ lang_specific_incl_dir = self._swig_lang
+ if self._swig_lang == 'perl':
+ lang_specific_incl_dir = 'perl5'
+ elif self._swig_lang in ['jni_cpp', 'jni_java']:
+ lang_specific_incl_dir = 'java'
incl_dirs = [
"FOR", "swig",
posixpath.join(self._library_dir, lang_specific_incl_dir),
@@ -65,16 +65,16 @@ class Swig(iw.CustomCommand):
self._flags.append('-shadow')
unit.onpeerdir(['build/platform/perl'])
- if self._swig_lang in ['jni_cpp', 'java']:
+ if self._swig_lang in ['jni_cpp', 'java']:
self._out_header = os.path.splitext(self._main_out)[0] + '.h'
if (not unit.get('USE_SYSTEM_JDK')) and (unit.get('OS_ANDROID') != "yes"):
unit.onpeerdir(['contrib/libs/jdk'])
- self._package = 'ru.yandex.' + os.path.dirname(self._path).replace('$S/', '').replace('$B/', '').replace('/', '.').replace('-', '_')
- if self._swig_lang in ['jni_java', 'java']:
- self._out_name = os.path.splitext(os.path.basename(self._path))[0] + '.jsrc'
- elif self._swig_lang != 'jni_cpp':
- self._flags.append('-' + self._swig_lang)
+ self._package = 'ru.yandex.' + os.path.dirname(self._path).replace('$S/', '').replace('$B/', '').replace('/', '.').replace('-', '_')
+ if self._swig_lang in ['jni_java', 'java']:
+ self._out_name = os.path.splitext(os.path.basename(self._path))[0] + '.jsrc'
+ elif self._swig_lang != 'jni_cpp':
+ self._flags.append('-' + self._swig_lang)
def descr(self):
return 'SW', self._path, 'yellow'
@@ -91,23 +91,23 @@ class Swig(iw.CustomCommand):
]
def output(self):
- if self._swig_lang == 'jni_java':
- return [(common.join_intl_paths(self._bindir, self._out_name), [])]
- elif self._swig_lang == 'jni_cpp':
- return [(self._main_out, []), (self._out_header, [])]
-
+ if self._swig_lang == 'jni_java':
+ return [(common.join_intl_paths(self._bindir, self._out_name), [])]
+ elif self._swig_lang == 'jni_cpp':
+ return [(self._main_out, []), (self._out_header, [])]
+
return [
(self._main_out, []),
(common.join_intl_paths(self._bindir, self._out_name), (['noauto', 'add_to_outs'] if self._swig_lang != 'java' else [])),
] + ([(self._out_header, [])] if self._swig_lang == 'java' else [])
def output_includes(self):
- return [(self._out_header, [])] if self._swig_lang in ['java', 'jni_cpp'] else []
+ return [(self._out_header, [])] if self._swig_lang in ['java', 'jni_cpp'] else []
def run(self, extra_args, binary):
if self._local_swig:
binary = self._tool
- return self.do_run_java(binary, self._path) if self._swig_lang in ['java', 'jni_cpp', 'jni_java'] else self.do_run(binary, self._path)
+ return self.do_run_java(binary, self._path) if self._swig_lang in ['java', 'jni_cpp', 'jni_java'] else self.do_run(binary, self._path)
def _incl_flags(self):
return ['-I' + self.resolve_path(x) for x in self._incl_dirs]
@@ -122,10 +122,10 @@ class Swig(iw.CustomCommand):
import tarfile
outdir = self.resolve_path(self._bindir)
- if self._swig_lang != 'jni_cpp':
- java_srcs_dir = os.path.join(outdir, self._package.replace('.', '/'))
- if not os.path.exists(java_srcs_dir):
- os.makedirs(java_srcs_dir)
+ if self._swig_lang != 'jni_cpp':
+ java_srcs_dir = os.path.join(outdir, self._package.replace('.', '/'))
+ if not os.path.exists(java_srcs_dir):
+ os.makedirs(java_srcs_dir)
flags = self._incl_flags()
src = self.resolve_path(path)
@@ -133,32 +133,32 @@ class Swig(iw.CustomCommand):
if not re.search(r'(?m)^%module\b', f.read()):
flags += ['-module', os.path.splitext(os.path.basename(src))[0]]
- if self._swig_lang == 'jni_cpp':
- self.call([binary, '-c++', '-o', self._main_out, '-java', '-package', self._package] + flags + [src])
- elif self._swig_lang == 'jni_java':
- self.call([binary, '-c++', '-o', os.path.join(outdir, 'unused.cpp'), '-outdir', java_srcs_dir, '-java', '-package', self._package] + flags + [src])
- elif self._swig_lang == 'java':
- self.call([
- binary, '-c++', '-o', self._main_out, '-outdir', java_srcs_dir,
- '-java', '-package', self._package,
- ] + flags + [src])
-
- if self._swig_lang in ['jni_java', 'java']:
- with tarfile.open(os.path.join(outdir, self._out_name), 'a') as tf:
- tf.add(java_srcs_dir, arcname=self._package.replace('.', '/'))
-
- if self._swig_lang in ['jni_cpp', 'java']:
- header = os.path.splitext(self.resolve_path(self._main_out))[0] + '.h'
- if not os.path.exists(header):
- open(header, 'w').close()
-
-
-def on_swig_lang_filtered_srcs(unit, *args):
- swig_lang = unit.get('SWIG_LANG')
- allowed_exts = set()
- if swig_lang == 'jni_cpp':
- allowed_exts = set(['.cpp', '.swg'])
- if swig_lang == 'jni_java':
- allowed_exts = set(['.java', '.swg'])
- args = [arg for arg in iter(args) if allowed_exts and os.path.splitext(arg)[1] in allowed_exts]
- unit.onsrcs(args)
+ if self._swig_lang == 'jni_cpp':
+ self.call([binary, '-c++', '-o', self._main_out, '-java', '-package', self._package] + flags + [src])
+ elif self._swig_lang == 'jni_java':
+ self.call([binary, '-c++', '-o', os.path.join(outdir, 'unused.cpp'), '-outdir', java_srcs_dir, '-java', '-package', self._package] + flags + [src])
+ elif self._swig_lang == 'java':
+ self.call([
+ binary, '-c++', '-o', self._main_out, '-outdir', java_srcs_dir,
+ '-java', '-package', self._package,
+ ] + flags + [src])
+
+ if self._swig_lang in ['jni_java', 'java']:
+ with tarfile.open(os.path.join(outdir, self._out_name), 'a') as tf:
+ tf.add(java_srcs_dir, arcname=self._package.replace('.', '/'))
+
+ if self._swig_lang in ['jni_cpp', 'java']:
+ header = os.path.splitext(self.resolve_path(self._main_out))[0] + '.h'
+ if not os.path.exists(header):
+ open(header, 'w').close()
+
+
+def on_swig_lang_filtered_srcs(unit, *args):
+ swig_lang = unit.get('SWIG_LANG')
+ allowed_exts = set()
+ if swig_lang == 'jni_cpp':
+ allowed_exts = set(['.cpp', '.swg'])
+ if swig_lang == 'jni_java':
+ allowed_exts = set(['.java', '.swg'])
+ args = [arg for arg in iter(args) if allowed_exts and os.path.splitext(arg)[1] in allowed_exts]
+ unit.onsrcs(args)
diff --git a/build/plugins/ytest.py b/build/plugins/ytest.py
index 8970837f0f..27460b35e5 100644
--- a/build/plugins/ytest.py
+++ b/build/plugins/ytest.py
@@ -524,25 +524,25 @@ def onadd_ytest(unit, *args):
save_in_file(unit.get('TEST_DART_OUT_FILE'), data)
-def java_srcdirs_to_data(unit, var):
- extra_data = []
- for srcdir in (unit.get(var) or '').replace('$' + var, '').split():
- if srcdir == '.':
- srcdir = unit.get('MODDIR')
- if srcdir.startswith('${ARCADIA_ROOT}/') or srcdir.startswith('$ARCADIA_ROOT/'):
- srcdir = srcdir.replace('${ARCADIA_ROOT}/', '$S/')
- srcdir = srcdir.replace('$ARCADIA_ROOT/', '$S/')
- if srcdir.startswith('${CURDIR}/') or srcdir.startswith('$CURDIR/'):
- srcdir = srcdir.replace('${CURDIR}/', os.path.join('$S', unit.get('MODDIR')))
- srcdir = srcdir.replace('$CURDIR/', os.path.join('$S', unit.get('MODDIR')))
- srcdir = unit.resolve_arc_path(srcdir)
- if not srcdir.startswith('$'):
- srcdir = os.path.join('$S', unit.get('MODDIR'), srcdir)
- if srcdir.startswith('$S'):
- extra_data.append(srcdir.replace('$S', 'arcadia'))
- return serialize_list(extra_data)
-
-
+def java_srcdirs_to_data(unit, var):
+ extra_data = []
+ for srcdir in (unit.get(var) or '').replace('$' + var, '').split():
+ if srcdir == '.':
+ srcdir = unit.get('MODDIR')
+ if srcdir.startswith('${ARCADIA_ROOT}/') or srcdir.startswith('$ARCADIA_ROOT/'):
+ srcdir = srcdir.replace('${ARCADIA_ROOT}/', '$S/')
+ srcdir = srcdir.replace('$ARCADIA_ROOT/', '$S/')
+ if srcdir.startswith('${CURDIR}/') or srcdir.startswith('$CURDIR/'):
+ srcdir = srcdir.replace('${CURDIR}/', os.path.join('$S', unit.get('MODDIR')))
+ srcdir = srcdir.replace('$CURDIR/', os.path.join('$S', unit.get('MODDIR')))
+ srcdir = unit.resolve_arc_path(srcdir)
+ if not srcdir.startswith('$'):
+ srcdir = os.path.join('$S', unit.get('MODDIR'), srcdir)
+ if srcdir.startswith('$S'):
+ extra_data.append(srcdir.replace('$S', 'arcadia'))
+ return serialize_list(extra_data)
+
+
def onadd_check(unit, *args):
if unit.get("TIDY") == "yes":
# graph changed for clang_tidy tests
@@ -554,16 +554,16 @@ def onadd_check(unit, *args):
test_timeout = ''
fork_mode = ''
- extra_test_data = ''
+ extra_test_data = ''
extra_test_dart_data = {}
- ymake_java_test = unit.get('YMAKE_JAVA_TEST') == 'yes'
+ ymake_java_test = unit.get('YMAKE_JAVA_TEST') == 'yes'
if check_type in ["flake8.py2", "flake8.py3"]:
script_rel_path = check_type
fork_mode = unit.get('TEST_FORK_MODE') or ''
elif check_type == "JAVA_STYLE":
- if ymake_java_test and not unit.get('ALL_SRCDIRS') or '':
- return
+ if ymake_java_test and not unit.get('ALL_SRCDIRS') or '':
+ return
if len(flat_args) < 2:
raise Exception("Not enough arguments for JAVA_STYLE check")
check_level = flat_args[1]
@@ -576,13 +576,13 @@ def onadd_check(unit, *args):
if check_level not in allowed_levels:
raise Exception('{} is not allowed in LINT(), use one of {}'.format(check_level, allowed_levels.keys()))
flat_args[1] = allowed_levels[check_level]
- if check_level == 'none':
- return
+ if check_level == 'none':
+ return
script_rel_path = "java.style"
test_timeout = '120'
fork_mode = unit.get('TEST_FORK_MODE') or ''
- if ymake_java_test:
- extra_test_data = java_srcdirs_to_data(unit, 'ALL_SRCDIRS')
+ if ymake_java_test:
+ extra_test_data = java_srcdirs_to_data(unit, 'ALL_SRCDIRS')
extra_test_dart_data['JDK_RESOURCE'] = 'JDK' + (unit.get('JDK_VERSION') or '_DEFAULT')
elif check_type == "gofmt":
script_rel_path = check_type
@@ -620,7 +620,7 @@ def onadd_check(unit, *args):
'TESTED-PROJECT-NAME': os.path.basename(test_dir),
'SOURCE-FOLDER-PATH': test_dir,
'CUSTOM-DEPENDENCIES': " ".join(spec_args.get('DEPENDS', [])),
- 'TEST-DATA': extra_test_data,
+ 'TEST-DATA': extra_test_data,
"SBR-UID-EXT": uid_ext,
'SPLIT-FACTOR': '',
'TEST_PARTITION': 'SEQUENTIAL',
@@ -635,7 +635,7 @@ def onadd_check(unit, *args):
# TODO remove FILES, see DEVTOOLS-7052
'FILES': test_files,
'TEST-FILES': test_files,
- 'NO_JBUILD': 'yes' if ymake_java_test else 'no',
+ 'NO_JBUILD': 'yes' if ymake_java_test else 'no',
}
test_record.update(extra_test_dart_data)
@@ -836,7 +836,7 @@ def onjava_test(unit, *args):
else:
script_rel_path = 'junit.test'
- ymake_java_test = unit.get('YMAKE_JAVA_TEST') == 'yes'
+ ymake_java_test = unit.get('YMAKE_JAVA_TEST') == 'yes'
test_record = {
'SOURCE-FOLDER-PATH': path,
'TEST-NAME': '-'.join([os.path.basename(os.path.dirname(path)), os.path.basename(path)]),
@@ -861,22 +861,22 @@ def onjava_test(unit, *args):
'SYSTEM_PROPERTIES': props,
'TEST-CWD': test_cwd,
'SKIP_TEST': unit.get('SKIP_TEST_VALUE') or '',
- 'JAVA_CLASSPATH_CMD_TYPE': java_cp_arg_type,
+ 'JAVA_CLASSPATH_CMD_TYPE': java_cp_arg_type,
'NO_JBUILD': 'yes' if ymake_java_test else 'no',
'JDK_RESOURCE': 'JDK' + (unit.get('JDK_VERSION') or '_DEFAULT'),
'JDK_FOR_TESTS': 'JDK' + (unit.get('JDK_VERSION') or '_DEFAULT') + '_FOR_TESTS',
}
- test_classpath_origins = unit.get('TEST_CLASSPATH_VALUE')
- if test_classpath_origins:
- test_record['TEST_CLASSPATH_ORIGINS'] = test_classpath_origins
- test_record['TEST_CLASSPATH'] = '${TEST_CLASSPATH_MANAGED}'
- elif ymake_java_test:
- test_record['TEST_CLASSPATH'] = '${DART_CLASSPATH}'
- test_record['TEST_CLASSPATH_DEPS'] = '${DART_CLASSPATH_DEPS}'
- if unit.get('UNITTEST_DIR'):
- test_record['TEST_JAR'] = '${UNITTEST_MOD}'
- else:
- test_record['TEST_JAR'] = '{}/{}.jar'.format(unit.get('MODDIR'), unit.get('REALPRJNAME'))
+ test_classpath_origins = unit.get('TEST_CLASSPATH_VALUE')
+ if test_classpath_origins:
+ test_record['TEST_CLASSPATH_ORIGINS'] = test_classpath_origins
+ test_record['TEST_CLASSPATH'] = '${TEST_CLASSPATH_MANAGED}'
+ elif ymake_java_test:
+ test_record['TEST_CLASSPATH'] = '${DART_CLASSPATH}'
+ test_record['TEST_CLASSPATH_DEPS'] = '${DART_CLASSPATH_DEPS}'
+ if unit.get('UNITTEST_DIR'):
+ test_record['TEST_JAR'] = '${UNITTEST_MOD}'
+ else:
+ test_record['TEST_JAR'] = '{}/{}.jar'.format(unit.get('MODDIR'), unit.get('REALPRJNAME'))
data = dump_test(unit, test_record)
if data:
@@ -893,7 +893,7 @@ def onjava_test_deps(unit, *args):
mode = args[0]
path = get_norm_unit_path(unit)
- ymake_java_test = unit.get('YMAKE_JAVA_TEST') == 'yes'
+ ymake_java_test = unit.get('YMAKE_JAVA_TEST') == 'yes'
test_record = {
'SOURCE-FOLDER-PATH': path,
@@ -909,7 +909,7 @@ def onjava_test_deps(unit, *args):
'TAG': '',
'SIZE': 'SMALL',
'IGNORE_CLASSPATH_CLASH': ' '.join(get_values_list(unit, 'JAVA_IGNORE_CLASSPATH_CLASH_VALUE')),
- 'NO_JBUILD': 'yes' if ymake_java_test else 'no',
+ 'NO_JBUILD': 'yes' if ymake_java_test else 'no',
# JTEST/JTEST_FOR only
'MODULE_TYPE': unit.get('MODULE_TYPE'),
@@ -920,9 +920,9 @@ def onjava_test_deps(unit, *args):
if mode == 'strict':
test_record['STRICT_CLASSPATH_CLASH'] = 'yes'
- if ymake_java_test:
- test_record['CLASSPATH'] = '$B/{}/{}.jar ${{DART_CLASSPATH}}'.format(unit.get('MODDIR'), unit.get('REALPRJNAME'))
-
+ if ymake_java_test:
+ test_record['CLASSPATH'] = '$B/{}/{}.jar ${{DART_CLASSPATH}}'.format(unit.get('MODDIR'), unit.get('REALPRJNAME'))
+
data = dump_test(unit, test_record)
unit.set_property(['DART_DATA', data])