flak 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/.yardoc/checksums +28 -0
- data/.yardoc/objects/root.dat +0 -0
- data/.yardoc/proxy_types +0 -0
- data/.yardopts +1 -0
- data/Architecture.md +152 -0
- data/Documenting.md +2 -0
- data/MayaModules.md +2 -0
- data/README.md +173 -0
- data/flak.gemspec +6 -3
- data/lib/core_ext/hash.rb +82 -0
- data/lib/core_ext/string.rb +41 -0
- data/lib/flak.rb +20 -12
- data/lib/flak/rake/errors.rb +28 -0
- data/lib/flak/rake/file_actions.rb +70 -0
- data/lib/flak/rake/os.rb +18 -0
- data/lib/flak/rake/target.rb +47 -69
- data/lib/flak/rake/templates/cpp.rb +211 -0
- data/lib/flak/rake/templates/delight.rb +168 -0
- data/lib/flak/rake/templates/doc.rb +106 -0
- data/lib/flak/rake/templates/environment.rb +189 -0
- data/lib/flak/rake/templates/gl.rb +20 -0
- data/lib/flak/rake/templates/mac.rb +29 -0
- data/lib/flak/rake/templates/max.rb +22 -0
- data/lib/flak/rake/templates/maya.rb +172 -0
- data/lib/flak/rake/templates/maya_app.rb +97 -0
- data/lib/flak/rake/templates/maya_plugin.rb +93 -0
- data/lib/flak/rake/templates/merge_engine.rb +45 -0
- data/lib/flak/rake/templates/nuke.rb +60 -0
- data/lib/flak/rake/templates/release.rb +101 -0
- data/lib/flak/rake/templates/shell.rb +54 -0
- data/lib/flak/thor/cli.rb +5 -0
- data/lib/flak/thor/generate.rb +88 -144
- data/lib/flak/thor/target_file.rb +36 -17
- data/lib/flak/thor/templates/INSTALL.tt +3 -3
- data/lib/flak/thor/templates/Rakefile.tt +4 -2
- data/lib/flak/thor/templates/{cpp.tt → config/cpp.yml.tt} +6 -8
- data/lib/flak/thor/templates/{delight.tt → config/delight.yml.tt} +1 -1
- data/lib/flak/thor/templates/{doc.tt → config/doc.yml.tt} +0 -0
- data/lib/flak/thor/templates/{env.tt → config/environment.yml.tt} +6 -7
- data/lib/flak/thor/templates/{gl.tt → config/gl.yml.tt} +0 -0
- data/lib/flak/thor/templates/{mac.tt → config/mac.yml.tt} +0 -0
- data/lib/flak/thor/templates/{max.tt → config/max.yml.tt} +0 -0
- data/lib/flak/thor/templates/{maya.tt → config/maya.yml.tt} +9 -1
- data/lib/flak/thor/templates/{maya_app.tt → config/maya_app.yml.tt} +0 -2
- data/lib/flak/thor/templates/{maya_plugin.tt → config/maya_plugin.yml.tt} +0 -2
- data/lib/flak/thor/templates/config/nuke.yml.tt +3 -0
- data/lib/flak/thor/templates/config/release.yml.tt +3 -0
- data/lib/flak/thor/templates/config/shell.yml.tt +1 -0
- data/lib/flak/thor/templates/doc/content/install_guide.txt.tt +71 -25
- data/lib/flak/thor/templates/maya_plugin_cpp.tt +37 -0
- data/lib/flak/thor/templates/name_cpp.tt +6 -0
- data/lib/flak/thor/templates/name_h.tt +34 -0
- data/lib/flak/thor/templates/product.sh.tt +2 -2
- data/lib/flak/thor/wizard.rb +28 -15
- data/lib/flak/version.rb +1 -1
- data/target.jpg +0 -0
- metadata +127 -94
- data/README.textile +0 -59
- data/lib/flak/rake/base.rb +0 -316
- data/lib/flak/rake/cpp.rb +0 -139
- data/lib/flak/rake/delight.rb +0 -121
- data/lib/flak/rake/doc.rb +0 -69
- data/lib/flak/rake/gl.rb +0 -10
- data/lib/flak/rake/mac.rb +0 -23
- data/lib/flak/rake/max.rb +0 -29
- data/lib/flak/rake/maya.rb +0 -142
- data/lib/flak/rake/maya_app.rb +0 -45
- data/lib/flak/rake/maya_plugin.rb +0 -47
- data/lib/flak/rake/mod.rb +0 -46
- data/lib/flak/rake/nuke.rb +0 -29
- data/lib/flak/thor/templates/mod.tt +0 -0
- data/lib/flak/thor/templates/nuke.tt +0 -2
@@ -0,0 +1,29 @@
|
|
1
|
+
module Flak::Template
|
2
|
+
module Mac
|
3
|
+
|
4
|
+
module Settings
|
5
|
+
|
6
|
+
extend Flak::Template::MergeEngine
|
7
|
+
|
8
|
+
def self.extended target
|
9
|
+
infuse target
|
10
|
+
end
|
11
|
+
|
12
|
+
def mac_app_release_path(file)
|
13
|
+
bind = binding()
|
14
|
+
Flak::Errors.assert("@settings[:path_to_revision]", "String", bind,__FILE__)
|
15
|
+
Flak::Errors.assert("@settings[:product_revision]", "String", bind,__FILE__)
|
16
|
+
File.join(@settings[:path_to_revision], 'bin', "#{file.pathmap('%f').pathmap('%X')}-#{@settings[:product_revision]}#{file.pathmap('%x')}")
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
module Tasks
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
|
@@ -0,0 +1,172 @@
|
|
1
|
+
module Flak::Template
|
2
|
+
|
3
|
+
module Maya
|
4
|
+
|
5
|
+
|
6
|
+
module Settings
|
7
|
+
|
8
|
+
extend Flak::Template::MergeEngine
|
9
|
+
|
10
|
+
def self.extended target
|
11
|
+
infuse target
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.settings_modifications settings
|
15
|
+
|
16
|
+
maya_string =''
|
17
|
+
case settings[:os]
|
18
|
+
when /linux_64/
|
19
|
+
maya_string = "maya#{settings[:maya_version]}-x64"
|
20
|
+
when /darwin/
|
21
|
+
maya_string = "maya#{settings[:maya_version]}"
|
22
|
+
when /win_64/
|
23
|
+
maya_string = "Maya#{settings[:maya_version]}"
|
24
|
+
end
|
25
|
+
|
26
|
+
mods = Hash.new
|
27
|
+
|
28
|
+
bind = binding()
|
29
|
+
Flak::Errors.assert("settings[:autodesk_location]", "String", bind,__FILE__)
|
30
|
+
Flak::Errors.assert("settings[:path_to_revision]", "String", bind,__FILE__)
|
31
|
+
mods[:maya_location] = File.join( settings[:autodesk_location],maya_string )
|
32
|
+
|
33
|
+
|
34
|
+
mods[:maya_release_path] = File.join( settings[:path_to_revision],"maya" )
|
35
|
+
|
36
|
+
mods
|
37
|
+
end
|
38
|
+
|
39
|
+
# def maya_icon_destination(file)
|
40
|
+
# File.join(@settings[:maya_release_path] ,'icons', file.pathmap('%f').no_erb)
|
41
|
+
# end
|
42
|
+
#
|
43
|
+
# def maya_script_destination(file)
|
44
|
+
# File.join(@settings[:maya_release_path] , 'scripts', file.pathmap('%f').no_erb)
|
45
|
+
# end
|
46
|
+
#
|
47
|
+
#
|
48
|
+
# def maya_scripted_plugin_destination(file)
|
49
|
+
# File.join(@settings[:maya_release_path] , 'plug-ins' , file.pathmap('%f').no_erb)
|
50
|
+
# end
|
51
|
+
#
|
52
|
+
# def maya_precompiled_plugin_destination(file)
|
53
|
+
# File.join(@settings[:maya_release_path] , 'plug-ins' , file.pathmap('%f').no_erb)
|
54
|
+
# end
|
55
|
+
|
56
|
+
def outliner_icon_build_filename(file)
|
57
|
+
icon_build_filename("out_#{file}")
|
58
|
+
end
|
59
|
+
|
60
|
+
def dg_icon_build_filename(file)
|
61
|
+
icon_build_filename(file)
|
62
|
+
end
|
63
|
+
|
64
|
+
def icon_build_filename(file)
|
65
|
+
bind = binding()
|
66
|
+
Flak::Errors.assert("@settings[:build_directory]", "String", bind,__FILE__)
|
67
|
+
File.join(@settings[:build_directory],'icons', file.pathmap('%f').ext('xpm') )
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
module Tasks
|
75
|
+
|
76
|
+
|
77
|
+
def self.extended target
|
78
|
+
task_factory target
|
79
|
+
end
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
def self.generate_node_icon_tasks target
|
84
|
+
settings = target.settings
|
85
|
+
|
86
|
+
|
87
|
+
source_files = settings[:maya_node_icon_files]
|
88
|
+
unless source_files.nil?
|
89
|
+
|
90
|
+
source_files.each do |f|
|
91
|
+
|
92
|
+
['outliner','dg'].each do |t|
|
93
|
+
|
94
|
+
build_file = target.send "#{t}_icon_build_filename", f
|
95
|
+
|
96
|
+
dest_file = destination_filepath( settings[:maya_icon_destination], build_file)
|
97
|
+
|
98
|
+
file build_file => f do |t|
|
99
|
+
target.make_directory_for(build_file)
|
100
|
+
cmd_key = "#{t}_icon_convert_cmd".to_sym
|
101
|
+
cmd = "#{settings[cmd_key]} #{f} #{build_file}"
|
102
|
+
sh cmd
|
103
|
+
end
|
104
|
+
|
105
|
+
file dest_file => build_file do |t|
|
106
|
+
target.make_directory_for(dest_file)
|
107
|
+
cp build_file, dest_file
|
108
|
+
end
|
109
|
+
|
110
|
+
task :release => dest_file
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
def self.generate_icon_tasks target
|
122
|
+
settings = target.settings
|
123
|
+
|
124
|
+
|
125
|
+
source_files = settings[:maya_icon_files]
|
126
|
+
unless source_files.nil?
|
127
|
+
|
128
|
+
source_files.each do |f|
|
129
|
+
|
130
|
+
build_file = target.icon_build_filename f
|
131
|
+
|
132
|
+
dest_file = destination_filepath( settings[:maya_icon_destination], build_file)
|
133
|
+
|
134
|
+
file build_file => f do |t|
|
135
|
+
target.make_directory_for(build_file)
|
136
|
+
cmd = "#{settings[:icon_convert_cmd]} #{f} #{build_file}"
|
137
|
+
sh cmd
|
138
|
+
end
|
139
|
+
|
140
|
+
file dest_file => build_file do |t|
|
141
|
+
target.make_directory_for(dest_file)
|
142
|
+
cp build_file, dest_file
|
143
|
+
end
|
144
|
+
|
145
|
+
task :release => dest_file
|
146
|
+
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
# generate tasks here
|
158
|
+
################################################################################
|
159
|
+
def self.task_factory target
|
160
|
+
settings = target.settings
|
161
|
+
self.generate_node_icon_tasks target
|
162
|
+
self.generate_icon_tasks target
|
163
|
+
end
|
164
|
+
|
165
|
+
|
166
|
+
end
|
167
|
+
|
168
|
+
|
169
|
+
end
|
170
|
+
|
171
|
+
|
172
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
module Flak::Template
|
2
|
+
|
3
|
+
module MayaApp
|
4
|
+
|
5
|
+
module Settings
|
6
|
+
|
7
|
+
extend Flak::Template::MergeEngine
|
8
|
+
|
9
|
+
def self.extended target
|
10
|
+
infuse target
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
def self.settings_modifications settings
|
16
|
+
mods = Hash.new
|
17
|
+
|
18
|
+
bind = binding()
|
19
|
+
Flak::Errors.assert("settings[:maya_relative_lib_path]", "String", bind,__FILE__)
|
20
|
+
Flak::Errors.assert("settings[:maya_location]", "String", bind,__FILE__)
|
21
|
+
Flak::Errors.assert("settings[:product_revision]", "String", bind,__FILE__)
|
22
|
+
Flak::Errors.assert("settings[:author_name]", "String", bind,__FILE__)
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
lib_path = File.join( settings[:maya_location], settings[:maya_relative_lib_path], {:key => 'lib_path'})
|
27
|
+
|
28
|
+
mods[:lib_paths] = [ lib_path ]
|
29
|
+
|
30
|
+
case settings[:os]
|
31
|
+
when /linux_64/
|
32
|
+
mods[:linker_options] = [ "-Wl,-rpath,#{lib_path}" ]
|
33
|
+
|
34
|
+
|
35
|
+
mods[:include_paths] = [ File.join( settings[:maya_location], "include" ) ]
|
36
|
+
when /darwin/
|
37
|
+
mods[:linker_options] = [ "-Wl,-executable_path,#{lib_path}" ]
|
38
|
+
|
39
|
+
mods[:include_paths] = [ File.join(settings[:maya_location],"devkit", "include" ) ]
|
40
|
+
when /win_64/
|
41
|
+
mods[:linker_options] = []
|
42
|
+
|
43
|
+
mods[:include_paths] = [ File.join(settings[:maya_location], "include" ) ]
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
mods[:compiler_options] = [
|
50
|
+
"-D\"PLUGIN_VERSION=\\\"#{settings[:product_revision]}\\\"\"",
|
51
|
+
"-D\"PLUGIN_VENDOR=\\\"#{settings[:author_name].gsub(' ','')}\\\"\"",
|
52
|
+
"-D\"MAYA_VERSION=\\\"#{settings[:maya_version]}\\\"\""
|
53
|
+
]
|
54
|
+
|
55
|
+
mods
|
56
|
+
end
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
|
62
|
+
# these methods will become instance methods of the target
|
63
|
+
# and as such will have access to the @settings instance variable
|
64
|
+
###################################################
|
65
|
+
def release_filename
|
66
|
+
File.join( @settings[:path_to_revision], 'bin', build_filename.pathmap('%f'))
|
67
|
+
end
|
68
|
+
###################################################
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
module Tasks
|
80
|
+
|
81
|
+
# there are no special tasks for maya app
|
82
|
+
# as the CPP build tasks will be used
|
83
|
+
|
84
|
+
# def self.extended target
|
85
|
+
# task_factory target
|
86
|
+
# end
|
87
|
+
#
|
88
|
+
#
|
89
|
+
# def self.task_factory target
|
90
|
+
#
|
91
|
+
# end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
@@ -0,0 +1,93 @@
|
|
1
|
+
module Flak::Template
|
2
|
+
|
3
|
+
module MayaPlugin
|
4
|
+
|
5
|
+
module Settings
|
6
|
+
|
7
|
+
extend Flak::Template::MergeEngine
|
8
|
+
|
9
|
+
def self.extended target
|
10
|
+
infuse target
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
# sksjdf
|
15
|
+
def self.settings_modifications settings
|
16
|
+
mods = Hash.new
|
17
|
+
|
18
|
+
bind = binding()
|
19
|
+
Flak::Errors.assert("settings[:maya_relative_lib_path]", "String", bind,__FILE__)
|
20
|
+
Flak::Errors.assert("settings[:maya_location]", "String", bind,__FILE__)
|
21
|
+
Flak::Errors.assert("settings[:product_revision]", "String", bind,__FILE__)
|
22
|
+
Flak::Errors.assert("settings[:author_name]", "String", bind,__FILE__)
|
23
|
+
|
24
|
+
|
25
|
+
lib_path = File.join(settings[:maya_location], settings[:maya_relative_lib_path])
|
26
|
+
|
27
|
+
mods[:lib_paths] = [ lib_path ]
|
28
|
+
|
29
|
+
case settings[:os]
|
30
|
+
when /linux_64/
|
31
|
+
mods[:linker_options] = [ "-Wl,-rpath,#{lib_path}" ]
|
32
|
+
|
33
|
+
|
34
|
+
mods[:include_paths] = [ File.join( settings[:maya_location], "include" ) ]
|
35
|
+
when /darwin/
|
36
|
+
mods[:linker_options] = [ "-Wl,-executable_path,#{lib_path}" ]
|
37
|
+
|
38
|
+
mods[:include_paths] = [ File.join(settings[:maya_location],"devkit", "include" ) ]
|
39
|
+
when /win_64/
|
40
|
+
mods[:linker_options] = []
|
41
|
+
|
42
|
+
mods[:include_paths] = [ File.join(settings[:maya_location], "include" ) ]
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
mods[:compiler_options] = [
|
47
|
+
"-D\"PLUGIN_VERSION=\\\"#{settings[:product_revision]}\\\"\"",
|
48
|
+
"-D\"PLUGIN_VENDOR=\\\"#{settings[:author_name].gsub(' ','')}\\\"\"",
|
49
|
+
"-D\"MAYA_VERSION=\\\"#{settings[:maya_version]}\\\"\""
|
50
|
+
]
|
51
|
+
|
52
|
+
mods
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
# these methods will become instance methods of the target
|
60
|
+
# and as such will have access to the @settings instance variable
|
61
|
+
###################################################
|
62
|
+
def release_filename
|
63
|
+
File.join( @settings[:path_to_revision], 'maya', 'plug-ins', build_filename.pathmap('%f'))
|
64
|
+
end
|
65
|
+
###################################################
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
module Tasks
|
77
|
+
# there are no special tasks for maya plugins
|
78
|
+
# as the CPP build tasks will be used
|
79
|
+
|
80
|
+
# def self.extended target
|
81
|
+
# task_factory target
|
82
|
+
# end
|
83
|
+
#
|
84
|
+
#
|
85
|
+
# def self.task_factory target
|
86
|
+
#
|
87
|
+
# end
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
93
|
+
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Flak::Template
|
2
|
+
|
3
|
+
module MergeEngine
|
4
|
+
|
5
|
+
def infuse target
|
6
|
+
settings = target.settings
|
7
|
+
flat = flatten_yaml settings
|
8
|
+
settings = settings.flak_merge(flat)
|
9
|
+
module_mods = settings_modifications(settings)
|
10
|
+
target.settings = settings.flak_merge(module_mods)
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
# substutute environment variables in yaml file
|
15
|
+
# and faltten out the os and configuration keys.
|
16
|
+
def self.flatten_yaml_file(settings, file)
|
17
|
+
if File.exists? file
|
18
|
+
content = File.open(file, "rb").read.substitute_env_vars
|
19
|
+
yml = YAML::load(content) || {}
|
20
|
+
yml.flak_flatten(settings[:configuration], settings[:os])
|
21
|
+
else
|
22
|
+
{}
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
# open the yaml file associated with the current module and flatten it
|
28
|
+
def flatten_yaml settings
|
29
|
+
file = settings[:root] + '/config/'+self.name.split("::")[2].underscoreize+'.yml'
|
30
|
+
Flak::Template::MergeEngine.flatten_yaml_file(settings,file)
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
# fallback modifications method for #{self.name}
|
36
|
+
def settings_modifications settings
|
37
|
+
{}
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|