File tree Expand file tree Collapse file tree 3 files changed +25
-8
lines changed Expand file tree Collapse file tree 3 files changed +25
-8
lines changed Original file line number Diff line number Diff line change 1
- begin
2
- require 'bundler/gem_tasks'
3
- rescue LoadError
4
- puts 'Cannot load bundler/gem_tasks'
5
- end
1
+ require 'bundler/gem_tasks'
6
2
7
3
task default : :test
8
4
9
5
require 'rake/extensiontask'
10
- Rake ::ExtensionTask . new do |ext |
6
+ gem_spec = Gem ::Specification . load ( "sassc.gemspec" )
7
+ Rake ::ExtensionTask . new ( 'libsass' , gem_spec ) do |ext |
11
8
ext . name = 'libsass'
12
9
ext . ext_dir = 'ext'
13
10
ext . lib_dir = 'lib/sassc'
11
+ ext . cross_compile = true
12
+ ext . cross_platform = %w[ x86-mingw32 x64-mingw32 x86-linux x86_64-linux ]
13
+ ext . cross_compiling do |spec |
14
+ spec . files . reject! { |path | File . fnmatch? ( 'ext/*' , path ) }
15
+ end
16
+ end
17
+
18
+ desc 'Compile all native gems via rake-compiler-dock (Docker)'
19
+ task 'gem:native' do
20
+ require 'rake_compiler_dock'
21
+ RakeCompilerDock . sh "bundle && gem i rake --no-document && " \
22
+ "rake cross native gem MAKE='nice make -j`nproc`' " \
23
+ "RUBY_CC_VERSION=2.6.0:2.5.0:2.4.0:2.3.0"
14
24
end
15
25
16
26
desc "Run all tests"
Original file line number Diff line number Diff line change @@ -8,7 +8,13 @@ module Native
8
8
9
9
spec = Gem . loaded_specs [ "sassc" ]
10
10
gem_root = spec . gem_dir
11
- ffi_lib "#{ gem_root } /lib/sassc/libsass.so"
11
+
12
+ ruby_version_so_path = "#{ gem_root } /lib/sassc/#{ RUBY_VERSION [ /\d +.\d +/ ] } /libsass.so"
13
+ if File . exist? ( ruby_version_so_path )
14
+ ffi_lib ruby_version_so_path
15
+ else
16
+ ffi_lib "#{ gem_root } /lib/sassc/libsass.so"
17
+ end
12
18
13
19
require_relative "native/sass_value"
14
20
Original file line number Diff line number Diff line change @@ -31,9 +31,10 @@ Gem::Specification.new do |spec|
31
31
spec . add_development_dependency "test_construct"
32
32
spec . add_development_dependency "pry"
33
33
spec . add_development_dependency "bundler"
34
+ spec . add_development_dependency "rake"
34
35
spec . add_development_dependency "rake-compiler"
36
+ spec . add_development_dependency "rake-compiler-dock"
35
37
36
- spec . add_dependency "rake"
37
38
spec . add_dependency "ffi" , "~> 1.9"
38
39
39
40
gem_dir = File . expand_path ( File . dirname ( __FILE__ ) ) + "/"
You can’t perform that action at this time.
0 commit comments