ritsu 0.7.0 → 0.7.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/README.md +95 -95
- data/bin/define_cpp_string +54 -54
- data/bin/ritsu +31 -31
- data/lib/ritsu.rb +16 -16
- data/lib/ritsu/block.rb +258 -258
- data/lib/ritsu/ext/cuda.rb +5 -5
- data/lib/ritsu/ext/cuda/external_library.rb +15 -15
- data/lib/ritsu/ext/cuda/project.rb +31 -31
- data/lib/ritsu/ext/cuda/src_files/cu_file.rb +46 -46
- data/lib/ritsu/ext/cuda/src_files/target_cmake_lists.rb +110 -110
- data/lib/ritsu/ext/cuda/target.rb +16 -16
- data/lib/ritsu/ext/cuda/targets/library.rb +16 -16
- data/lib/ritsu/ext/fake_install.rb +2 -2
- data/lib/ritsu/ext/fake_install/project.rb +16 -16
- data/lib/ritsu/ext/fake_install/src_files/project_cmake_lists.rb +45 -45
- data/lib/ritsu/ext/glsl.rb +1 -1
- data/lib/ritsu/ext/glsl/src_files/frag_file.rb +70 -70
- data/lib/ritsu/ext/glsl/src_files/vert_file.rb +70 -70
- data/lib/ritsu/ext/qt.rb +4 -4
- data/lib/ritsu/ext/qt/project.rb +47 -47
- data/lib/ritsu/ext/qt/src_files/header_file.rb +60 -60
- data/lib/ritsu/ext/qt/src_files/target_cmake_lists.rb +106 -106
- data/lib/ritsu/ext/qt/src_files/ui_file.rb +46 -46
- data/lib/ritsu/ext/test_case.rb +19 -19
- data/lib/ritsu/external_library.rb +46 -46
- data/lib/ritsu/project.rb +93 -93
- data/lib/ritsu/project_generator.rb +33 -33
- data/lib/ritsu/project_generators/default_generator.rb +72 -72
- data/lib/ritsu/project_generators/default_generator_files/Thorfile.erb +8 -8
- data/lib/ritsu/project_generators/default_generator_files/meta/project.rb.erb +10 -10
- data/lib/ritsu/src_file.rb +79 -79
- data/lib/ritsu/src_files.rb +12 -12
- data/lib/ritsu/src_files/cpp_file.rb +43 -43
- data/lib/ritsu/src_files/executable_cmake_lists.rb +39 -39
- data/lib/ritsu/src_files/header_file.rb +60 -60
- data/lib/ritsu/src_files/project_cmake_lists.rb +133 -133
- data/lib/ritsu/src_files/project_config_header_file.rb +14 -14
- data/lib/ritsu/src_files/project_config_header_template_file.rb +44 -44
- data/lib/ritsu/src_files/shared_library_cmake_lists.rb +39 -39
- data/lib/ritsu/src_files/static_library_cmake_lists.rb +39 -39
- data/lib/ritsu/src_files/target_cmake_lists.rb +189 -189
- data/lib/ritsu/src_files/templated_src_file.rb +47 -47
- data/lib/ritsu/src_files/unit.rb +32 -32
- data/lib/ritsu/target.rb +154 -154
- data/lib/ritsu/targets.rb +3 -3
- data/lib/ritsu/targets/executable.rb +44 -44
- data/lib/ritsu/targets/library.rb +29 -29
- data/lib/ritsu/targets/shared_library.rb +38 -38
- data/lib/ritsu/targets/static_library.rb +32 -32
- data/lib/ritsu/template.rb +68 -68
- data/lib/ritsu/template_policies.rb +132 -132
- data/lib/ritsu/test_helpers.rb +123 -123
- data/lib/ritsu/thors/default_thor.rb +1 -1
- data/lib/ritsu/utility.rb +7 -7
- data/lib/ritsu/utility/accessors.rb +29 -29
- data/lib/ritsu/utility/check_upon_add_set.rb +34 -34
- data/lib/ritsu/utility/file_robot.rb +128 -128
- data/lib/ritsu/utility/files.rb +12 -12
- data/lib/ritsu/utility/instance_dependencies.rb +112 -112
- data/lib/ritsu/utility/instance_set.rb +28 -28
- data/lib/ritsu/utility/platform.rb +20 -20
- data/lib/ritsu/utility/simple_io.rb +64 -64
- data/lib/ritsu/utility/single_instance.rb +33 -33
- data/lib/ritsu/utility/strings.rb +40 -40
- data/test/ritsu/block_test.rb +196 -196
- data/test/ritsu/ext/cuda/src_files/cuda_static_library_cmake_lists_test.rb +63 -63
- data/test/ritsu/external_library_test.rb +41 -41
- data/test/ritsu/project_generators/default_generator_test.rb +34 -34
- data/test/ritsu/project_test.rb +127 -127
- data/test/ritsu/src_file_test.rb +69 -69
- data/test/ritsu/src_files/cpp_file_test.rb +42 -42
- data/test/ritsu/src_files/executable_cmake_lists_test.rb +92 -92
- data/test/ritsu/src_files/header_file_test.rb +57 -57
- data/test/ritsu/src_files/project_cmake_lists_test.rb +159 -159
- data/test/ritsu/src_files/shared_library_cmake_lists_test.rb +54 -54
- data/test/ritsu/src_files/static_library_cmake_lists_test.rb +54 -54
- data/test/ritsu/src_files/target_cmake_lists_test.rb +15 -15
- data/test/ritsu/target_test.rb +105 -105
- data/test/ritsu/targets/executable_test.rb +10 -10
- data/test/ritsu/targets/shared_library_test.rb +10 -10
- data/test/ritsu/targets/static_library_test.rb +10 -10
- data/test/ritsu/utility/accessors_test.rb +14 -14
- data/test/ritsu/utility/check_upon_add_set_test.rb +31 -31
- data/test/ritsu/utility/file_robot_test.rb +175 -175
- data/test/ritsu/utility/strings_test.rb +28 -28
- data/test/test_helpers.rb +3 -3
- metadata +72 -124
- data/Thorfile +0 -104
- data/VERSION +0 -1
@@ -1,9 +1,9 @@
|
|
1
|
-
# enconding: utf-8
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
|
-
require 'thor'
|
5
|
-
require 'ritsu'
|
6
|
-
require File.expand_path(File.dirname(__FILE__) + "/meta/project.rb")
|
7
|
-
|
8
|
-
class <%= @project_name.camelize %> < Ritsu::Thors::DefaultThor
|
1
|
+
# enconding: utf-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'thor'
|
5
|
+
require 'ritsu'
|
6
|
+
require File.expand_path(File.dirname(__FILE__) + "/meta/project.rb")
|
7
|
+
|
8
|
+
class <%= @project_name.camelize %> < Ritsu::Thors::DefaultThor
|
9
9
|
end
|
@@ -1,10 +1,10 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'ritsu'
|
3
|
-
|
4
|
-
Ritsu::Project.create('<%= @project_name %>') do |p|
|
5
|
-
|
6
|
-
##################
|
7
|
-
# YOUR CODE HERE #
|
8
|
-
##################
|
9
|
-
|
10
|
-
end
|
1
|
+
require 'rubygems'
|
2
|
+
require 'ritsu'
|
3
|
+
|
4
|
+
Ritsu::Project.create('<%= @project_name %>') do |p|
|
5
|
+
|
6
|
+
##################
|
7
|
+
# YOUR CODE HERE #
|
8
|
+
##################
|
9
|
+
|
10
|
+
end
|
data/lib/ritsu/src_file.rb
CHANGED
@@ -1,80 +1,80 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'active_support'
|
3
|
-
require File.expand_path(File.dirname(__FILE__) + '/utility/instance_set')
|
4
|
-
require File.expand_path(File.dirname(__FILE__) + '/utility/file_robot')
|
5
|
-
|
6
|
-
module Ritsu
|
7
|
-
class SrcFile
|
8
|
-
include Ritsu::Utility::InstanceSet
|
9
|
-
include Ritsu::Utility
|
10
|
-
|
11
|
-
attr_reader :src_path
|
12
|
-
attr_reader :owner
|
13
|
-
|
14
|
-
def self.is_valid_src_path?(p)
|
15
|
-
p =~ /^[A-Za-z0-9_.][A-Za-z0-9_.\-\/]*$/
|
16
|
-
end
|
17
|
-
|
18
|
-
def initialize(src_path, owner)
|
19
|
-
if !(self.class.is_valid_src_path?(src_path))
|
20
|
-
raise ArgumentError.new("'#{src_path}' is not a valid source path")
|
21
|
-
end
|
22
|
-
|
23
|
-
@src_path = src_path
|
24
|
-
@owner = owner
|
25
|
-
|
26
|
-
SrcFile.instances << self
|
27
|
-
@owner.src_files << self
|
28
|
-
end
|
29
|
-
|
30
|
-
def base_name
|
31
|
-
File.basename(src_path)
|
32
|
-
end
|
33
|
-
|
34
|
-
def self.validate_instance(instance)
|
35
|
-
if instances.select { |x| x.src_path == instance.src_path }.length > 0
|
36
|
-
raise ArgumentError.new("source file with path '#{instance.src_path}' already exists")
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def project
|
41
|
-
owner.project
|
42
|
-
end
|
43
|
-
|
44
|
-
def abs_path
|
45
|
-
File.expand_path(project.project_dir + "/src/" + src_path)
|
46
|
-
end
|
47
|
-
|
48
|
-
def create
|
49
|
-
FileRobot.create_file(abs_path, "\n")
|
50
|
-
end
|
51
|
-
|
52
|
-
def update
|
53
|
-
if !File.exists?(abs_path)
|
54
|
-
create
|
55
|
-
else
|
56
|
-
update_content
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
def update_content
|
61
|
-
end
|
62
|
-
|
63
|
-
def remove
|
64
|
-
FileRobot.remove_file(abs_path)
|
65
|
-
end
|
66
|
-
|
67
|
-
def include_in_source_files?
|
68
|
-
return true
|
69
|
-
end
|
70
|
-
|
71
|
-
def self.find_by_src_path(src_path)
|
72
|
-
instances.each do |instance|
|
73
|
-
if instance.src_path == src_path
|
74
|
-
return instance
|
75
|
-
end
|
76
|
-
end
|
77
|
-
nil
|
78
|
-
end
|
79
|
-
end
|
1
|
+
require 'rubygems'
|
2
|
+
require 'active_support'
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/utility/instance_set')
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + '/utility/file_robot')
|
5
|
+
|
6
|
+
module Ritsu
|
7
|
+
class SrcFile
|
8
|
+
include Ritsu::Utility::InstanceSet
|
9
|
+
include Ritsu::Utility
|
10
|
+
|
11
|
+
attr_reader :src_path
|
12
|
+
attr_reader :owner
|
13
|
+
|
14
|
+
def self.is_valid_src_path?(p)
|
15
|
+
p =~ /^[A-Za-z0-9_.][A-Za-z0-9_.\-\/]*$/
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize(src_path, owner)
|
19
|
+
if !(self.class.is_valid_src_path?(src_path))
|
20
|
+
raise ArgumentError.new("'#{src_path}' is not a valid source path")
|
21
|
+
end
|
22
|
+
|
23
|
+
@src_path = src_path
|
24
|
+
@owner = owner
|
25
|
+
|
26
|
+
SrcFile.instances << self
|
27
|
+
@owner.src_files << self
|
28
|
+
end
|
29
|
+
|
30
|
+
def base_name
|
31
|
+
File.basename(src_path)
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.validate_instance(instance)
|
35
|
+
if instances.select { |x| x.src_path == instance.src_path }.length > 0
|
36
|
+
raise ArgumentError.new("source file with path '#{instance.src_path}' already exists")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def project
|
41
|
+
owner.project
|
42
|
+
end
|
43
|
+
|
44
|
+
def abs_path
|
45
|
+
File.expand_path(project.project_dir + "/src/" + src_path)
|
46
|
+
end
|
47
|
+
|
48
|
+
def create
|
49
|
+
FileRobot.create_file(abs_path, "\n")
|
50
|
+
end
|
51
|
+
|
52
|
+
def update
|
53
|
+
if !File.exists?(abs_path)
|
54
|
+
create
|
55
|
+
else
|
56
|
+
update_content
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def update_content
|
61
|
+
end
|
62
|
+
|
63
|
+
def remove
|
64
|
+
FileRobot.remove_file(abs_path)
|
65
|
+
end
|
66
|
+
|
67
|
+
def include_in_source_files?
|
68
|
+
return true
|
69
|
+
end
|
70
|
+
|
71
|
+
def self.find_by_src_path(src_path)
|
72
|
+
instances.each do |instance|
|
73
|
+
if instance.src_path == src_path
|
74
|
+
return instance
|
75
|
+
end
|
76
|
+
end
|
77
|
+
nil
|
78
|
+
end
|
79
|
+
end
|
80
80
|
end
|
data/lib/ritsu/src_files.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/src_files/project_cmake_lists')
|
2
|
-
|
3
|
-
require File.expand_path(File.dirname(__FILE__) + '/src_files/templated_src_file')
|
4
|
-
|
5
|
-
require File.expand_path(File.dirname(__FILE__) + '/src_files/cpp_file')
|
6
|
-
require File.expand_path(File.dirname(__FILE__) + '/src_files/header_file')
|
7
|
-
require File.expand_path(File.dirname(__FILE__) + '/src_files/target_cmake_lists')
|
8
|
-
require File.expand_path(File.dirname(__FILE__) + '/src_files/executable_cmake_lists')
|
9
|
-
require File.expand_path(File.dirname(__FILE__) + '/src_files/shared_library_cmake_lists')
|
10
|
-
require File.expand_path(File.dirname(__FILE__) + '/src_files/static_library_cmake_lists')
|
11
|
-
require File.expand_path(File.dirname(__FILE__) + '/src_files/project_config_header_file')
|
12
|
-
require File.expand_path(File.dirname(__FILE__) + '/src_files/project_config_header_template_file')
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/src_files/project_cmake_lists')
|
2
|
+
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/src_files/templated_src_file')
|
4
|
+
|
5
|
+
require File.expand_path(File.dirname(__FILE__) + '/src_files/cpp_file')
|
6
|
+
require File.expand_path(File.dirname(__FILE__) + '/src_files/header_file')
|
7
|
+
require File.expand_path(File.dirname(__FILE__) + '/src_files/target_cmake_lists')
|
8
|
+
require File.expand_path(File.dirname(__FILE__) + '/src_files/executable_cmake_lists')
|
9
|
+
require File.expand_path(File.dirname(__FILE__) + '/src_files/shared_library_cmake_lists')
|
10
|
+
require File.expand_path(File.dirname(__FILE__) + '/src_files/static_library_cmake_lists')
|
11
|
+
require File.expand_path(File.dirname(__FILE__) + '/src_files/project_config_header_file')
|
12
|
+
require File.expand_path(File.dirname(__FILE__) + '/src_files/project_config_header_template_file')
|
13
13
|
require File.expand_path(File.dirname(__FILE__) + "/src_files/unit")
|
@@ -1,44 +1,44 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../src_file')
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/../project')
|
3
|
-
require File.expand_path(File.dirname(__FILE__) + '/../utility/instance_set')
|
4
|
-
|
5
|
-
module Ritsu
|
6
|
-
module SrcFiles
|
7
|
-
class CppFile < Ritsu::SrcFile
|
8
|
-
def initialize(src_path, owner)
|
9
|
-
super(src_path, owner)
|
10
|
-
end
|
11
|
-
|
12
|
-
def header_file?
|
13
|
-
false
|
14
|
-
end
|
15
|
-
|
16
|
-
def cpp_file?
|
17
|
-
true
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
module AddCppFile
|
22
|
-
def add_cpp_file(path, options={})
|
23
|
-
src_path = compute_src_path(path, options)
|
24
|
-
CppFile.new(src_path, self)
|
25
|
-
end
|
26
|
-
|
27
|
-
def add_cpp_files(*paths)
|
28
|
-
paths.each do |path|
|
29
|
-
add_cpp_file(path)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
module Ritsu
|
37
|
-
class Target
|
38
|
-
include Ritsu::SrcFiles::AddCppFile
|
39
|
-
end
|
40
|
-
|
41
|
-
class Project
|
42
|
-
include Ritsu::SrcFiles::AddCppFile
|
43
|
-
end
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../src_file')
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/../project')
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/../utility/instance_set')
|
4
|
+
|
5
|
+
module Ritsu
|
6
|
+
module SrcFiles
|
7
|
+
class CppFile < Ritsu::SrcFile
|
8
|
+
def initialize(src_path, owner)
|
9
|
+
super(src_path, owner)
|
10
|
+
end
|
11
|
+
|
12
|
+
def header_file?
|
13
|
+
false
|
14
|
+
end
|
15
|
+
|
16
|
+
def cpp_file?
|
17
|
+
true
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
module AddCppFile
|
22
|
+
def add_cpp_file(path, options={})
|
23
|
+
src_path = compute_src_path(path, options)
|
24
|
+
CppFile.new(src_path, self)
|
25
|
+
end
|
26
|
+
|
27
|
+
def add_cpp_files(*paths)
|
28
|
+
paths.each do |path|
|
29
|
+
add_cpp_file(path)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
module Ritsu
|
37
|
+
class Target
|
38
|
+
include Ritsu::SrcFiles::AddCppFile
|
39
|
+
end
|
40
|
+
|
41
|
+
class Project
|
42
|
+
include Ritsu::SrcFiles::AddCppFile
|
43
|
+
end
|
44
44
|
end
|
@@ -1,40 +1,40 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../src_files/target_cmake_lists')
|
2
|
-
|
3
|
-
module Ritsu
|
4
|
-
module SrcFiles
|
5
|
-
class ExecutableCmakeLists < TargetCmakeLists
|
6
|
-
class ExecutableTemplate < Ritsu::Template
|
7
|
-
attr_accessor :target
|
8
|
-
attr_accessor :parent
|
9
|
-
|
10
|
-
def initialize(target, parent)
|
11
|
-
super("ExecutableCmakeLists -- #{target.name} -- Executable")
|
12
|
-
@target = target
|
13
|
-
@parent = parent
|
14
|
-
end
|
15
|
-
|
16
|
-
def update_block(block, options={})
|
17
|
-
block.contents.clear
|
18
|
-
block.contents << "ADD_EXECUTABLE(#{@target.name} ${#{@parent.source_files_template.src_files_var_name}})"
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
class Template < Ritsu::SrcFiles::TargetCmakeLists::Template
|
23
|
-
def initialize(target, options={})
|
24
|
-
super(target, "ExecutableCmakeLists -- #{target.name}")
|
25
|
-
|
26
|
-
position_to_insert = contents.index(dependencies_template)
|
27
|
-
contents.insert(position_to_insert, ExecutableTemplate.new(target, self))
|
28
|
-
contents.insert(position_to_insert+1, "")
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def initialize(target)
|
33
|
-
super(target)
|
34
|
-
self.template = Template.new(target,
|
35
|
-
:block_start_prefix => '##<<',
|
36
|
-
:block_end_prefix => '##>>')
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../src_files/target_cmake_lists')
|
2
|
+
|
3
|
+
module Ritsu
|
4
|
+
module SrcFiles
|
5
|
+
class ExecutableCmakeLists < TargetCmakeLists
|
6
|
+
class ExecutableTemplate < Ritsu::Template
|
7
|
+
attr_accessor :target
|
8
|
+
attr_accessor :parent
|
9
|
+
|
10
|
+
def initialize(target, parent)
|
11
|
+
super("ExecutableCmakeLists -- #{target.name} -- Executable")
|
12
|
+
@target = target
|
13
|
+
@parent = parent
|
14
|
+
end
|
15
|
+
|
16
|
+
def update_block(block, options={})
|
17
|
+
block.contents.clear
|
18
|
+
block.contents << "ADD_EXECUTABLE(#{@target.name} ${#{@parent.source_files_template.src_files_var_name}})"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class Template < Ritsu::SrcFiles::TargetCmakeLists::Template
|
23
|
+
def initialize(target, options={})
|
24
|
+
super(target, "ExecutableCmakeLists -- #{target.name}")
|
25
|
+
|
26
|
+
position_to_insert = contents.index(dependencies_template)
|
27
|
+
contents.insert(position_to_insert, ExecutableTemplate.new(target, self))
|
28
|
+
contents.insert(position_to_insert+1, "")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def initialize(target)
|
33
|
+
super(target)
|
34
|
+
self.template = Template.new(target,
|
35
|
+
:block_start_prefix => '##<<',
|
36
|
+
:block_end_prefix => '##>>')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
40
|
end
|
@@ -1,61 +1,61 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../src_file')
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/../project')
|
3
|
-
require File.expand_path(File.dirname(__FILE__) + '/../utility/instance_set')
|
4
|
-
require File.expand_path(File.dirname(__FILE__) + '/../utility/file_robot')
|
5
|
-
|
6
|
-
module Ritsu
|
7
|
-
module SrcFiles
|
8
|
-
class HeaderFile < Ritsu::SrcFile
|
9
|
-
def initialize(src_path, owner)
|
10
|
-
super(src_path, owner)
|
11
|
-
end
|
12
|
-
|
13
|
-
def create
|
14
|
-
Ritsu::Utility::FileRobot.create_file(abs_path,
|
15
|
-
"#ifndef #{include_guard}\n" +
|
16
|
-
"#define #{include_guard}\n" +
|
17
|
-
"\n" +
|
18
|
-
"////////////////////\n" +
|
19
|
-
"// YOUR CODE HERE //\n" +
|
20
|
-
"////////////////////\n" +
|
21
|
-
"\n" +
|
22
|
-
"#endif\n")
|
23
|
-
end
|
24
|
-
|
25
|
-
def include_guard
|
26
|
-
'__' + project.name.underscore.upcase + '_' + src_path.gsub(/[.\/]+/,'_').upcase + '__'
|
27
|
-
end
|
28
|
-
|
29
|
-
def header_file?
|
30
|
-
true
|
31
|
-
end
|
32
|
-
|
33
|
-
def cpp_file?
|
34
|
-
false
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
module AddHeaderFile
|
39
|
-
def add_header_file(path, options={})
|
40
|
-
src_path = compute_src_path(path, options)
|
41
|
-
HeaderFile.new(src_path, self)
|
42
|
-
end
|
43
|
-
|
44
|
-
def add_header_files(*paths)
|
45
|
-
paths.each do |path|
|
46
|
-
add_header_file(path)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
module Ritsu
|
54
|
-
class Target
|
55
|
-
include Ritsu::SrcFiles::AddHeaderFile
|
56
|
-
end
|
57
|
-
|
58
|
-
class Project
|
59
|
-
include Ritsu::SrcFiles::AddHeaderFile
|
60
|
-
end
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../src_file')
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/../project')
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/../utility/instance_set')
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + '/../utility/file_robot')
|
5
|
+
|
6
|
+
module Ritsu
|
7
|
+
module SrcFiles
|
8
|
+
class HeaderFile < Ritsu::SrcFile
|
9
|
+
def initialize(src_path, owner)
|
10
|
+
super(src_path, owner)
|
11
|
+
end
|
12
|
+
|
13
|
+
def create
|
14
|
+
Ritsu::Utility::FileRobot.create_file(abs_path,
|
15
|
+
"#ifndef #{include_guard}\n" +
|
16
|
+
"#define #{include_guard}\n" +
|
17
|
+
"\n" +
|
18
|
+
"////////////////////\n" +
|
19
|
+
"// YOUR CODE HERE //\n" +
|
20
|
+
"////////////////////\n" +
|
21
|
+
"\n" +
|
22
|
+
"#endif\n")
|
23
|
+
end
|
24
|
+
|
25
|
+
def include_guard
|
26
|
+
'__' + project.name.underscore.upcase + '_' + src_path.gsub(/[.\/]+/,'_').upcase + '__'
|
27
|
+
end
|
28
|
+
|
29
|
+
def header_file?
|
30
|
+
true
|
31
|
+
end
|
32
|
+
|
33
|
+
def cpp_file?
|
34
|
+
false
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
module AddHeaderFile
|
39
|
+
def add_header_file(path, options={})
|
40
|
+
src_path = compute_src_path(path, options)
|
41
|
+
HeaderFile.new(src_path, self)
|
42
|
+
end
|
43
|
+
|
44
|
+
def add_header_files(*paths)
|
45
|
+
paths.each do |path|
|
46
|
+
add_header_file(path)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
module Ritsu
|
54
|
+
class Target
|
55
|
+
include Ritsu::SrcFiles::AddHeaderFile
|
56
|
+
end
|
57
|
+
|
58
|
+
class Project
|
59
|
+
include Ritsu::SrcFiles::AddHeaderFile
|
60
|
+
end
|
61
61
|
end
|