Sha256: ff6f5ca0d46f4c4bc9e123b2bfa26c21aee4eb191cc7c31d4c47dcfc734cb088

Contents?: true

Size: 1.28 KB

Versions: 2

Compression:

Stored size: 1.28 KB

Contents

require "mini_portile2"
require "pathname"

module LibarchiveBinary
  class LibarchiveRecipe < MiniPortile
    ROOT = Pathname.new(File.expand_path("../..", __dir__))

    def initialize
      super("libarchive", "3.5.1")

      @files << {
        url: "https://www.libarchive.org/downloads/libarchive-3.5.1.tar.gz",
        sha256: "9015d109ec00bb9ae1a384b172bf2fc1dff41e2c66e5a9eeddf933af9db37f5a"
      }

      @target = ROOT.join(@target).to_s
    end

    def configure_defaults
      [
        "--host=#{@host}",
        "--disable-static",
        "--enable-shared",
      ]
    end

    def cook_if_not
      checkpoint_file = "#{self.name}-#{self.version}-#{self.host}.installed"
      checkpoint = File.join(@target, checkpoint_file)
      return if File.exist?(checkpoint)

      cook
      FileUtils.touch(checkpoint)
    end

    def patch
      super

      FileUtils.cp(Dir.glob(ROOT.join("updates", "config.*").to_s),
                   File.join(work_path, "build", "autoconf"))
    end

    def install
      super

      libs = Dir.glob(File.join(port_path, "{lib,bin}", "*"))
        .grep(/\/(?:lib)?[a-zA-Z0-9\-]+\.(?:so|dylib|dll)$/)
      FileUtils.cp_r(libs, ROOT.join("lib", "ffi-libarchive-binary"), verbose: true)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ffi-libarchive-binary-0.2.1-x86-mingw32 lib/ffi-libarchive-binary/libarchive_recipe.rb
ffi-libarchive-binary-0.2.1-x64-mingw32 lib/ffi-libarchive-binary/libarchive_recipe.rb