Class PublicOutputPath

  • All Implemented Interfaces:
    AddsToRuleKey

    public class PublicOutputPath
    extends OutputPath
    Used for an output path that is not contained within a rule's unique output directories. Typically used for an output that is in the root directory shared with other files in the same BUCK file. This should be used sparingly.

    An example is a cxx_binary with target //some/package:my_binary. As a non-ModernBuildRule, the binary will be placed at buck-out/gen/some/package/my_binary. Without PublicOutputPath, ModernBuildRule outputs are all forced into a unique directory not shared with any other target and so the output would be changed to buck-out/gen/some/package/my_binary__/my_binary. PublicOutputPath just allows MBR to have outputs outside of that rule-specific directory, mostly to maintain previous behavior as things are migrated (but in some limited cases we may keep them as public long-term).

    • Constructor Detail

      • PublicOutputPath

        public PublicOutputPath​(Path path)