aboutsummaryrefslogtreecommitdiffstats
path: root/spec/ruby/optional/capi/rake_helper.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/optional/capi/rake_helper.rb')
-rw-r--r--spec/ruby/optional/capi/rake_helper.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/spec/ruby/optional/capi/rake_helper.rb b/spec/ruby/optional/capi/rake_helper.rb
new file mode 100644
index 0000000000..2b7a6ccbe3
--- /dev/null
+++ b/spec/ruby/optional/capi/rake_helper.rb
@@ -0,0 +1,23 @@
+require 'rake'
+require 'rake/clean'
+
+input = "#{$cwd}/#{$ext_name}.c"
+common = "-I shotgun/lib/subtend -g #{input}"
+
+case PLATFORM
+when /darwin/
+ output = "#{$cwd}/#{$ext_name}.bundle"
+ build_cmd = "cc -bundle -undefined suppress -flat_namespace #{common} -o #{output}"
+else
+ output = "#{$cwd}/#{$ext_name}.so"
+ build_cmd = "cc -shared #{common} -o #{output}"
+end
+
+CLOBBER.include(output)
+
+task default: [output]
+
+file output => [input] do
+ sh build_cmd
+end
+