Sha256: 8b5ecb1719d84dc282c40489c770c57dfdbcb50924b8819848f9f67f29fd72f8

Contents?: true

Size: 1.36 KB

Versions: 1

Compression:

Stored size: 1.36 KB

Contents

require "mkmf"

require 'net/http'

LIBDIR     = RbConfig::CONFIG['libdir']
INCLUDEDIR = RbConfig::CONFIG['includedir']

HEADER_DIRS = [INCLUDEDIR]

LIB_DIRS = [LIBDIR, File.expand_path(File.join(File.dirname(__FILE__), "lib"))]

COMMIT = "da04b96"

# TODO: this is not very accurate, but it works for now
OS = RUBY_PLATFORM.include?("darwin") ? "mac" : "linux"
ARCH = RUBY_PLATFORM.include?("arm64") ? "arm64" : "amd64"

PREFIX = "/static-libs/#{COMMIT}/#{OS}-#{ARCH}"

ROOT = File.expand_path("..", __FILE__)

Net::HTTP.start("dl.pyroscope.io", 443, :use_ssl => true) do |http|
  res1 = http.get(PREFIX+"/libpyroscope.rbspy.a")
  raise "HTTP error: #{res1.code}" unless res1.code == "200"
  lib1 = res1.body
  File.binwrite(File.join(ROOT, "lib/libpyroscope.rbspy.a"), lib1)

  res2 = http.get(PREFIX+"/librustdeps.a")
  raise "HTTP error: #{res2.code}" unless res2.code == "200"
  lib2 = res2.body
  File.binwrite(File.join(ROOT, "lib/librustdeps.a"), lib2)
end

# system "cp /Users/dmitry/Dev/ps/pyroscope/out/libpyroscope.rbspy.a #{File.join(ROOT, "lib/libpyroscope.rbspy.a")}"
# system "cp /Users/dmitry/Dev/ps/pyroscope/third_party/rustdeps/target/release/librustdeps.a #{File.join(ROOT, "lib/librustdeps.a")}"

dir_config('pyroscope', HEADER_DIRS, LIB_DIRS)

libs = ['-lpyroscope.rbspy', '-lrustdeps']
libs.each do |lib|
  $LOCAL_LIBS << "#{lib} "
end

create_makefile('pyroscope_c')

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pyroscope-0.0.5 ext/pyroscope/extconf.rb