-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathRakefile
58 lines (45 loc) · 1.33 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
require 'rake/clean'
LUAC = "luac"
ZIP = "zip"
BUILD_DIR = "build"
PLUGIN_DIR = File.join(BUILD_DIR, "robotagger.lrplugin")
DIST_DIR = "dist"
SOURCE_FILES = FileList[ File.join("src", "*.lua") ]
RESOURCE_FILES = FileList[ File.join("src", "*.png") ]
README_FILES = FileList[ "README.md", "LICENSE" ]
TARGET_FILES = SOURCE_FILES.pathmap(File.join(PLUGIN_DIR, "%f")) + README_FILES.pathmap(File.join(PLUGIN_DIR, "%f"))
PACKAGE_FILE = File.join(DIST_DIR, "robotagger.zip")
task :default => [ :compile, :package ]
directory BUILD_DIR
CLEAN << BUILD_DIR
directory PLUGIN_DIR
CLEAN << PLUGIN_DIR
directory DIST_DIR
CLOBBER << DIST_DIR
desc "Compile source files"
task :compile => [ :test, PLUGIN_DIR ]
task :test do
sh "#{LUAC} -v | grep 5.1"
end
SOURCE_FILES.each do |src|
tgt = src.pathmap(File.join(PLUGIN_DIR, "%f"))
file tgt => src do
sh "#{LUAC} -o #{tgt} #{src}"
end
CLEAN << tgt
task :compile => tgt
task PACKAGE_FILE => tgt
end
(RESOURCE_FILES + README_FILES).each do |src|
tgt = src.pathmap(File.join(PLUGIN_DIR, "%f"))
file tgt => src do
cp src, tgt
end
CLEAN << tgt
task PACKAGE_FILE => tgt
end
desc "Create distribution package file"
task :package => [ :compile, PACKAGE_FILE ]
task PACKAGE_FILE => DIST_DIR do
sh "cd #{BUILD_DIR} && #{ZIP} --recurse-paths #{File.absolute_path(PACKAGE_FILE)} #{PLUGIN_DIR.pathmap("%f")}"
end