Sha256: be5de76e65ceddfcf8700b1fca9b7babf7966c6d68d31e15ecc776300f83a198

Contents?: true

Size: 1.23 KB

Versions: 5

Compression:

Stored size: 1.23 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

5 entries across 5 versions & 1 rubygems

Version Path
ffi-libarchive-binary-0.2.1 lib/ffi-libarchive-binary/libarchive_recipe.rb
ffi-libarchive-binary-0.2.1-x86_64-linux lib/ffi-libarchive-binary/libarchive_recipe.rb
ffi-libarchive-binary-0.2.1-x86_64-darwin lib/ffi-libarchive-binary/libarchive_recipe.rb
ffi-libarchive-binary-0.2.1-x86-linux lib/ffi-libarchive-binary/libarchive_recipe.rb
ffi-libarchive-binary-0.2.1-arm64-darwin lib/ffi-libarchive-binary/libarchive_recipe.rb