Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Android/build/build/soong/scripts/   (Android Betriebssystem Version 17©)  Datei vom 26.5.2026 mit Größe 3 kB image not shown  

Quelle  gen-kotlin-build-file.py

  Sprache: Python
 

#!/usr/bin/env python3
#
# Copyright 2018 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Generates kotlinc module xml file to drive kotlinc

import argparse
import os

from ninja_rsp import NinjaRspFileReader

def parse_args():
  """Parse commandline arguments."""

  def convert_arg_line_to_args(arg_line):
    for arg in arg_line.split():
      if arg.startswith('#'):
        return
      if not arg.strip():
        continue
      yield arg

  parser = argparse.ArgumentParser(fromfile_prefix_chars='@')
  parser.convert_arg_line_to_args = convert_arg_line_to_args
  parser.add_argument('--out', dest='out',
                      help='file to which the module.xml contents will be written.')
  parser.add_argument('--classpath', dest='classpath', action='append', default=[],
                      help='file containing classpath to pass to kotlinc.')
  parser.add_argument('-Xfriend-paths', dest='friend_paths',
                      help='comma separated list of paths to jars in which this module can access internal visibility symbols.')
  parser.add_argument('--name', dest='name',
                      help='name of the module.')
  parser.add_argument('--out_dir', dest='out_dir',
                      help='directory to which kotlinc will write output files.')
  parser.add_argument('--srcs', dest='srcs', action='append', default=[],
                      help='file containing whitespace separated list of source files.')
  parser.add_argument('--common_srcs', dest='common_srcs', action='append', default=[],
                      help='file containing whitespace separated list of common multiplatform source files.')

  return parser.parse_args()

def main():
  """Program entry point."""
  args = parse_args()

  if not args.out:
    raise RuntimeError('--out argument is required')

  if not args.name:
    raise RuntimeError('--name argument is required')

  with open(args.out, 'w'as f:
    # Print preamble
    f.write('<modules>\n')
    f.write('  <module name="%s" type="java-production" outputDir="%s">\n' % (args.name, args.out_dir or ''))

    # Print classpath entries
    for classpath_rsp_file in args.classpath:
      for entry in NinjaRspFileReader(classpath_rsp_file):
        path = os.path.abspath(entry)
        f.write('    <classpath path="%s"/>\n' % path)

    # Print friend path entries
    if args.friend_paths is not None:
      for friend_path in args.friend_paths.split(','):
        f.write('    <friendDir path="%s"/>\n' % os.path.abspath(friend_path))

    # For each rsp file, print source entries
    for rsp_file in args.srcs:
      for src in NinjaRspFileReader(rsp_file):
        path = os.path.abspath(src)
        if src.endswith('.java'):
          f.write('    <javaSourceRoots path="%s"/>\n' % path)
        elif src.endswith('.kt'):
          f.write('    <sources path="%s"/>\n' % path)
        else:
          raise RuntimeError(f'unknown source file type {src} from rspfile {rsp_file}')

    for rsp_file in args.common_srcs:
      for src in NinjaRspFileReader(rsp_file):
        path = os.path.abspath(src)
        f.write('    <sources path="%s"/>\n' % path)
        f.write('    <commonSources path="%s"/>\n' % path)

    f.write('  </module>\n')
    f.write('</modules>\n')

if __name__ == '__main__':
  main()

Messung V0.5 in Prozent
C=88 H=91 G=89

¤ Dauer der Verarbeitung: 0.13 Sekunden  (vorverarbeitet am  2026-06-28) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.