diff options
author | svidyuk <svidyuk@yandex-team.ru> | 2022-02-10 16:47:12 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:47:12 +0300 |
commit | e23df0602fedd83374b43b6137a296baa2aad3f6 (patch) | |
tree | 1facb78b6535ac70f17ba39ed606d949f932fcea /build/plugins | |
parent | 92661c40a019d4809586c8ce322075d197427346 (diff) | |
download | ydb-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.py | 316 | ||||
-rw-r--r-- | build/plugins/res.py | 22 | ||||
-rw-r--r-- | build/plugins/scarab_cant_clash.py | 6 | ||||
-rw-r--r-- | build/plugins/swig.py | 124 | ||||
-rw-r--r-- | build/plugins/ytest.py | 94 |
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]) |