mirror of
https://github.com/Drop-OSS/libtailscale.git
synced 2026-01-30 20:55:18 +01:00
53 lines
1.2 KiB
Ruby
53 lines
1.2 KiB
Ruby
# Copyright (c) Tailscale Inc & AUTHORS
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
# frozen_string_literal: true
|
|
|
|
require "bundler/gem_tasks"
|
|
require "rake/testtask"
|
|
require "rake/extensiontask"
|
|
|
|
go_sources = %w[tailscale.go go.mod go.sum]
|
|
go_sources.map do |f|
|
|
to = "ext/libtailscale/#{f}"
|
|
from = "../#{f}"
|
|
file to => from do
|
|
cp from, to
|
|
end
|
|
task copy: to
|
|
task :clobber do
|
|
rm_f to
|
|
end
|
|
end
|
|
file "LICENSE" => "../LICENSE" do
|
|
cp "../LICENSE", "LICENSE"
|
|
end
|
|
task :clobber do
|
|
rm_f "LICENSE"
|
|
end
|
|
task copy: "LICENSE"
|
|
task build: :copy
|
|
|
|
# XXX: Rake::ExtensionTask seems to ignore prerequisites.
|
|
# Rake::ExtensionTask.new "libtailscale" do |ext|
|
|
# ext.source_pattern = "*.{go,mod,sum}"
|
|
# end
|
|
# task "compile:libtailscale" => :copy
|
|
libname = "lib/libtailscale.#{RbConfig::CONFIG['DLEXT']}"
|
|
task libname => :copy do |t|
|
|
sh "go build -buildmode=c-shared -o #{t.name} github.com/tailscale/libtailscale"
|
|
end
|
|
desc "Build the C extension using local sources"
|
|
task compile: libname
|
|
task :clobber do
|
|
rm_f libname
|
|
rm_f libname.sub(/\.#{RbConfig::CONFIG['DLEXT']}$/, ".h")
|
|
end
|
|
|
|
Rake::TestTask.new(:test) do |t|
|
|
t.libs << "test"
|
|
t.libs << "lib"
|
|
t.test_files = FileList["test/**/test_*.rb"]
|
|
end
|
|
task test: :compile
|
|
|
|
task default: :test |