Use rake-compiler

This commit is contained in:
Sami Samhuri 2022-01-16 21:52:08 -08:00
parent 0795eb3f91
commit 405e52c60c
No known key found for this signature in database
GPG key ID: 4B4195422742FC16
5 changed files with 13 additions and 12 deletions

2
.gitignore vendored
View file

@ -9,5 +9,5 @@
/tmp/ /tmp/
ext/**/Makefile ext/**/Makefile
ext/**/*.o ext/**/*.o
ext/**/*.bundle **/wordexp*.bundle
*.gem *.gem

View file

@ -5,6 +5,7 @@ gem 'minitest', '~> 5.11'
gem 'minitest-ci', '~> 3.4' gem 'minitest-ci', '~> 3.4'
gem 'minitest-reporters', '~> 1.3' gem 'minitest-reporters', '~> 1.3'
gem 'rake', '~> 13.0' gem 'rake', '~> 13.0'
gem 'rake-compiler', '~> 1.1'
gem 'rubocop', '1.24.1' gem 'rubocop', '1.24.1'
gem 'rubocop-minitest', '0.17.0' gem 'rubocop-minitest', '0.17.0'
gem 'rubocop-packaging', '0.5.1' gem 'rubocop-packaging', '0.5.1'

View file

@ -22,6 +22,8 @@ GEM
ast (~> 2.4.1) ast (~> 2.4.1)
rainbow (3.1.1) rainbow (3.1.1)
rake (13.0.6) rake (13.0.6)
rake-compiler (1.1.7)
rake
regexp_parser (2.2.0) regexp_parser (2.2.0)
rexml (3.2.5) rexml (3.2.5)
rubocop (1.24.1) rubocop (1.24.1)
@ -55,6 +57,7 @@ DEPENDENCIES
minitest-ci (~> 3.4) minitest-ci (~> 3.4)
minitest-reporters (~> 1.3) minitest-reporters (~> 1.3)
rake (~> 13.0) rake (~> 13.0)
rake-compiler (~> 1.1)
rubocop (= 1.24.1) rubocop (= 1.24.1)
rubocop-minitest (= 0.17.0) rubocop-minitest (= 0.17.0)
rubocop-packaging (= 0.5.1) rubocop-packaging (= 0.5.1)

View file

@ -1,19 +1,16 @@
require 'bundler/gem_tasks' require 'bundler/gem_tasks'
require 'English' require 'English'
require 'open3' require 'open3'
require 'rake/extensiontask'
require 'rake/testtask' require 'rake/testtask'
require 'rubocop/rake_task' require 'rubocop/rake_task'
task :compile do task :clean do
puts 'Compiling C extension' `cd ext/wordexp_ext && make clean && rm -f Makefile`
# ignore clean failure because the Makefile may not exist yet end
cmd = 'cd ext/wordexp_ext && (make clean || true) && ruby extconf.rb && make'
out, status = Open3.capture2e(cmd) Rake::ExtensionTask.new 'wordexp_ext' do |ext|
unless status.success? ext.lib_dir = 'lib/wordexp'
warn out
raise 'Failed to compile native extension'
end
puts 'Done'
end end
Rake::TestTask.new(test: :compile) do |t| Rake::TestTask.new(test: :compile) do |t|

View file

@ -1,4 +1,4 @@
require 'wordexp_ext/wordexp_ext' require 'wordexp/wordexp_ext'
module Wordexp module Wordexp
autoload :CLI, 'wordexp/cli' autoload :CLI, 'wordexp/cli'