ext/Rakefile in rdkafka-0.12.1 vs ext/Rakefile in rdkafka-0.13.0.beta.1
- old
+ new
@@ -1,68 +1,41 @@
# frozen_string_literal: true
require File.expand_path('../../lib/rdkafka/version', __FILE__)
+require "mini_portile2"
require "fileutils"
require "open-uri"
task :default => :clean do
- # For nix users, nix can't locate the file paths because the packages it's requiring aren't managed by the system but are
- # managed by nix itself, so using the normal file paths doesn't work for nix users.
- #
- # Mini_portile causes an issue because it's dependencies are downloaded on the fly and therefore don't exist/aren't
- # accessible in the nix environment
- if ENV.fetch('RDKAFKA_EXT_PATH', '').empty?
- # Download and compile librdkafka if RDKAFKA_EXT_PATH is not set
- require "mini_portile2"
- recipe = MiniPortile.new("librdkafka", Rdkafka::LIBRDKAFKA_VERSION)
+ # Download and compile librdkafka
+ recipe = MiniPortile.new("librdkafka", Rdkafka::LIBRDKAFKA_VERSION)
- # Use default homebrew openssl if we're on mac and the directory exists
- # and each of flags is not empty
- if recipe.host&.include?("darwin") && system("which brew &> /dev/null") && Dir.exist?("#{homebrew_prefix = %x(brew --prefix openssl).strip}")
- ENV["CPPFLAGS"] = "-I#{homebrew_prefix}/include" unless ENV["CPPFLAGS"]
- ENV["LDFLAGS"] = "-L#{homebrew_prefix}/lib" unless ENV["LDFLAGS"]
- end
+ # Use default homebrew openssl if we're on mac and the directory exists
+ # and each of flags is not empty
+ if recipe.host&.include?("darwin") && system("which brew &> /dev/null") && Dir.exist?("#{homebrew_prefix = %x(brew --prefix openssl).strip}")
+ ENV["CPPFLAGS"] = "-I#{homebrew_prefix}/include" unless ENV["CPPFLAGS"]
+ ENV["LDFLAGS"] = "-L#{homebrew_prefix}/lib" unless ENV["LDFLAGS"]
+ end
- releases = File.expand_path(File.join(File.dirname(__FILE__), '../dist'))
-
- recipe.files << {
- :url => "file://#{releases}/librdkafka_#{Rdkafka::LIBRDKAFKA_VERSION}.tar.gz",
- :sha256 => Rdkafka::LIBRDKAFKA_SOURCE_SHA256
- }
- recipe.configure_options = ["--host=#{recipe.host}"]
-
- # Disable using libc regex engine in favor of the embedded one
- # The default regex engine of librdkafka does not always work exactly as most of the users
- # would expect, hence this flag allows for changing it to the other one
- if ENV.key?('RDKAFKA_DISABLE_REGEX_EXT')
- recipe.configure_options << '--disable-regex-ext'
- end
-
- recipe.cook
- # Move dynamic library we're interested in
- if recipe.host.include?('darwin')
- from_extension = '1.dylib'
- to_extension = 'dylib'
- else
- from_extension = 'so.1'
- to_extension = 'so'
- end
- lib_path = File.join(File.dirname(__FILE__), "ports/#{recipe.host}/librdkafka/#{Rdkafka::LIBRDKAFKA_VERSION}/lib/librdkafka.#{from_extension}")
- FileUtils.mv(lib_path, File.join(File.dirname(__FILE__), "librdkafka.#{to_extension}"))
- # Cleanup files created by miniportile we don't need in the gem
- FileUtils.rm_rf File.join(File.dirname(__FILE__), "tmp")
- FileUtils.rm_rf File.join(File.dirname(__FILE__), "ports")
+ recipe.files << {
+ :url => "https://codeload.github.com/edenhill/librdkafka/tar.gz/v#{Rdkafka::LIBRDKAFKA_VERSION}",
+ :sha256 => Rdkafka::LIBRDKAFKA_SOURCE_SHA256
+ }
+ recipe.configure_options = ["--host=#{recipe.host}"]
+ recipe.cook
+ # Move dynamic library we're interested in
+ if recipe.host.include?('darwin')
+ from_extension = '1.dylib'
+ to_extension = 'dylib'
else
- # Otherwise, copy existing libraries to ./ext
- if ENV['RDKAFKA_EXT_PATH'].nil? || ENV['RDKAFKA_EXT_PATH'].empty?
- raise "RDKAFKA_EXT_PATH must be set in your nix config when running under nix"
- end
- files = [
- File.join(ENV['RDKAFKA_EXT_PATH'], 'lib', 'librdkafka.dylib'),
- File.join(ENV['RDKAFKA_EXT_PATH'], 'lib', 'librdkafka.so')
- ]
- files.each { |ext| FileUtils.cp(ext, File.dirname(__FILE__)) if File.exist?(ext) }
+ from_extension = 'so.1'
+ to_extension = 'so'
end
+ lib_path = File.join(File.dirname(__FILE__), "ports/#{recipe.host}/librdkafka/#{Rdkafka::LIBRDKAFKA_VERSION}/lib/librdkafka.#{from_extension}")
+ FileUtils.mv(lib_path, File.join(File.dirname(__FILE__), "librdkafka.#{to_extension}"))
+ # Cleanup files created by miniportile we don't need in the gem
+ FileUtils.rm_rf File.join(File.dirname(__FILE__), "tmp")
+ FileUtils.rm_rf File.join(File.dirname(__FILE__), "ports")
end
task :clean do
FileUtils.rm_f File.join(File.dirname(__FILE__), "librdkafka.dylib")
FileUtils.rm_f File.join(File.dirname(__FILE__), "librdkafka.so")