Class ClangWindowsArchiver

  • All Implemented Interfaces:
    AddsToRuleKey, Tool, Archiver

    public class ClangWindowsArchiver
    extends DelegatingTool
    implements Archiver
    Archiver implementation for the Clang for Windows toolchain.

    The implementation currently is only suitable for generating .lib archives for Windows-targeted builds, for ingestion by either link.exe or lld-link.exe. If used with lld-link.exe, thin archives are an option. link.exe cannot ingest thin archives generated with this tool.

    • Constructor Detail

      • ClangWindowsArchiver

        public ClangWindowsArchiver​(Tool tool)
    • Method Detail

      • getArchiveOptions

        public com.google.common.collect.ImmutableList<String> getArchiveOptions​(boolean isThinArchive)
        Specified by:
        getArchiveOptions in interface Archiver
      • outputArgs

        public com.google.common.collect.ImmutableList<String> outputArgs​(String outputPath)
        Specified by:
        outputArgs in interface Archiver
      • isArgfileRequired

        public boolean isArgfileRequired()
        Description copied from interface: Archiver
        Whether an argfile is required for a long command line (false means that it is possible to split a long command line into chunks). Eg, ar on *nix allows to add new files to an already created archive, but doesn't accept argfiles. On the contrary, VS lib.exe on windows always overrides the previous archive, but supports argfiles.
        Specified by:
        isArgfileRequired in interface Archiver
        Returns:
        whether @argfile is required for a long command line