def __init__(self, context, workdir=None): NailgunTask.__init__(self, context, workdir=context.config.get('scala-compile', 'nailgun_dir')) color = context.options.scala_compile_color or \ context.config.getbool('scala-compile', 'color', default=True) self._zinc_utils = ZincUtils(context=context, java_runner=self.runjava, color=color) self._partition_size_hint = \ context.options.scala_compile_partition_size_hint \ if context.options.scala_compile_partition_size_hint != -1 else \ context.config.getint('scala-compile', 'partition_size_hint') self.check_missing_deps = context.options.scala_check_missing_deps self.check_intransitive_deps = context.options.scala_check_intransitive_deps self.check_unnecessary_deps = context.options.scala_check_unnecessary_deps if self.check_missing_deps: JvmDependencyCache.init_product_requirements(self) # for dependency analysis, we need to record the list of analysis cache files generated by splitting self.generated_caches = set() workdir = context.config.get('scala-compile', 'workdir') if workdir is None else workdir self._classes_dir = os.path.join(workdir, 'classes') self._analysis_cache_dir = os.path.join(workdir, 'analysis_cache') self._resources_dir = os.path.join(workdir, 'resources') self._depfile_dir = os.path.join(workdir, 'depfiles') self._confs = context.config.getlist('scala-compile', 'confs') artifact_cache_spec = context.config.getlist('scala-compile', 'artifact_caches') self.setup_artifact_cache(artifact_cache_spec)
def __init__(self, context, workdir=None): NailgunTask.__init__(self, context, workdir=context.config.get('scala-compile', 'nailgun_dir')) # Set up the zinc utils. color = context.options.scala_compile_color or \ context.config.getbool('scala-compile', 'color', default=True) self._zinc_utils = ZincUtils(context=context, java_runner=self.runjava, color=color) # The rough number of source files to build in each compiler pass. self._partition_size_hint = \ context.options.scala_compile_partition_size_hint \ if context.options.scala_compile_partition_size_hint != -1 else \ context.config.getint('scala-compile', 'partition_size_hint') # Set up dep checking if needed. if context.options.scala_check_missing_deps: JvmDependencyCache.init_product_requirements(self) # Various output directories. self._buildroot = get_buildroot() workdir = context.config.get('scala-compile', 'workdir') if workdir is None else workdir self._resources_dir = os.path.join(workdir, 'resources') self._artifact_factory = ZincArtifactFactory(workdir, self.context, self._zinc_utils) # The ivy confs for which we're building. self._confs = context.config.getlist('scala-compile', 'confs') # The artifact cache to read from/write to. artifact_cache_spec = context.config.getlist('scala-compile', 'artifact_caches') self.setup_artifact_cache(artifact_cache_spec)
def __init__(self, context): NailgunTask.__init__(self, context, workdir=context.config.get('scala-compile', 'nailgun_dir')) # Set up the zinc utils. color = not context.options.no_color self._zinc_utils = ZincUtils(context=context, nailgun_task=self, color=color) # The rough number of source files to build in each compiler pass. self._partition_size_hint = (context.options.scala_compile_partition_size_hint if context.options.scala_compile_partition_size_hint != -1 else context.config.getint('scala-compile', 'partition_size_hint', default=1000)) # Set up dep checking if needed. if context.options.scala_check_missing_deps: JvmDependencyCache.init_product_requirements(self) self._opts = context.config.getlist('scala-compile', 'args') if context.options.scala_compile_warnings: self._opts.extend(context.config.getlist('scala-compile', 'warning_args')) else: self._opts.extend(context.config.getlist('scala-compile', 'no_warning_args')) # Various output directories. workdir = context.config.get('scala-compile', 'workdir') self._classes_dir = os.path.join(workdir, 'classes') self._analysis_dir = os.path.join(workdir, 'analysis') safe_mkdir(self._classes_dir) safe_mkdir(self._analysis_dir) self._analysis_file = os.path.join(self._analysis_dir, 'global_analysis.valid') self._invalid_analysis_file = os.path.join(self._analysis_dir, 'global_analysis.invalid') self._resources_dir = os.path.join(workdir, 'resources') # The ivy confs for which we're building. self._confs = context.config.getlist('scala-compile', 'confs') self.context.products.require_data('exclusives_groups') self._local_artifact_cache_spec = \ context.config.getlist('scala-compile', 'local_artifact_caches2', default=[]) self._remote_artifact_cache_spec = \ context.config.getlist('scala-compile', 'remote_artifact_caches2', default=[]) # A temporary, but well-known, dir to munge analysis files in before caching. It must be # well-known so we know where to find the files when we retrieve them from the cache. self._analysis_tmpdir = os.path.join(self._analysis_dir, 'artifact_cache_tmpdir') # If we are compiling scala libraries with circular deps on java libraries we need to make sure # those cycle deps are present. self._inject_java_cycles() # Sources present in the last analysis that have since been deleted. # Generated lazily, so do not access directly. Call self._get_deleted_sources(). self._deleted_sources = None
def __init__(self, context): NailgunTask.__init__(self, context, workdir=context.config.get( 'scala-compile', 'nailgun_dir')) # Set up the zinc utils. color = not context.options.no_color self._zinc_utils = ZincUtils(context=context, nailgun_task=self, color=color) # The rough number of source files to build in each compiler pass. self._partition_size_hint = ( context.options.scala_compile_partition_size_hint if context.options.scala_compile_partition_size_hint != -1 else context.config.getint( 'scala-compile', 'partition_size_hint', default=1000)) # Set up dep checking if needed. if context.options.scala_check_missing_deps: JvmDependencyCache.init_product_requirements(self) self._opts = context.config.getlist('scala-compile', 'args') if context.options.scala_compile_warnings: self._opts.extend( context.config.getlist('scala-compile', 'warning_args')) else: self._opts.extend( context.config.getlist('scala-compile', 'no_warning_args')) # Various output directories. workdir = context.config.get('scala-compile', 'workdir') self._resources_dir = os.path.join(workdir, 'resources') self._artifact_factory = ZincArtifactFactory(workdir, self.context, self._zinc_utils) # The ivy confs for which we're building. self._confs = context.config.getlist('scala-compile', 'confs') # The artifact cache to read from/write to. artifact_cache_spec = context.config.getlist('scala-compile', 'artifact_caches', default=[]) self.setup_artifact_cache(artifact_cache_spec) # If we are compiling scala libraries with circular deps on java libraries we need to make sure # those cycle deps are present. self._inject_java_cycles()
def __init__(self, context): NailgunTask.__init__(self, context, workdir=context.config.get("scala-compile", "nailgun_dir")) # Set up the zinc utils. # Command line switch overrides color setting set in pants.ini color = ( context.options.scala_compile_color if context.options.scala_compile_color is not None else context.config.getbool("scala-compile", "color", default=True) ) self._zinc_utils = ZincUtils(context=context, java_runner=self.runjava, color=color) # The rough number of source files to build in each compiler pass. self._partition_size_hint = ( context.options.scala_compile_partition_size_hint if context.options.scala_compile_partition_size_hint != -1 else context.config.getint("scala-compile", "partition_size_hint", default=1000) ) # Set up dep checking if needed. if context.options.scala_check_missing_deps: JvmDependencyCache.init_product_requirements(self) self._opts = context.config.getlist("scala-compile", "args") if context.options.scala_compile_warnings: self._opts.extend(context.config.getlist("scala-compile", "warning_args")) else: self._opts.extend(context.config.getlist("scala-compile", "no_warning_args")) # Various output directories. workdir = context.config.get("scala-compile", "workdir") self._resources_dir = os.path.join(workdir, "resources") self._artifact_factory = ZincArtifactFactory(workdir, self.context, self._zinc_utils) # The ivy confs for which we're building. self._confs = context.config.getlist("scala-compile", "confs") # The artifact cache to read from/write to. artifact_cache_spec = context.config.getlist("scala-compile", "artifact_caches") self.setup_artifact_cache(artifact_cache_spec) # If we are compiling scala libraries with circular deps on java libraries we need to make sure # those cycle deps are present. self._inject_java_cycles()
def __init__(self, context, workdir=None): NailgunTask.__init__(self, context, workdir=context.config.get( 'scala-compile', 'nailgun_dir')) # Set up the zinc utils. # Command line switch overrides color setting set in pants.ini color = context.options.scala_compile_color if context.options.scala_compile_color is not None else \ context.config.getbool('scala-compile', 'color', default=True) self._zinc_utils = ZincUtils(context=context, java_runner=self.runjava, color=color) # The rough number of source files to build in each compiler pass. self._partition_size_hint = \ context.options.scala_compile_partition_size_hint \ if context.options.scala_compile_partition_size_hint != -1 else \ context.config.getint('scala-compile', 'partition_size_hint') # Set up dep checking if needed. if context.options.scala_check_missing_deps: JvmDependencyCache.init_product_requirements(self) # Various output directories. self._buildroot = get_buildroot() workdir = context.config.get('scala-compile', 'workdir') if workdir is None else workdir self._resources_dir = os.path.join(workdir, 'resources') self._artifact_factory = ZincArtifactFactory(workdir, self.context, self._zinc_utils) # The ivy confs for which we're building. self._confs = context.config.getlist('scala-compile', 'confs') # The artifact cache to read from/write to. artifact_cache_spec = context.config.getlist('scala-compile', 'artifact_caches') self.setup_artifact_cache(artifact_cache_spec)
def __init__(self, context): NailgunTask.__init__(self, context, workdir=context.config.get('scala-compile', 'nailgun_dir')) # Set up the zinc utils. color = not context.options.no_color self._zinc_utils = ZincUtils(context=context, nailgun_task=self, color=color) # The rough number of source files to build in each compiler pass. self._partition_size_hint = (context.options.scala_compile_partition_size_hint if context.options.scala_compile_partition_size_hint != -1 else context.config.getint('scala-compile', 'partition_size_hint', default=1000)) # Set up dep checking if needed. if context.options.scala_check_missing_deps: JvmDependencyCache.init_product_requirements(self) self._opts = context.config.getlist('scala-compile', 'args') if context.options.scala_compile_warnings: self._opts.extend(context.config.getlist('scala-compile', 'warning_args')) else: self._opts.extend(context.config.getlist('scala-compile', 'no_warning_args')) # Various output directories. workdir = context.config.get('scala-compile', 'workdir') self._resources_dir = os.path.join(workdir, 'resources') self._artifact_factory = ZincArtifactFactory(workdir, self.context, self._zinc_utils) # The ivy confs for which we're building. self._confs = context.config.getlist('scala-compile', 'confs') # The artifact cache to read from/write to. artifact_cache_spec = context.config.getlist('scala-compile', 'artifact_caches', default=[]) self.setup_artifact_cache(artifact_cache_spec) # If we are compiling scala libraries with circular deps on java libraries we need to make sure # those cycle deps are present. self._inject_java_cycles()
def __init__(self, context, workdir=None): NailgunTask.__init__(self, context, workdir=context.config.get('scala-compile', 'nailgun_dir')) self._partition_size_hint = \ context.options.scala_compile_partition_size_hint \ if context.options.scala_compile_partition_size_hint != -1 else \ context.config.getint('scala-compile', 'partition_size_hint') self.check_missing_deps = context.options.scala_check_missing_deps self.check_intransitive_deps = context.options.scala_check_intransitive_deps self.check_unnecessary_deps = context.options.scala_check_unnecessary_deps if self.check_missing_deps: JvmDependencyCache.init_product_requirements(self) # We use the scala_compile_color flag if it is explicitly set on the command line. self._color = \ context.options.scala_compile_color if context.options.scala_compile_color is not None else \ context.config.getbool('scala-compile', 'color', default=True) self._compile_profile = context.config.get('scala-compile', 'compile-profile') # The target scala version. self._zinc_profile = context.config.get('scala-compile', 'zinc-profile') plugins_profile = context.config.get('scala-compile', 'scalac-plugins-profile') self._zinc_classpath = nailgun_profile_classpath(self, self._zinc_profile) compiler_classpath = nailgun_profile_classpath(self, self._compile_profile) zinc_jars = ScalaCompile.identify_zinc_jars(compiler_classpath, self._zinc_classpath) self._zinc_jar_args = [] for (name, jarpath) in zinc_jars.items(): # The zinc jar names are also the flag names. self._zinc_jar_args.extend(['-%s' % name, jarpath]) self._plugin_jars = nailgun_profile_classpath(self, plugins_profile) if plugins_profile else [] # All scala targets implicitly depend on the selected scala runtime. scaladeps = [] for spec in context.config.getlist('scala-compile', 'scaladeps'): scaladeps.extend(context.resolve(spec)) for target in context.targets(is_scala): target.update_dependencies(scaladeps) self._workdir = context.config.get('scala-compile', 'workdir') if workdir is None else workdir self._classes_dir = os.path.join(self._workdir, 'classes') self._analysis_cache_dir = os.path.join(self._workdir, 'analysis_cache') self._resources_dir = os.path.join(self._workdir, 'resources') self._main = context.config.get('scala-compile', 'main') self._args = context.config.getlist('scala-compile', 'args') self._jvm_args = context.config.getlist('scala-compile', 'jvm_args') if context.options.scala_compile_warnings: self._args.extend(context.config.getlist('scala-compile', 'warning_args')) else: self._args.extend(context.config.getlist('scala-compile', 'no_warning_args')) # Allow multiple flags and also comma-separated values in a single flag. plugin_names = [p for val in context.options.plugins for p in val.split(',')] \ if context.options.plugins is not None \ else context.config.getlist('scala-compile', 'scalac-plugins', default=[]) plugin_args = context.config.getdict('scala-compile', 'scalac-plugin-args', default={}) active_plugins = ScalaCompile.find_plugins(plugin_names, self._plugin_jars) for name, jar in active_plugins.items(): self._args.append('-Xplugin:%s' % jar) for arg in plugin_args.get(name, []): self._args.append('-P:%s:%s' % (name, arg)) self._confs = context.config.getlist('scala-compile', 'confs') self._depfile_dir = os.path.join(self._workdir, 'depfiles') artifact_cache_spec = context.config.getlist('scala-compile', 'artifact_caches') self.setup_artifact_cache(artifact_cache_spec)
def __init__(self, context): NailgunTask.__init__(self, context, workdir=context.config.get( 'scala-compile', 'nailgun_dir')) # Set up the zinc utils. color = not context.options.no_color self._zinc_utils = ZincUtils(context=context, nailgun_task=self, color=color) # The rough number of source files to build in each compiler pass. self._partition_size_hint = ( context.options.scala_compile_partition_size_hint if context.options.scala_compile_partition_size_hint != -1 else context.config.getint( 'scala-compile', 'partition_size_hint', default=1000)) # Set up dep checking if needed. if context.options.scala_check_missing_deps: JvmDependencyCache.init_product_requirements(self) self._opts = context.config.getlist('scala-compile', 'args') if context.options.scala_compile_warnings: self._opts.extend( context.config.getlist('scala-compile', 'warning_args')) else: self._opts.extend( context.config.getlist('scala-compile', 'no_warning_args')) # Various output directories. workdir = context.config.get('scala-compile', 'workdir') self._classes_dir = os.path.join(workdir, 'classes') self._analysis_dir = os.path.join(workdir, 'analysis') safe_mkdir(self._classes_dir) safe_mkdir(self._analysis_dir) self._analysis_file = os.path.join(self._analysis_dir, 'global_analysis.valid') self._invalid_analysis_file = os.path.join(self._analysis_dir, 'global_analysis.invalid') self._resources_dir = os.path.join(workdir, 'resources') # The ivy confs for which we're building. self._confs = context.config.getlist('scala-compile', 'confs') self.context.products.require_data('exclusives_groups') self._local_artifact_cache_spec = \ context.config.getlist('scala-compile', 'local_artifact_caches2', default=[]) self._remote_artifact_cache_spec = \ context.config.getlist('scala-compile', 'remote_artifact_caches2', default=[]) # A temporary, but well-known, dir to munge analysis files in before caching. It must be # well-known so we know where to find the files when we retrieve them from the cache. self._analysis_tmpdir = os.path.join(self._analysis_dir, 'artifact_cache_tmpdir') # If we are compiling scala libraries with circular deps on java libraries we need to make sure # those cycle deps are present. self._inject_java_cycles() # Sources present in the last analysis that have since been deleted. # Generated lazily, so do not access directly. Call self._get_deleted_sources(). self._deleted_sources = None