danbev commited on
Commit
f6dc2ad
·
unverified ·
1 Parent(s): d47070d

ruby : add cleaning of library names in dependencies (#3241)

Browse files

* ruby : add cleaning of library names in dependencies

This commit adds a cleaning step to the library names in the
`Dependencies` class of the Ruby bindings.

The motivation for this is that with the introduction of a library name
alias for ggml in Commit (b933d17c306e800b6d919e3ee895219c3f64d5cd
"Add in-build ggml::ggml ALIAS library (ggml/1260)) causes the Makefile
generation to break:
```console
$ sed -n '165,170p' ext/Makefile
CLEANOBJS = $(OBJS) *.bak
TARGET_SO_DIR_TIMESTAMP = $(TIMESTAMP_DIR)/.sitearchdir.time
$(TARGET_SO): libcommon.a libwhisper.a libggml\n(ggml::ggml).a libggml-cpu.a libggml-base.a
libcommon.a libwhisper.a libggml\n(ggml::ggml).a libggml-cpu.a libggml-base.a: cmake-targets
cmake-targets:
/usr/bin/cmake -S sources -B build -D BUILD_SHARED_LIBS=OFF -D CMAKE_ARCHIVE_OUTPUT_DIRECTORY=/home/danbev/work/ai/whisper.cpp/bindings/ruby/ext -D CMAKE_POSITION_INDEPENDENT_CODE=ON
```

* squash! ruby : add cleaning of library names in dependencies

Apply PR review feedback.

Files changed (1) hide show
  1. bindings/ruby/ext/dependencies.rb +5 -1
bindings/ruby/ext/dependencies.rb CHANGED
@@ -17,7 +17,11 @@ class Dependencies
17
  def libs
18
  tsort.filter_map {|node|
19
  label, shape = @nodes[node]
20
- shape == @static_lib_shape ? label : nil
 
 
 
 
21
  }.reverse.collect {|lib| "lib#{lib}.a"}
22
  end
23
 
 
17
  def libs
18
  tsort.filter_map {|node|
19
  label, shape = @nodes[node]
20
+ if shape == @static_lib_shape
21
+ label.gsub(/\\n\([^)]+\)/, '')
22
+ else
23
+ nil
24
+ end
25
  }.reverse.collect {|lib| "lib#{lib}.a"}
26
  end
27