diff options
author | monster <[email protected]> | 2022-07-07 14:41:37 +0300 |
---|---|---|
committer | monster <[email protected]> | 2022-07-07 14:41:37 +0300 |
commit | 06e5c21a835c0e923506c4ff27929f34e00761c2 (patch) | |
tree | 75efcbc6854ef9bd476eb8bf00cc5c900da436a2 /build/plugins/res.py | |
parent | 03f024c4412e3aa613bb543cf1660176320ba8f4 (diff) |
fix ya.make
Diffstat (limited to 'build/plugins/res.py')
-rw-r--r-- | build/plugins/res.py | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/build/plugins/res.py b/build/plugins/res.py deleted file mode 100644 index 5a868fe100c..00000000000 --- a/build/plugins/res.py +++ /dev/null @@ -1,117 +0,0 @@ -from _common import iterpair, listid, pathid, rootrel_arc_src, tobuilddir, filter_out_by_keyword -import ymake - - -def split(lst, limit): - # paths are specified with replaceable prefix - # real length is unknown at the moment, that why we use root_lenght - # as a rough estimation - root_lenght = 200 - filepath = None - lenght = 0 - bucket = [] - - for item in lst: - if filepath: - lenght += root_lenght + len(filepath) + len(item) - if lenght > limit and bucket: - yield bucket - bucket = [] - lenght = 0 - - bucket.append(filepath) - bucket.append(item) - filepath = None - else: - filepath = item - - if bucket: - yield bucket - - -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']) - - # Since the maximum length of lpCommandLine string for CreateProcess is 8kb (windows) characters, - # we make several calls of rescompiler - # https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms682425.aspx - for part_args in split(args, 8000): - output = listid(part_args) + '.cpp' - inputs = [x for x, y in iterpair(part_args) if x != '-'] - if inputs: - inputs = ['IN'] + inputs - - unit.onrun_program(['tools/rescompiler', output] + part_args + inputs + ['OUT_NOAUTO', output]) - unit.onsrcs(['GLOBAL', output]) - - -def onresource_files(unit, *args): - """ - @usage: RESOURCE_FILES([DONT_PARSE] [PREFIX {prefix}] [STRIP prefix_to_strip] {path}) - - 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/{key} stores a source root (or build root) relative path of the - source of the value of the {key} resource. - - resfs/file/{key} stores any value whose source was a file on a filesystem. - resfs/src/resfs/file/{key} must store its path. - - DONT_PARSE disables parsing for source code files (determined by extension) - Please don't abuse: use separate DONT_PARSE macro call only for files subject to parsing - - This form is for use from other plugins: - RESOURCE_FILES([DEST {dest}] {path}) expands into RESOURCE({path} resfs/file/{dest}) - - @see: https://wiki.yandex-team.ru/devtools/commandsandvars/resourcefiles/ - """ - prefix = '' - prefix_to_strip = None - dest = None - res = [] - first = 0 - - if args and not unit.enabled('_GO_MODULE'): - # GO_RESOURCE currently doesn't support DONT_PARSE - res.append('DONT_PARSE') - - if args and args[0] == 'DONT_PARSE': - first = 1 - - args = iter(args[first:]) - for arg in args: - if arg == 'DONT_PARSE': - # ignore explicit specification - continue - if arg == 'PREFIX': - prefix, dest = next(args), None - elif arg == 'DEST': - dest, prefix = next(args), None - 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)))) - src = 'resfs/src/{}={}'.format(key, rootrel_arc_src(path, unit)) - res += ['-', src, path, key] - - if unit.enabled('_GO_MODULE'): - unit.on_go_resource(res) - else: - unit.onresource(res) - -def onall_resource_files(unit, *args): - # This is only validation, actual work is done in ymake.core.conf implementation - for arg in args: - if '*' in arg or '?' in arg: - ymake.report_configure_error('Wildcards in [[imp]]ALL_RESOURCE_FILES[[rst]] are not allowed') - |