KitaitiMakoto commited on
Commit
7895d75
·
unverified ·
1 Parent(s): b9f5e40

ruby : Follow source tree change (#2580)

Browse files

* Follow whisper.cpp source tree change

* Update whispercpp.gemspec

* Follow whisper.cpp log level change

* Fix paths in GitHub workflow for Ruby bindings

* Use GitHub workflow setting for dependency definition

* Use ternary operator

.github/workflows/bindings-ruby.yml CHANGED
@@ -3,61 +3,41 @@ on:
3
  push:
4
  paths:
5
  - bindings/ruby/**
6
- - src/whisper.cpp
7
- - include/whisper.h
8
- - ggml/src/ggml.c
9
- - ggml/src/ggml-impl.h
10
- - ggml/src/ggml-aarch64.h
11
- - ggml/src/ggml-aarch64.c
12
- - ggml/src/ggml-alloc.c
13
- - ggml/src/ggml-backend-impl.h
14
- - ggml/src/ggml-backend.cpp
15
- - ggml/src/ggml-common.h
16
- - ggml/src/ggml-quants.h
17
- - ggml/src/ggml-quants.c
18
- - ggml/src/ggml-cpu-impl.h
19
- - ggml/src/ggml-metal.m
20
- - ggml/src/ggml-metal.metal
21
- - ggml/src/ggml-blas.cpp
22
- - ggml/include/ggml.h
23
- - ggml/include/ggml-alloc.h
24
- - ggml/include/ggml-backend.h
25
- - ggml/include/ggml-cuda.h
26
- - ggml/include/ggml-kompute.h
27
- - ggml/include/ggml-metal.h
28
- - ggml/include/ggml-sycl.h
29
- - ggml/include/ggml-vulkan.h
30
- - ggml/include/ggml-blas.h
31
  - scripts/get-flags.mk
32
  - examples/dr_wav.h
33
  pull_request:
34
  paths:
35
  - bindings/ruby/**
36
- - src/whisper.cpp
37
- - include/whisper.h
38
- - ggml/src/ggml.c
39
- - ggml/src/ggml-impl.h
40
- - ggml/src/ggml-aarch64.h
41
- - ggml/src/ggml-aarch64.c
42
- - ggml/src/ggml-alloc.c
43
- - ggml/src/ggml-backend-impl.h
44
- - ggml/src/ggml-backend.cpp
45
- - ggml/src/ggml-common.h
46
- - ggml/src/ggml-quants.h
47
- - ggml/src/ggml-quants.c
48
- - ggml/src/ggml-cpu-impl.h
49
- - ggml/src/ggml-metal.m
50
- - ggml/src/ggml-metal.metal
51
- - ggml/src/ggml-blas.cpp
52
- - ggml/include/ggml.h
53
- - ggml/include/ggml-alloc.h
54
- - ggml/include/ggml-backend.h
55
- - ggml/include/ggml-cuda.h
56
- - ggml/include/ggml-kompute.h
57
- - ggml/include/ggml-metal.h
58
- - ggml/include/ggml-sycl.h
59
- - ggml/include/ggml-vulkan.h
60
- - ggml/include/ggml-blas.h
61
  - scripts/get-flags.mk
62
  - examples/dr_wav.h
63
 
 
3
  push:
4
  paths:
5
  - bindings/ruby/**
6
+ - src/**/*.c
7
+ - src/**/*.cpp
8
+ - src/**/*.h
9
+ - src/**/*.m
10
+ - src/**/*.metal
11
+ - include/**/*.c
12
+ - include/**/*.cpp
13
+ - include/**/*.h
14
+ - include/**/*.m
15
+ - include/**/*.metal
16
+ - ggml/**/*.c
17
+ - ggml/**/*.cpp
18
+ - ggml/**/*.h
19
+ - ggml/**/*.m
20
+ - ggml/**/*.metal
 
 
 
 
 
 
 
 
 
 
21
  - scripts/get-flags.mk
22
  - examples/dr_wav.h
23
  pull_request:
24
  paths:
25
  - bindings/ruby/**
26
+ - src/**/*.c
27
+ - src/**/*.cpp
28
+ - src/**/*.h
29
+ - src/**/*.m
30
+ - src/**/*.metal
31
+ - include/**/*.c
32
+ - include/**/*.cpp
33
+ - include/**/*.h
34
+ - include/**/*.m
35
+ - include/**/*.metal
36
+ - ggml/**/*.c
37
+ - ggml/**/*.cpp
38
+ - ggml/**/*.h
39
+ - ggml/**/*.m
40
+ - ggml/**/*.metal
 
 
 
 
 
 
 
 
 
 
41
  - scripts/get-flags.mk
42
  - examples/dr_wav.h
43
 
bindings/ruby/Rakefile CHANGED
@@ -1,20 +1,22 @@
1
  require 'rake/clean'
2
  require "bundler/gem_tasks"
3
- require "pathname"
4
- require "yaml"
5
  require "rake/testtask"
 
6
 
7
- extsources = YAML.load_file("extsources.yaml")
8
  SOURCES = FileList[]
9
- extsources.each do |src|
 
10
  basename = src.pathmap("%f")
11
- dest = basename == "LICENSE" ? basename : basename.pathmap("ext/%f")
 
12
  file src
13
- file dest => src do |t|
 
14
  cp t.source, t.name
15
  end
16
  SOURCES.include dest
17
  end
 
18
  CLEAN.include SOURCES
19
  CLEAN.include FileList[
20
  "ext/*.o",
 
1
  require 'rake/clean'
2
  require "bundler/gem_tasks"
 
 
3
  require "rake/testtask"
4
+ require_relative "extsources"
5
 
 
6
  SOURCES = FileList[]
7
+
8
+ EXTSOURCES.each do |src|
9
  basename = src.pathmap("%f")
10
+ dest = basename == "LICENSE" ? basename : src.pathmap("%{../..,ext}p")
11
+ dir = dest.pathmap("%d")
12
  file src
13
+ directory dir
14
+ file dest => [src, dir] do |t|
15
  cp t.source, t.name
16
  end
17
  SOURCES.include dest
18
  end
19
+
20
  CLEAN.include SOURCES
21
  CLEAN.include FileList[
22
  "ext/*.o",
bindings/ruby/ext/.gitignore CHANGED
@@ -1,35 +1,14 @@
1
  Makefile
2
- ggml.c
3
- ggml.h
4
- ggml-alloc.c
5
- ggml-alloc.h
6
- ggml-aarch64.c
7
- ggml-aarch64.h
8
- ggml-backend.cpp
9
- ggml-backend-impl.h
10
- ggml-backend.c
11
- ggml-backend.h
12
- ggml-common.h
13
- ggml-cpu-impl.h
14
- ggml-metal.m
15
- ggml-metal.metal
16
- ggml-metal-embed.metal
17
- ggml-blas.cpp
18
- ggml-cuda.h
19
- ggml-impl.h
20
- ggml-kompute.h
21
- ggml-metal.h
22
- ggml-opencl.h
23
- ggml-quants.c
24
- ggml-quants.h
25
- ggml-sycl.h
26
- ggml-vulkan.h
27
- ggml-blas.h
28
- get-flags.mk
29
- whisper.cpp
30
- whisper.h
31
- dr_wav.h
32
- depend
33
- whisper.bundle
34
  whisper.so
 
35
  whisper.dll
 
 
 
 
 
 
 
 
 
 
 
1
  Makefile
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  whisper.so
3
+ whisper.bundle
4
  whisper.dll
5
+ depend
6
+ scripts/get-flags.mk
7
+ *.o
8
+ *.c
9
+ *.cpp
10
+ *.h
11
+ *.m
12
+ *.metal
13
+ !ruby_whisper.cpp
14
+ !ruby_whisper.h
bindings/ruby/ext/cpu.mk ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ ggml/src/ggml-cpu/ggml-cpu-cpp.o: \
2
+ ggml/src/ggml-cpu/ggml-cpu.cpp \
3
+ ggml/include/ggml-backend.h \
4
+ ggml/include/ggml.h \
5
+ ggml/include/ggml-alloc.h \
6
+ ggml/src/ggml-backend-impl.h \
7
+ ggml/include/ggml-cpu.h \
8
+ ggml/src/ggml-impl.h
9
+ $(CXX) $(CXXFLAGS) -c $< -o $@
bindings/ruby/ext/extconf.rb CHANGED
@@ -35,7 +35,7 @@ if $GGML_METAL
35
  $GGML_METAL_EMBED_LIBRARY = true
36
  end
37
 
38
- $MK_CPPFLAGS = ''
39
  $MK_CFLAGS = '-std=c11 -fPIC'
40
  $MK_CXXFLAGS = '-std=c++11 -fPIC'
41
  $MK_NVCCFLAGS = '-std=c++11'
@@ -123,11 +123,11 @@ end
123
 
124
  unless ENV['GGML_NO_ACCELERATE']
125
  if $UNAME_S == 'Darwin'
126
- $MK_CPPFLAGS << ' -DGGML_USE_ACCELERATE -DGGML_USE_BLAS'
127
  $MK_CPPFLAGS << ' -DACCELERATE_NEW_LAPACK'
128
  $MK_CPPFLAGS << ' -DACCELERATE_LAPACK_ILP64'
129
  $MK_LDFLAGS << ' -framework Accelerate'
130
- $OBJ_GGML << 'ggml-blas.o'
131
  end
132
  end
133
 
@@ -135,20 +135,20 @@ if ENV['GGML_OPENBLAS']
135
  $MK_CPPFLAGS << " -DGGML_USE_BLAS #{`pkg-config --cflags-only-I openblas`.chomp}"
136
  $MK_CFLAGS << " #{`pkg-config --cflags-only-other openblas)`.chomp}"
137
  $MK_LDFLAGS << " #{`pkg-config --libs openblas`}"
138
- $OBJ_GGML << 'ggml-blas.o'
139
  end
140
 
141
  if ENV['GGML_OPENBLAS64']
142
  $MK_CPPFLAGS << " -DGGML_USE_BLAS #{`pkg-config --cflags-only-I openblas64`.chomp}"
143
  $MK_CFLAGS << " #{`pkg-config --cflags-only-other openblas64)`.chomp}"
144
  $MK_LDFLAGS << " #{`pkg-config --libs openblas64`}"
145
- $OBJ_GGML << 'ggml-blas.o'
146
  end
147
 
148
  if $GGML_METAL
149
  $MK_CPPFLAGS << ' -DGGML_USE_METAL'
150
  $MK_LDFLAGS << ' -framework Foundation -framework Metal -framework MetalKit'
151
- $OBJ_GGML << 'ggml-metal.o'
152
 
153
  if ENV['GGML_METAL_NDEBUG']
154
  $MK_CPPFLAGS << ' -DGGML_METAL_NDEBUG'
@@ -156,20 +156,26 @@ if $GGML_METAL
156
 
157
  if $GGML_METAL_EMBED_LIBRARY
158
  $MK_CPPFLAGS << ' -DGGML_METAL_EMBED_LIBRARY'
159
- $OBJ_GGML << 'ggml-metal-embed.o'
160
  end
161
  end
162
 
163
  $OBJ_GGML <<
164
- 'ggml.o' <<
165
- 'ggml-cpu.o' <<
166
- 'ggml-alloc.o' <<
167
- 'ggml-backend.o' <<
168
- 'ggml-quants.o' <<
169
- 'ggml-aarch64.o'
 
 
 
 
 
 
170
 
171
  $OBJ_WHISPER <<
172
- 'whisper.o'
173
 
174
  $objs = $OBJ_GGML + $OBJ_WHISPER + $OBJ_COMMON + $OBJ_SDL
175
  $objs << "ruby_whisper.o"
@@ -184,9 +190,12 @@ $LDFLAGS = "#{$MK_LDFLAGS} #{$LDFLAGS}"
184
  create_makefile('whisper')
185
 
186
  File.open 'Makefile', 'a' do |file|
187
- file.puts 'include get-flags.mk'
 
188
 
189
  if $GGML_METAL
 
 
190
  if $GGML_METAL_EMBED_LIBRARY
191
  file.puts 'include metal-embed.mk'
192
  end
 
35
  $GGML_METAL_EMBED_LIBRARY = true
36
  end
37
 
38
+ $MK_CPPFLAGS = '-Iggml/include -Iggml/src -Iinclude -Isrc -Iexamples'
39
  $MK_CFLAGS = '-std=c11 -fPIC'
40
  $MK_CXXFLAGS = '-std=c++11 -fPIC'
41
  $MK_NVCCFLAGS = '-std=c++11'
 
123
 
124
  unless ENV['GGML_NO_ACCELERATE']
125
  if $UNAME_S == 'Darwin'
126
+ $MK_CPPFLAGS << ' -DGGML_USE_ACCELERATE -DGGML_USE_BLAS -DGGML_BLAS_USE_ACCELERATE'
127
  $MK_CPPFLAGS << ' -DACCELERATE_NEW_LAPACK'
128
  $MK_CPPFLAGS << ' -DACCELERATE_LAPACK_ILP64'
129
  $MK_LDFLAGS << ' -framework Accelerate'
130
+ $OBJ_GGML << 'ggml/src/ggml-blas/ggml-blas.o'
131
  end
132
  end
133
 
 
135
  $MK_CPPFLAGS << " -DGGML_USE_BLAS #{`pkg-config --cflags-only-I openblas`.chomp}"
136
  $MK_CFLAGS << " #{`pkg-config --cflags-only-other openblas)`.chomp}"
137
  $MK_LDFLAGS << " #{`pkg-config --libs openblas`}"
138
+ $OBJ_GGML << 'ggml/src/ggml-blas/ggml-blas.o'
139
  end
140
 
141
  if ENV['GGML_OPENBLAS64']
142
  $MK_CPPFLAGS << " -DGGML_USE_BLAS #{`pkg-config --cflags-only-I openblas64`.chomp}"
143
  $MK_CFLAGS << " #{`pkg-config --cflags-only-other openblas64)`.chomp}"
144
  $MK_LDFLAGS << " #{`pkg-config --libs openblas64`}"
145
+ $OBJ_GGML << 'ggml/src/ggml-blas/ggml-blas.o'
146
  end
147
 
148
  if $GGML_METAL
149
  $MK_CPPFLAGS << ' -DGGML_USE_METAL'
150
  $MK_LDFLAGS << ' -framework Foundation -framework Metal -framework MetalKit'
151
+ $OBJ_GGML << 'ggml/src/ggml-metal/ggml-metal.o'
152
 
153
  if ENV['GGML_METAL_NDEBUG']
154
  $MK_CPPFLAGS << ' -DGGML_METAL_NDEBUG'
 
156
 
157
  if $GGML_METAL_EMBED_LIBRARY
158
  $MK_CPPFLAGS << ' -DGGML_METAL_EMBED_LIBRARY'
159
+ $OBJ_GGML << 'ggml/src/ggml-metal/ggml-metal-embed.o'
160
  end
161
  end
162
 
163
  $OBJ_GGML <<
164
+ 'ggml/src/ggml.o' <<
165
+ 'ggml/src/ggml-aarch64.o' <<
166
+ 'ggml/src/ggml-alloc.o' <<
167
+ 'ggml/src/ggml-backend.o' <<
168
+ 'ggml/src/ggml-backend-reg.o' <<
169
+ 'ggml/src/ggml-opt.o' <<
170
+ 'ggml/src/ggml-quants.o' <<
171
+ 'ggml/src/ggml-threading.o' <<
172
+ 'ggml/src/ggml-cpu/ggml-cpu.o' <<
173
+ 'ggml/src/ggml-cpu/ggml-cpu-cpp.o' <<
174
+ 'ggml/src/ggml-cpu/ggml-cpu-aarch64.o' <<
175
+ 'ggml/src/ggml-cpu/ggml-cpu-quants.o'
176
 
177
  $OBJ_WHISPER <<
178
+ 'src/whisper.o'
179
 
180
  $objs = $OBJ_GGML + $OBJ_WHISPER + $OBJ_COMMON + $OBJ_SDL
181
  $objs << "ruby_whisper.o"
 
190
  create_makefile('whisper')
191
 
192
  File.open 'Makefile', 'a' do |file|
193
+ file.puts 'include scripts/get-flags.mk'
194
+ file.puts 'include cpu.mk'
195
 
196
  if $GGML_METAL
197
+ file.puts 'include metal.mk'
198
+
199
  if $GGML_METAL_EMBED_LIBRARY
200
  file.puts 'include metal-embed.mk'
201
  end
bindings/ruby/ext/metal-embed.mk CHANGED
@@ -1,14 +1,17 @@
1
- ggml-metal-embed.o: \
2
- ggml-metal.metal \
3
- ggml-common.h
 
4
  @echo "Embedding Metal library"
5
- @sed -e '/#include "ggml-common.h"/r ggml-common.h' -e '/#include "ggml-common.h"/d' < ggml-metal.metal > ggml-metal-embed.metal
6
- $(eval TEMP_ASSEMBLY=$(shell mktemp))
7
- @echo ".section __DATA, __ggml_metallib" > $(TEMP_ASSEMBLY)
8
- @echo ".globl _ggml_metallib_start" >> $(TEMP_ASSEMBLY)
9
- @echo "_ggml_metallib_start:" >> $(TEMP_ASSEMBLY)
10
- @echo ".incbin \"ggml-metal-embed.metal\"" >> $(TEMP_ASSEMBLY)
11
- @echo ".globl _ggml_metallib_end" >> $(TEMP_ASSEMBLY)
12
- @echo "_ggml_metallib_end:" >> $(TEMP_ASSEMBLY)
13
- @$(AS) $(TEMP_ASSEMBLY) -o $@
14
- @rm -f ${TEMP_ASSEMBLY}
 
 
 
1
+ ggml/src/ggml-metal/ggml-metal-embed.o: \
2
+ ggml/src/ggml-metal/ggml-metal.metal \
3
+ ggml/src/ggml-metal/ggml-metal-impl.h \
4
+ ggml/src/ggml-common.h
5
  @echo "Embedding Metal library"
6
+ @sed -e '/__embed_ggml-common.h__/r ggml/src/ggml-common.h' -e '/__embed_ggml-common.h__/d' < ggml/src/ggml-metal/ggml-metal.metal > ggml/src/ggml-metal/ggml-metal-embed.metal.tmp
7
+ @sed -e '/#include "ggml-metal-impl.h"/r ggml/src/ggml-metal/ggml-metal-impl.h' -e '/#include "ggml-metal-impl.h"/d' < ggml/src/ggml-metal/ggml-metal-embed.metal.tmp > ggml/src/ggml-metal/ggml-metal-embed.metal
8
+ $(eval TEMP_ASSEMBLY=$(shell mktemp -d))
9
+ @echo ".section __DATA, __ggml_metallib" > $(TEMP_ASSEMBLY)/ggml-metal-embed.s
10
+ @echo ".globl _ggml_metallib_start" >> $(TEMP_ASSEMBLY)/ggml-metal-embed.s
11
+ @echo "_ggml_metallib_start:" >> $(TEMP_ASSEMBLY)/ggml-metal-embed.s
12
+ @echo ".incbin \"ggml/src/ggml-metal/ggml-metal-embed.metal\"" >> $(TEMP_ASSEMBLY)/ggml-metal-embed.s
13
+ @echo ".globl _ggml_metallib_end" >> $(TEMP_ASSEMBLY)/ggml-metal-embed.s
14
+ @echo "_ggml_metallib_end:" >> $(TEMP_ASSEMBLY)/ggml-metal-embed.s
15
+ $(CC) $(CFLAGS) -c $(TEMP_ASSEMBLY)/ggml-metal-embed.s -o $@
16
+ @rm -f ${TEMP_ASSEMBLY}/ggml-metal-embed.s
17
+ @rmdir ${TEMP_ASSEMBLY}
bindings/ruby/ext/metal.mk ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ ggml/src/ggml-metal/ggml-metal.o: \
2
+ ggml/src/ggml-metal/ggml-metal.m \
3
+ ggml/src/ggml-metal/ggml-metal-impl.h \
4
+ ggml/include/ggml-metal.h \
5
+ ggml/include/ggml.h
6
+ $(CC) $(CFLAGS) -c $< -o $@
bindings/ruby/extsources.rb ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ require "yaml"
2
+
3
+ sources = `git ls-files -z ../..`.split("\x0")
4
+ paths = YAML.load_file("../../.github/workflows/bindings-ruby.yml")[true]["push"]["paths"]
5
+ paths.delete "bindings/ruby/**"
6
+ EXTSOURCES = (Dir.glob(paths, base: "../..").collect {|path| "../../#{path}"} << "../../LICENSE") & sources
bindings/ruby/extsources.yaml DELETED
@@ -1,31 +0,0 @@
1
- ---
2
- - ../../src/whisper.cpp
3
- - ../../include/whisper.h
4
- - ../../ggml/src/ggml.c
5
- - ../../ggml/src/ggml-cpu.c
6
- - ../../ggml/src/ggml-impl.h
7
- - ../../ggml/src/ggml-aarch64.h
8
- - ../../ggml/src/ggml-aarch64.c
9
- - ../../ggml/src/ggml-alloc.c
10
- - ../../ggml/src/ggml-backend-impl.h
11
- - ../../ggml/src/ggml-backend.cpp
12
- - ../../ggml/src/ggml-common.h
13
- - ../../ggml/src/ggml-quants.h
14
- - ../../ggml/src/ggml-quants.c
15
- - ../../ggml/src/ggml-cpu-impl.h
16
- - ../../ggml/src/ggml-metal.m
17
- - ../../ggml/src/ggml-metal.metal
18
- - ../../ggml/src/ggml-blas.cpp
19
- - ../../ggml/include/ggml.h
20
- - ../../ggml/include/ggml-alloc.h
21
- - ../../ggml/include/ggml-backend.h
22
- - ../../ggml/include/ggml-cpu.h
23
- - ../../ggml/include/ggml-cuda.h
24
- - ../../ggml/include/ggml-kompute.h
25
- - ../../ggml/include/ggml-metal.h
26
- - ../../ggml/include/ggml-sycl.h
27
- - ../../ggml/include/ggml-vulkan.h
28
- - ../../ggml/include/ggml-blas.h
29
- - ../../scripts/get-flags.mk
30
- - ../../examples/dr_wav.h
31
- - ../../LICENSE
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bindings/ruby/tests/test_whisper.rb CHANGED
@@ -107,7 +107,7 @@ class TestWhisper < TestBase
107
 
108
  assert logs.length > 30
109
  logs.each do |log|
110
- assert_equal Whisper::LOG_LEVEL_INFO, log[0]
111
  assert_same user_data, log[2]
112
  end
113
  end
 
107
 
108
  assert logs.length > 30
109
  logs.each do |log|
110
+ assert_include [Whisper::LOG_LEVEL_DEBUG, Whisper::LOG_LEVEL_INFO, Whisper::LOG_LEVEL_WARN], log[0]
111
  assert_same user_data, log[2]
112
  end
113
  end
bindings/ruby/whispercpp.gemspec CHANGED
@@ -1,4 +1,4 @@
1
- require "yaml"
2
 
3
  Gem::Specification.new do |s|
4
  s.name = "whispercpp"
@@ -10,24 +10,24 @@ Gem::Specification.new do |s|
10
  s.extra_rdoc_files = ['LICENSE', 'README.md']
11
 
12
  s.files = `git ls-files . -z`.split("\x0") +
13
- YAML.load_file("extsources.yaml").collect {|file|
14
  basename = File.basename(file)
15
  if s.extra_rdoc_files.include?(basename)
16
  basename
17
  else
18
- File.join("ext", basename)
19
  end
20
  }
21
 
22
  s.summary = %q{Ruby whisper.cpp bindings}
23
- s.test_files = ["tests/test_whisper.rb"]
24
 
25
  s.extensions << 'ext/extconf.rb'
26
 
27
 
28
  #### Documentation and testing.
29
  s.homepage = 'https://github.com/ggerganov/whisper.cpp'
30
- s.rdoc_options = ['--main', '../../README.md']
31
 
32
 
33
  s.platform = Gem::Platform::RUBY
 
1
+ require_relative "extsources"
2
 
3
  Gem::Specification.new do |s|
4
  s.name = "whispercpp"
 
10
  s.extra_rdoc_files = ['LICENSE', 'README.md']
11
 
12
  s.files = `git ls-files . -z`.split("\x0") +
13
+ EXTSOURCES.collect {|file|
14
  basename = File.basename(file)
15
  if s.extra_rdoc_files.include?(basename)
16
  basename
17
  else
18
+ file.sub("../..", "ext")
19
  end
20
  }
21
 
22
  s.summary = %q{Ruby whisper.cpp bindings}
23
+ s.test_files = s.files.select {|file| file.start_with? "tests/"}
24
 
25
  s.extensions << 'ext/extconf.rb'
26
 
27
 
28
  #### Documentation and testing.
29
  s.homepage = 'https://github.com/ggerganov/whisper.cpp'
30
+ s.rdoc_options = ['--main', 'README.md']
31
 
32
 
33
  s.platform = Gem::Platform::RUBY