require File.expand_path('../../lib/rdkafka/version', __FILE__) require "mini_portile2" require "fileutils" task :default => :clean do # Download and compile librdkafka recipe = MiniPortile.new("librdkafka", Rdkafka::LIBRDKAFKA_VERSION) recipe.files = ["https://github.com/edenhill/librdkafka/archive/v#{Rdkafka::LIBRDKAFKA_VERSION}.tar.gz"] 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 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 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") FileUtils.rm_rf File.join(File.dirname(__FILE__), "ports") FileUtils.rm_rf File.join(File.dirname(__FILE__), "tmp") end