Sha256: 76ed8ad3e48d188d663c5fa625aaddf5a9e313d9016f0a28b9dc98dc23004cac

Contents?: true

Size: 1.55 KB

Versions: 16

Compression:

Stored size: 1.55 KB

Contents

# frozen_string_literal: true

require "bundler/gem_tasks"
require "rspec/core/rake_task"

RSpec::Core::RakeTask.new(:spec)

require "rubocop/rake_task"

RuboCop::RakeTask.new

task default: %i[spec rubocop]

task :compile do
  require_relative "ext/extconf"
end
task spec: :compile

desc "Build install-compilation gem"
task "gem:native:any" do
  sh "rake platform:any gem"
end

require "rubygems/package_task"

desc "Define the gem task to build on any platform (compile on install)"
task "platform:any" do
  spec = Gem::Specification::load("emf2svg.gemspec").dup
  task = Gem::PackageTask.new(spec)
  task.define
end

platforms = [
  "x64-mingw32",
  "x64-mingw-ucrt",
  "x86_64-linux",
  "aarch64-linux",
  "x86_64-darwin",
  "arm64-darwin",
]

platforms.each do |platform|
  desc "Build pre-compiled gem for the #{platform} platform"
  task "gem:native:#{platform}" do
    sh "rake compile platform:#{platform} gem target_platform=#{platform}"
  end

  desc "Define the gem task to build on the #{platform} platform (binary gem)"
  task "platform:#{platform}" do
    spec = Gem::Specification::load("emf2svg.gemspec").dup
    spec.platform = Gem::Platform.new(platform)
    spec.files += Dir.glob("lib/emf2svg/*.{dll,so,dylib}")
    spec.extensions = []
    spec.dependencies.reject! { |d| d.name == "mini_portile2" }

    task = Gem::PackageTask.new(spec)
    task.define
  end
end

require "rake/clean"

CLOBBER.include("pkg")
CLEAN.include("ports",
              "tmp",
              "lib/emf2svg/*.dll",
              "lib/emf2svg/*.dylib",
              "lib/emf2svg/*.so")

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
emf2svg-1.4.1 Rakefile
emf2svg-1.4.1-x86_64-linux Rakefile
emf2svg-1.4.1-x86_64-darwin Rakefile
emf2svg-1.4.1-arm64-darwin Rakefile
emf2svg-1.4.1-aarch64-linux Rakefile
emf2svg-1.4.0 Rakefile
emf2svg-1.4.0-x86_64-linux Rakefile
emf2svg-1.4.0-x86_64-darwin Rakefile
emf2svg-1.4.0-arm64-darwin Rakefile
emf2svg-1.4.0-aarch64-linux Rakefile
emf2svg-1.3.1 Rakefile
emf2svg-1.3.1-x86_64-linux Rakefile
emf2svg-1.3.1-x86_64-darwin Rakefile
emf2svg-1.3.1-arm64-darwin Rakefile
emf2svg-1.3.1-aarch64-linux Rakefile
emf2svg-1.3.0-aarch64-linux Rakefile