flak 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +5 -0
- data/Gemfile +4 -0
- data/Rakefile +1 -0
- data/bin/flak +5 -0
- data/flak.gemspec +31 -0
- data/lib/core_ext/string.rb +5 -0
- data/lib/flak/cpp.rb +137 -0
- data/lib/flak/delight.rb +121 -0
- data/lib/flak/doc.rb +259 -0
- data/lib/flak/gl.rb +10 -0
- data/lib/flak/mac.rb +23 -0
- data/lib/flak/max.rb +29 -0
- data/lib/flak/maya.rb +142 -0
- data/lib/flak/maya_app.rb +45 -0
- data/lib/flak/maya_plugin.rb +47 -0
- data/lib/flak/nuke.rb +29 -0
- data/lib/flak/target.rb +120 -0
- data/lib/flak/thor/cli.rb +7 -0
- data/lib/flak/thor/generate.rb +295 -0
- data/lib/flak/thor/junk/junk.rb +65 -0
- data/lib/flak/thor/templates/INSTALL.tt +115 -0
- data/lib/flak/thor/templates/Rakefile.tt +10 -0
- data/lib/flak/thor/templates/cpp.tt +153 -0
- data/lib/flak/thor/templates/delight.tt +14 -0
- data/lib/flak/thor/templates/env.tt +26 -0
- data/lib/flak/thor/templates/gl.tt +27 -0
- data/lib/flak/thor/templates/mac.tt +0 -0
- data/lib/flak/thor/templates/max.tt +1 -0
- data/lib/flak/thor/templates/maya.tt +16 -0
- data/lib/flak/thor/templates/maya_app.tt +80 -0
- data/lib/flak/thor/templates/maya_plugin.tt +59 -0
- data/lib/flak/thor/templates/nuke.tt +2 -0
- data/lib/flak/thor/templates/product.mel.tt +34 -0
- data/lib/flak/thor/templates/product.sh.tt +35 -0
- data/lib/flak/version.rb +3 -0
- data/lib/flak.rb +357 -0
- metadata +122 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/bin/flak
ADDED
data/flak.gemspec
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "flak/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "flak"
|
7
|
+
s.version = Flak::VERSION
|
8
|
+
s.authors = ["Julian Mann"]
|
9
|
+
s.email = ["julian.mann@gmail.com"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = %q{build system for VFX tools}
|
12
|
+
s.description = %q{VFX tool build and documentation framework based on rake with thor generators}
|
13
|
+
s.add_dependency('thor')
|
14
|
+
s.rubyforge_project = "flak"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# specify any dependencies here; for example:
|
22
|
+
# s.add_development_dependency "rspec"
|
23
|
+
s.add_runtime_dependency "awesome_print"
|
24
|
+
s.add_runtime_dependency "nanoc"
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
|
data/lib/flak/cpp.rb
ADDED
@@ -0,0 +1,137 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Flak
|
4
|
+
|
5
|
+
# module methods in this module set up defaults when doing c++ builds
|
6
|
+
# some instance methods are provided - they will be inherited by target objects
|
7
|
+
|
8
|
+
module Cpp
|
9
|
+
|
10
|
+
|
11
|
+
def self.resolve_settings( existing_settings )
|
12
|
+
f = existing_settings[:root] + '/config/cpp.yml'
|
13
|
+
h =Flak.flatten_settings(f,existing_settings[:configuration], existing_settings[:os] )
|
14
|
+
#override the build dir
|
15
|
+
h[:build_dir] = File.join("build", existing_settings[:product_revision] , existing_settings[:os], existing_settings[:configuration])
|
16
|
+
|
17
|
+
h
|
18
|
+
end
|
19
|
+
|
20
|
+
# path to target build: e.g. /hq/dev/jtools/build/2009.3/darwin/debug/jAnimal.bundle
|
21
|
+
|
22
|
+
# generate path to object build from source: e.g. /hq/dev/jtools/build/2009.3/darwin/debug/animal/sensor.o"
|
23
|
+
def object_file(source)
|
24
|
+
File.join(@settings[:build_dir], source.gsub("/src/","/").ext( @settings[:object_extension] ))
|
25
|
+
end
|
26
|
+
|
27
|
+
# collect all object files for this target
|
28
|
+
def object_files
|
29
|
+
@settings[:source_files].collect { |s| object_file(s) }
|
30
|
+
end
|
31
|
+
|
32
|
+
def c_compile_cmd(source)
|
33
|
+
compiler = "\"#{@settings[:compiler]}\""
|
34
|
+
object = "#{@settings[:object_flag]}\"#{object_file(source)}\""
|
35
|
+
source = "\"#{source}\""
|
36
|
+
inc_path = (@settings[:source_files].collect {|f| f.pathmap('%d')}.uniq | ( @settings[:include_paths] || [] )).collect { |el| "#{@settings[:include_flag]}\"#{el.to_s}\"" }.join(" ")
|
37
|
+
includes = ( @settings[:includes] || [] ).collect { |el| "-include \"#{el.to_s}\"" }.join(" ")
|
38
|
+
compiler_options = (@settings[:compiler_options] || [] ).collect { |el| el.to_s }.join(" ")
|
39
|
+
"#{compiler} #{compiler_options} #{source} #{object} #{inc_path} #{includes}"
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
def c_link_cmd
|
44
|
+
#puts "c_link_cmd" + ("*" * 10)
|
45
|
+
# puts @settings[:linker_options]
|
46
|
+
|
47
|
+
linker = "\"#{@settings[:linker]}\""
|
48
|
+
objects = object_files.collect { |el| "\"#{el.to_s}\"" }
|
49
|
+
# libstr = ((@settings[:libs] || []).collect { |el| "-l#{el.to_s}" } | (@settings[:static_libs] || []).collect { |el| "#{@settings[:static_prefix_flag]} -l#{el.to_s}" }).join(" ")
|
50
|
+
libstr = (@settings[:libs] || []).collect { |el| "#{@settings[:lib_flag]}#{el.to_s}#{@settings[:lib_ext]}" }.join(" ")
|
51
|
+
libpathstr = (@settings[:lib_paths] || []).collect { |el| "#{@settings[:libpath_flag]}\"#{el.to_s}\"" }.join(" ")
|
52
|
+
linkflagstr = ( @settings[:linker_options] || [] ).collect { |el| el.to_s }.join(" ")
|
53
|
+
dso_flagstr = (@settings[:dso_options] || [] ).collect { |el| el.to_s }.join(" ")
|
54
|
+
fwrk = (@settings[:frameworks] || [] ).collect { |el| "#{@settings[:framework_flag]} #{el.to_s}" }.join(" ")
|
55
|
+
"#{linker} #{dso_flagstr} #{linkflagstr} #{libpathstr} #{libstr} #{fwrk} #{@settings[:outputfile_flag]}\"#{filename}\" #{objects}"
|
56
|
+
end
|
57
|
+
|
58
|
+
def c_clean_cmd
|
59
|
+
objects = object_files.collect { |el| "\"#{el.to_s}\"" }
|
60
|
+
"rm -f \"#{filename}\" #{objects}"
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
def target_release_path
|
65
|
+
File.join( @settings[:versioned_os_release_path], @settings[:target_release_prefix], self.filename.pathmap('%f'))
|
66
|
+
end
|
67
|
+
|
68
|
+
def cpp_instance_tasks
|
69
|
+
files = @settings[:source_files]
|
70
|
+
unless files.nil?
|
71
|
+
|
72
|
+
# file tasks to compile objects from sources
|
73
|
+
######################################################
|
74
|
+
files.each do |f|
|
75
|
+
object = object_file(f)
|
76
|
+
file object => f do |t|
|
77
|
+
Flak.make_dir_for(object)
|
78
|
+
|
79
|
+
sh c_compile_cmd(f)
|
80
|
+
end
|
81
|
+
header = f.ext('h')
|
82
|
+
file object => header if File.exists?(header)
|
83
|
+
end
|
84
|
+
######################################################
|
85
|
+
|
86
|
+
# file tasks to link targets
|
87
|
+
######################################################
|
88
|
+
objects = object_files
|
89
|
+
file self.filename => objects do
|
90
|
+
Flak.make_dir_for(self.filename)
|
91
|
+
sh c_link_cmd
|
92
|
+
end
|
93
|
+
|
94
|
+
namespace @settings[:name].to_sym do
|
95
|
+
desc "build the #{@settings[:name].to_sym} binary"
|
96
|
+
task :build => self.filename # add named target
|
97
|
+
end
|
98
|
+
task :build => "#{@settings[:name].to_sym}:build"
|
99
|
+
######################################################
|
100
|
+
|
101
|
+
# tasks to clean the build
|
102
|
+
######################################################
|
103
|
+
namespace @settings[:name].to_sym do
|
104
|
+
desc "clean the #{@settings[:name].to_sym} build files"
|
105
|
+
task :clean do
|
106
|
+
sh c_clean_cmd
|
107
|
+
end
|
108
|
+
end
|
109
|
+
task :clean => "#{@settings[:name].to_sym}:clean"
|
110
|
+
######################################################
|
111
|
+
|
112
|
+
# plugins and executables release tasks
|
113
|
+
######################################################
|
114
|
+
released_binary = self.target_release_path
|
115
|
+
file released_binary => self.filename do
|
116
|
+
Flak.make_dir_for(released_binary)
|
117
|
+
rm_r released_binary if File.exists?(released_binary)
|
118
|
+
cp self.filename, released_binary
|
119
|
+
File.chmod 0755, released_binary
|
120
|
+
end
|
121
|
+
|
122
|
+
namespace @settings[:name].to_sym do
|
123
|
+
task :release => released_binary
|
124
|
+
end
|
125
|
+
task :release => "#{@settings[:name].to_sym}:release"
|
126
|
+
######################################################
|
127
|
+
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
|
137
|
+
|
data/lib/flak/delight.rb
ADDED
@@ -0,0 +1,121 @@
|
|
1
|
+
|
2
|
+
module Flak
|
3
|
+
|
4
|
+
module Delight
|
5
|
+
|
6
|
+
# to resolve settings for a template, we have access to the full hash of existing settings
|
7
|
+
# so that we may use, for example, some existing paths to build new paths for this object.
|
8
|
+
# in the first place, we call flatten_settings with the configuration and os, which
|
9
|
+
# definitely already exist.
|
10
|
+
def self.resolve_settings( existing_settings )
|
11
|
+
|
12
|
+
f = existing_settings[:root] + '/config/delight.yml'
|
13
|
+
h =Flak.flatten_settings(f,existing_settings[:configuration], existing_settings[:os] )
|
14
|
+
|
15
|
+
versioned_location = File.join("#{h[:delight_location]}-#{h[:delight_version]}")
|
16
|
+
|
17
|
+
h[:lib_paths] = [ File.join(versioned_location, "lib" ) ]
|
18
|
+
h[:include_paths] = [ File.join(versioned_location, "include") ]
|
19
|
+
h[:shader_compiler] = File.join(versioned_location, "bin","shaderdl")
|
20
|
+
h[:shader_build_dir] = existing_settings[:build_dir]
|
21
|
+
h[:libs] = ["3delight"]
|
22
|
+
h[:shader_include_paths] = [File.join(versioned_location, "maya","rsl") ]
|
23
|
+
|
24
|
+
h
|
25
|
+
end
|
26
|
+
|
27
|
+
# all shader build files
|
28
|
+
def shader_files()
|
29
|
+
@settings[:sl_files].collect { |f| shader_file(f) }
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
# path to shader build: e.g. /hq/dev/jtools/build/2009.3/darwin/debug/goosebump.sdl
|
34
|
+
def shader_file(source)
|
35
|
+
File.join(@settings[:shader_build_dir], source.gsub("/src/","/").ext('sdl'))
|
36
|
+
end
|
37
|
+
|
38
|
+
def shader_release_path(file)
|
39
|
+
File.join(@settings[:versioned_os_release_path] , @settings[:shader_release_prefix], file.pathmap('%f'))
|
40
|
+
end
|
41
|
+
|
42
|
+
def delight_shader_compile_cmd(dest,src)
|
43
|
+
include_path_string = (@settings[:sl_files].collect {|f| f.pathmap('%d')}.uniq | ( @settings[:shader_include_paths] || [] )).collect { |el| "-I#{el.to_s}" }.join(" ")
|
44
|
+
shader_type_string = "-DSHADER_TYPE_#{src.pathmap('%d').pathmap('%f')}"
|
45
|
+
"#{@settings[:shader_compiler]} #{shader_type_string} #{include_path_string} -d #{dest} #{src}"
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
def delight_clean_cmd
|
50
|
+
"rm -f #{shader_files}"
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
def delight_instance_tasks
|
55
|
+
# delight shader build and release tasks
|
56
|
+
######################################################
|
57
|
+
files = @settings[:sl_files]
|
58
|
+
unless files.nil?
|
59
|
+
|
60
|
+
files.each do |f|
|
61
|
+
|
62
|
+
|
63
|
+
|
64
|
+
# file tasks to build shader from sources
|
65
|
+
######################################################
|
66
|
+
target_shader = shader_file(f)
|
67
|
+
file target_shader => f do |t|
|
68
|
+
dest = Flak.make_dir_for(target_shader)
|
69
|
+
sh delight_shader_compile_cmd(dest,f)
|
70
|
+
end
|
71
|
+
|
72
|
+
namespace @settings[:name].to_sym do
|
73
|
+
desc "build the #{@settings[:name].to_sym} delight shaader"
|
74
|
+
task :build => target_shader
|
75
|
+
end
|
76
|
+
task :build => "#{@settings[:name].to_sym}:build"
|
77
|
+
######################################################
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
# file tasks to release shaders
|
82
|
+
######################################################
|
83
|
+
released_shader = shader_release_path(target_shader)
|
84
|
+
file released_shader => target_shader do
|
85
|
+
Flak.make_dir_for(released_shader)
|
86
|
+
cp target_shader, released_shader
|
87
|
+
end
|
88
|
+
|
89
|
+
namespace @settings[:name].to_sym do
|
90
|
+
task :release => released_shader
|
91
|
+
end
|
92
|
+
task :release => "#{@settings[:name].to_sym}:release"
|
93
|
+
######################################################
|
94
|
+
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
|
99
|
+
# task to clean the build files
|
100
|
+
######################################################
|
101
|
+
namespace @settings[:name].to_sym do
|
102
|
+
desc "clean the #{@settings[:name].to_sym} build files"
|
103
|
+
task :clean do
|
104
|
+
sh delight_clean_cmd
|
105
|
+
end
|
106
|
+
end
|
107
|
+
task :clean => "#{@settings[:name].to_sym}:clean"
|
108
|
+
######################################################
|
109
|
+
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
data/lib/flak/doc.rb
ADDED
@@ -0,0 +1,259 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Flak
|
4
|
+
|
5
|
+
module Doc
|
6
|
+
|
7
|
+
def self.resolve_settings( existing_settings )
|
8
|
+
f = existing_settings[:root] + '/config/doc.yml'
|
9
|
+
h =Flak.flatten_settings(f,existing_settings[:configuration], existing_settings[:os] )
|
10
|
+
|
11
|
+
h[:full_site_index_file] = File.join(existing_settings[:root],h[:site_index_file])
|
12
|
+
# puts "doc_release_root = #{existing_settings[:doc_release_root]}"
|
13
|
+
# puts "name = #{@settings[:name]}"
|
14
|
+
# h[:doc_release_path] = File.join( existing_settings[:doc_release_root] , existing_settings[:name])
|
15
|
+
h
|
16
|
+
end
|
17
|
+
|
18
|
+
def doc_dir
|
19
|
+
File.join( @settings[:target_root],"doc")
|
20
|
+
end
|
21
|
+
def output_dir()
|
22
|
+
File.join(doc_dir ,"output")
|
23
|
+
end
|
24
|
+
|
25
|
+
def content_dir()
|
26
|
+
File.join(doc_dir ,"content")
|
27
|
+
end
|
28
|
+
|
29
|
+
#h[:versioned_doc_release_path] = File.join( h[:release_root] , "#{h[:product_revision]}-#{h[:os]}" )
|
30
|
+
|
31
|
+
#def doc_release_path
|
32
|
+
# File.join( @settings[:doc_release_root] , @settings[:name])
|
33
|
+
## File.join(@settings[:release_root], "#{@settings[:product_revision]}-doc")
|
34
|
+
#end
|
35
|
+
|
36
|
+
def release_dir
|
37
|
+
File.join( @settings[:doc_release_root] , @settings[:name])
|
38
|
+
end
|
39
|
+
|
40
|
+
def copy_to_release_dir
|
41
|
+
r = release_dir
|
42
|
+
rm_rf r if File.exists? r
|
43
|
+
Flak.make_dir_for(r)
|
44
|
+
FileUtils.cp_r output_dir, r if File.exists? output_dir
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
# get the header information out of the index file so we can
|
49
|
+
# build its site index entry
|
50
|
+
#def index_hash
|
51
|
+
# h={}
|
52
|
+
# Dir.chdir(@root) do
|
53
|
+
# h = YAML::load_file( File.join(self.content_dir,'index.txt') )
|
54
|
+
# end
|
55
|
+
# h
|
56
|
+
#end
|
57
|
+
|
58
|
+
|
59
|
+
######################################################
|
60
|
+
def site_index_hash
|
61
|
+
h = {
|
62
|
+
'title' => "#{@settings[:product_revision]}",
|
63
|
+
'author' => @settings[:author],
|
64
|
+
'email' => @settings[:email],
|
65
|
+
'created_at' => "#{Date.today.day} #{Date::MONTHNAMES[Date.today.month]} #{Date.today.year}",
|
66
|
+
'description' => "#{@settings[:product_revision]} documentation",
|
67
|
+
'doc_type' => "Site Index",
|
68
|
+
'layout' => "tools_doc",
|
69
|
+
'filter' => ['erb', 'textile']
|
70
|
+
}
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
def write_site_index_header(f)
|
76
|
+
YAML.dump(site_index_hash, f)
|
77
|
+
f.puts '---'
|
78
|
+
f.puts "h3. Projects\n\n"
|
79
|
+
f.puts "table(d1)."
|
80
|
+
f.puts "|_(projname). Project Name |_(projauth). Author|_(projdate). Created|\n\n"
|
81
|
+
end
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
def write_header_to_site_index(f,hash)
|
86
|
+
unless hash.nil?
|
87
|
+
if hash.has_key?('description') && (!hash['description'].nil?)
|
88
|
+
|
89
|
+
doc_link = File.join(hash['title'],'index.html')
|
90
|
+
f.puts 'table(d1).'
|
91
|
+
f.puts "|(projname). \"#{hash['title']}\":#{doc_link} |(projauth). \"#{hash['author']}\":mailto:#{hash['email']} |(projdate). #{hash['created_at']}|"
|
92
|
+
f.puts '|\3(projdesc). '+ hash['description'] +'|'
|
93
|
+
f.puts "\n\n"
|
94
|
+
else
|
95
|
+
"WARNING: Problem with description for #{hash['title']}. Please check header in #{f}"
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
|
101
|
+
# List of documentation objects
|
102
|
+
##############################################
|
103
|
+
def doc_objects
|
104
|
+
arr = Array.new
|
105
|
+
FileList.new('**/target.yml').each do |path|
|
106
|
+
path = File.join(@settings[:root],path)
|
107
|
+
h = YAML::load_file(path)
|
108
|
+
if h.has_key?('templates')
|
109
|
+
if (h['templates']).kind_of?(Array)
|
110
|
+
if h['templates'].include?('doc')
|
111
|
+
index_file = File.join(File.dirname(path) , 'doc/content/index.txt')
|
112
|
+
if File.exists?(index_file)
|
113
|
+
arr << YAML::load_file(index_file )
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
arr.sort! {|x,y| x['title'] <=> y['title'] }
|
120
|
+
end
|
121
|
+
##############################################
|
122
|
+
|
123
|
+
def write_site_index
|
124
|
+
File.open(@settings[:full_site_index_file] , 'w') do |f|
|
125
|
+
self.write_site_index_header(f)
|
126
|
+
doc_objects.each do |hash|
|
127
|
+
write_header_to_site_index(f,hash)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
# if a command exists to do the conversion - make a file task for each of icon and out_icon
|
133
|
+
# that is - one for the hypershade and one for the outliner
|
134
|
+
def doc_instance_tasks
|
135
|
+
|
136
|
+
namespace @settings[:name].to_sym do
|
137
|
+
namespace :doc do
|
138
|
+
|
139
|
+
desc "build documentation for #{@settings[:name]}"
|
140
|
+
task :rebuild do
|
141
|
+
|
142
|
+
write_site_index if @settings[:name] == 'jRelease'
|
143
|
+
puts "doc_dir #{doc_dir}"
|
144
|
+
Dir.chdir(doc_dir) do |d|
|
145
|
+
sh "webby rebuild"
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
|
150
|
+
desc "release documentation for #{@settings[:name]}"
|
151
|
+
task :release => "#{@settings[:name].to_sym}:doc:rebuild" do
|
152
|
+
# release_doc
|
153
|
+
Dir.chdir(@settings[:target_dir]) do |d|
|
154
|
+
self.copy_to_release_dir
|
155
|
+
end
|
156
|
+
|
157
|
+
if (@settings[:name] == "jRelease" )
|
158
|
+
index = File.join( self.release_dir, 'site_index.html' )
|
159
|
+
# rel_notes = File.join(@settings[:versioned_os_release_path], 'doc',@settings[:name],'release_notes.html' )
|
160
|
+
css = File.join(self.release_dir,'css' )
|
161
|
+
images = File.join(self.release_dir,'images' )
|
162
|
+
dest = File.join(@settings[:doc_release_root],'' )
|
163
|
+
mv index , dest
|
164
|
+
# mv rel_notes , dest
|
165
|
+
cp_r css , dest
|
166
|
+
cp_r images , dest
|
167
|
+
end
|
168
|
+
|
169
|
+
end
|
170
|
+
|
171
|
+
desc "clobber documentation for #{@settings[:name]}"
|
172
|
+
task :clobber do
|
173
|
+
Dir.chdir(doc_dir) do |d|
|
174
|
+
sh "webby clobber"
|
175
|
+
end
|
176
|
+
# d = self.release_dir
|
177
|
+
rm_rf self.release_dir if File.exists? self.release_dir
|
178
|
+
end
|
179
|
+
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
desc "initialize a project for documenation"
|
186
|
+
task :init do
|
187
|
+
doc_dir = File.join(@settings[:target_dir],"doc")
|
188
|
+
flak_doc_dir = File.join(@settings[:root],"flak","doc")
|
189
|
+
index_erb_file = File.join(flak_doc_dir,"erb","index.txt.erb")
|
190
|
+
index_destination_file = File.join(content_dir,"index.txt")
|
191
|
+
|
192
|
+
|
193
|
+
FileUtils.mkdir_p doc_dir
|
194
|
+
|
195
|
+
Dir.chdir(doc_dir) do
|
196
|
+
Flak.copy_over File.join(flak_doc_dir,"Sitefile"), File.join(Dir.pwd, "Sitefile")
|
197
|
+
Flak.copy_over File.join(flak_doc_dir,"lib"), File.join(Dir.pwd, "lib")
|
198
|
+
Flak.copy_over File.join(flak_doc_dir,"tasks"), File.join(Dir.pwd, "tasks")
|
199
|
+
FileUtils.mkdir_p ["content","layouts","output","scenes"]
|
200
|
+
Dir.chdir("content") do
|
201
|
+
FileUtils.mkdir_p ["css","images","media"]
|
202
|
+
Dir.chdir("css") do
|
203
|
+
Flak.copy_over File.join(flak_doc_dir,"content/css/page.css"), File.join(Dir.pwd, "page.css")
|
204
|
+
end
|
205
|
+
Dir.chdir("images") do
|
206
|
+
[ "array.gif" , "connectable.gif" , "create.gif","edit.gif","forkme_right_red_aa0000.png","hidden.gif","input.gif","jToolsSnapon.jpg" ,"keyable.gif","logo.jpg","multiuse.gif","output.gif","query.gif","storable.gif","vfxoverflow_ribbon.png" ].each do |img|
|
207
|
+
#puts "******************"
|
208
|
+
#puts File.exists? File.join(flak_doc_dir,"content/images/",img)
|
209
|
+
# puts Dir.pwd
|
210
|
+
# puts File.exists? img
|
211
|
+
|
212
|
+
Flak.copy_over File.join(flak_doc_dir,"content/images/",img) , File.join(Dir.pwd, img)
|
213
|
+
end
|
214
|
+
end
|
215
|
+
end
|
216
|
+
Dir.chdir("layouts") do
|
217
|
+
Flak.copy_over File.join(flak_doc_dir,"layouts/tools_doc.html"), File.join(Dir.pwd, "tools_doc.html")
|
218
|
+
end
|
219
|
+
|
220
|
+
# make the index
|
221
|
+
|
222
|
+
write_erb_template(index_erb_file,index_destination_file, {:no_force => true})
|
223
|
+
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
227
|
+
# desc "create index.txt with common textile markup examples"
|
228
|
+
# task :create_skeleton_index => "#{@settings[:name].to_sym}:doc:create_doc_links" do
|
229
|
+
# write_erb_template(index_erb_file,index_destination_file)
|
230
|
+
# end
|
231
|
+
#
|
232
|
+
# desc "initialize a project for documenation"
|
233
|
+
# task :init => "#{@settings[:name].to_sym}:doc:create_skeleton_index"
|
234
|
+
|
235
|
+
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
|
240
|
+
task :doc => "#{@settings[:name].to_sym}:doc:release"
|
241
|
+
|
242
|
+
namespace :doc do
|
243
|
+
task :clobber => "#{@settings[:name].to_sym}:doc:clobber"
|
244
|
+
end
|
245
|
+
|
246
|
+
end
|
247
|
+
################################################################################
|
248
|
+
|
249
|
+
|
250
|
+
desc "release all documentation"
|
251
|
+
task :doc
|
252
|
+
|
253
|
+
desc "clobber all documentation"
|
254
|
+
namespace :doc do
|
255
|
+
task :clobber
|
256
|
+
end
|
257
|
+
end
|
258
|
+
end
|
259
|
+
|
data/lib/flak/gl.rb
ADDED
data/lib/flak/mac.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
|
4
|
+
module Flak
|
5
|
+
|
6
|
+
module Mac
|
7
|
+
|
8
|
+
|
9
|
+
def self.resolve_settings( existing_settings )
|
10
|
+
|
11
|
+
f = existing_settings[:root] + '/config/mac.yml'
|
12
|
+
h =Flak.flatten_settings(f,existing_settings[:configuration], existing_settings[:os] )
|
13
|
+
|
14
|
+
h
|
15
|
+
end
|
16
|
+
|
17
|
+
def mac_app_release_path(file)
|
18
|
+
File.join(@settings[:versioned_os_release_path], 'bin', "#{file.pathmap('%f').pathmap('%X')}-#{@settings[:product_revision]}#{file.pathmap('%x')}")
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
data/lib/flak/max.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
|
4
|
+
module Flak
|
5
|
+
|
6
|
+
module Max
|
7
|
+
|
8
|
+
def self.resolve_settings( existing_settings )
|
9
|
+
|
10
|
+
f = existing_settings[:root] + '/config/max.yml'
|
11
|
+
h =Flak.flatten_settings(f,existing_settings[:configuration], existing_settings[:os] )
|
12
|
+
|
13
|
+
case existing_settings[:os]
|
14
|
+
when /linux_64/
|
15
|
+
h[:nuke_location] = ""
|
16
|
+
when /darwin/
|
17
|
+
h[:nuke_location] = ""
|
18
|
+
when /win_64/
|
19
|
+
h[:nuke_location] = ""
|
20
|
+
end
|
21
|
+
h
|
22
|
+
end
|
23
|
+
|
24
|
+
def max_script_release_path(file)
|
25
|
+
File.join(@settings[:versioned_os_release_path], 'max', 'scripts', file.pathmap('%f'))
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|