ritsu 0.7.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. data/README.md +95 -95
  2. data/bin/define_cpp_string +54 -54
  3. data/bin/ritsu +31 -31
  4. data/lib/ritsu.rb +16 -16
  5. data/lib/ritsu/block.rb +258 -258
  6. data/lib/ritsu/ext/cuda.rb +5 -5
  7. data/lib/ritsu/ext/cuda/external_library.rb +15 -15
  8. data/lib/ritsu/ext/cuda/project.rb +31 -31
  9. data/lib/ritsu/ext/cuda/src_files/cu_file.rb +46 -46
  10. data/lib/ritsu/ext/cuda/src_files/target_cmake_lists.rb +110 -110
  11. data/lib/ritsu/ext/cuda/target.rb +16 -16
  12. data/lib/ritsu/ext/cuda/targets/library.rb +16 -16
  13. data/lib/ritsu/ext/fake_install.rb +2 -2
  14. data/lib/ritsu/ext/fake_install/project.rb +16 -16
  15. data/lib/ritsu/ext/fake_install/src_files/project_cmake_lists.rb +45 -45
  16. data/lib/ritsu/ext/glsl.rb +1 -1
  17. data/lib/ritsu/ext/glsl/src_files/frag_file.rb +70 -70
  18. data/lib/ritsu/ext/glsl/src_files/vert_file.rb +70 -70
  19. data/lib/ritsu/ext/qt.rb +4 -4
  20. data/lib/ritsu/ext/qt/project.rb +47 -47
  21. data/lib/ritsu/ext/qt/src_files/header_file.rb +60 -60
  22. data/lib/ritsu/ext/qt/src_files/target_cmake_lists.rb +106 -106
  23. data/lib/ritsu/ext/qt/src_files/ui_file.rb +46 -46
  24. data/lib/ritsu/ext/test_case.rb +19 -19
  25. data/lib/ritsu/external_library.rb +46 -46
  26. data/lib/ritsu/project.rb +93 -93
  27. data/lib/ritsu/project_generator.rb +33 -33
  28. data/lib/ritsu/project_generators/default_generator.rb +72 -72
  29. data/lib/ritsu/project_generators/default_generator_files/Thorfile.erb +8 -8
  30. data/lib/ritsu/project_generators/default_generator_files/meta/project.rb.erb +10 -10
  31. data/lib/ritsu/src_file.rb +79 -79
  32. data/lib/ritsu/src_files.rb +12 -12
  33. data/lib/ritsu/src_files/cpp_file.rb +43 -43
  34. data/lib/ritsu/src_files/executable_cmake_lists.rb +39 -39
  35. data/lib/ritsu/src_files/header_file.rb +60 -60
  36. data/lib/ritsu/src_files/project_cmake_lists.rb +133 -133
  37. data/lib/ritsu/src_files/project_config_header_file.rb +14 -14
  38. data/lib/ritsu/src_files/project_config_header_template_file.rb +44 -44
  39. data/lib/ritsu/src_files/shared_library_cmake_lists.rb +39 -39
  40. data/lib/ritsu/src_files/static_library_cmake_lists.rb +39 -39
  41. data/lib/ritsu/src_files/target_cmake_lists.rb +189 -189
  42. data/lib/ritsu/src_files/templated_src_file.rb +47 -47
  43. data/lib/ritsu/src_files/unit.rb +32 -32
  44. data/lib/ritsu/target.rb +154 -154
  45. data/lib/ritsu/targets.rb +3 -3
  46. data/lib/ritsu/targets/executable.rb +44 -44
  47. data/lib/ritsu/targets/library.rb +29 -29
  48. data/lib/ritsu/targets/shared_library.rb +38 -38
  49. data/lib/ritsu/targets/static_library.rb +32 -32
  50. data/lib/ritsu/template.rb +68 -68
  51. data/lib/ritsu/template_policies.rb +132 -132
  52. data/lib/ritsu/test_helpers.rb +123 -123
  53. data/lib/ritsu/thors/default_thor.rb +1 -1
  54. data/lib/ritsu/utility.rb +7 -7
  55. data/lib/ritsu/utility/accessors.rb +29 -29
  56. data/lib/ritsu/utility/check_upon_add_set.rb +34 -34
  57. data/lib/ritsu/utility/file_robot.rb +128 -128
  58. data/lib/ritsu/utility/files.rb +12 -12
  59. data/lib/ritsu/utility/instance_dependencies.rb +112 -112
  60. data/lib/ritsu/utility/instance_set.rb +28 -28
  61. data/lib/ritsu/utility/platform.rb +20 -20
  62. data/lib/ritsu/utility/simple_io.rb +64 -64
  63. data/lib/ritsu/utility/single_instance.rb +33 -33
  64. data/lib/ritsu/utility/strings.rb +40 -40
  65. data/test/ritsu/block_test.rb +196 -196
  66. data/test/ritsu/ext/cuda/src_files/cuda_static_library_cmake_lists_test.rb +63 -63
  67. data/test/ritsu/external_library_test.rb +41 -41
  68. data/test/ritsu/project_generators/default_generator_test.rb +34 -34
  69. data/test/ritsu/project_test.rb +127 -127
  70. data/test/ritsu/src_file_test.rb +69 -69
  71. data/test/ritsu/src_files/cpp_file_test.rb +42 -42
  72. data/test/ritsu/src_files/executable_cmake_lists_test.rb +92 -92
  73. data/test/ritsu/src_files/header_file_test.rb +57 -57
  74. data/test/ritsu/src_files/project_cmake_lists_test.rb +159 -159
  75. data/test/ritsu/src_files/shared_library_cmake_lists_test.rb +54 -54
  76. data/test/ritsu/src_files/static_library_cmake_lists_test.rb +54 -54
  77. data/test/ritsu/src_files/target_cmake_lists_test.rb +15 -15
  78. data/test/ritsu/target_test.rb +105 -105
  79. data/test/ritsu/targets/executable_test.rb +10 -10
  80. data/test/ritsu/targets/shared_library_test.rb +10 -10
  81. data/test/ritsu/targets/static_library_test.rb +10 -10
  82. data/test/ritsu/utility/accessors_test.rb +14 -14
  83. data/test/ritsu/utility/check_upon_add_set_test.rb +31 -31
  84. data/test/ritsu/utility/file_robot_test.rb +175 -175
  85. data/test/ritsu/utility/strings_test.rb +28 -28
  86. data/test/test_helpers.rb +3 -3
  87. metadata +72 -124
  88. data/Thorfile +0 -104
  89. data/VERSION +0 -1
@@ -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 StaticLibraryCmakeLists < TargetCmakeLists
6
- class StaticLibraryTemplate < Ritsu::Template
7
- attr_accessor :target
8
- attr_accessor :parent
9
-
10
- def initialize(target, parent)
11
- super("StaticLibraryCmakeLists -- #{target.name} -- Static Library")
12
- @target = target
13
- @parent = parent
14
- end
15
-
16
- def update_block(block, options={})
17
- block.contents.clear
18
- block.contents << "ADD_LIBRARY(#{@target.name} STATIC ${#{@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, "StaticLibraryCmakeLists -- #{target.name}")
25
-
26
- position_to_insert = contents.index(dependencies_template)
27
- contents.insert(position_to_insert, StaticLibraryTemplate.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 StaticLibraryCmakeLists < TargetCmakeLists
6
+ class StaticLibraryTemplate < Ritsu::Template
7
+ attr_accessor :target
8
+ attr_accessor :parent
9
+
10
+ def initialize(target, parent)
11
+ super("StaticLibraryCmakeLists -- #{target.name} -- Static Library")
12
+ @target = target
13
+ @parent = parent
14
+ end
15
+
16
+ def update_block(block, options={})
17
+ block.contents.clear
18
+ block.contents << "ADD_LIBRARY(#{@target.name} STATIC ${#{@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, "StaticLibraryCmakeLists -- #{target.name}")
25
+
26
+ position_to_insert = contents.index(dependencies_template)
27
+ contents.insert(position_to_insert, StaticLibraryTemplate.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,190 +1,190 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../src_file')
2
- require File.expand_path(File.dirname(__FILE__) + '/../utility/instance_set')
3
- require File.expand_path(File.dirname(__FILE__) + '/../template')
4
- require File.expand_path(File.dirname(__FILE__) + '/../template_policies')
5
- require File.expand_path(File.dirname(__FILE__) + '/../src_files/templated_src_file')
6
-
7
- module Ritsu
8
- module SrcFiles
9
- class TargetCmakeLists < Ritsu::SrcFiles::TemplatedSrcFile
10
- class LibrariesTemplate < Ritsu::Template
11
- attr_accessor :target
12
-
13
- def initialize(target)
14
- super("TargetCmakeLists -- #{target.name} -- Libraries")
15
- @target = target
16
- end
17
-
18
- def update_block(block, options = {})
19
- external_libraries = target.dependency_libraries.to_a
20
- external_libraries.sort! {|x,y| x.name <=> y.name}
21
-
22
- dependency_targets = target.dependency_targets.to_a
23
- dependency_targets.sort! {|x,y| x.name <=> y.name}
24
-
25
- block.contents.clear
26
- external_libraries.each do |external_library|
27
- block.contents << external_library.cmake_depend_script
28
- end
29
- dependency_targets.each do |dependency_target|
30
- if dependency_target.cmake_depend_script.strip.length > 0
31
- block.contents << dependency_target.cmake_depend_script
32
- end
33
- end
34
-
35
- if target.library?
36
- if target.cmake_depend_script.strip.length > 0
37
- block.contents << target.cmake_depend_script
38
- end
39
- end
40
- end
41
- end
42
-
43
- class CustomCommandsTemplate < Ritsu::Template
44
- attr_accessor :target
45
-
46
- def initialize(target)
47
- super("TargetCmakeLists -- #{target.name} -- Custom Commands")
48
- @target = target
49
- end
50
-
51
- def update_block(block, options = {})
52
- block.contents.clear
53
- target.custom_commands.each do |custom_command|
54
- block.contents << custom_command.to_s
55
- end
56
- end
57
- end
58
-
59
- class SourceFilesTemplate < Ritsu::Template
60
- attr_accessor :target
61
-
62
- def initialize(target)
63
- super("TargetCmakeLists -- #{target.name} -- Source Files")
64
- @target = target
65
- end
66
-
67
- def src_files_var_name
68
- target.name.upcase + "_SRC_FILES"
69
- end
70
-
71
- def update_block(block, options = {})
72
- block.contents.clear
73
- block.contents << "SET(#{src_files_var_name}"
74
-
75
- src_files = target.src_files.to_a
76
- src_files.sort! {|x,y| x.src_path <=> y.src_path}
77
- src_files.each do |src_file|
78
- block.contents << " ${CMAKE_SOURCE_DIR}/#{src_file.src_path}" if src_file.include_in_source_files?
79
- end
80
-
81
- block.contents << ")"
82
- end
83
- end
84
-
85
- class DependenciesTemplate < Ritsu::Template
86
- attr_reader :target
87
-
88
- def initialize(target)
89
- super("TargetCmakeLists -- #{target.name} -- Dependencies")
90
- @target = target
91
- end
92
-
93
- def update_block(block, options = {})
94
- block.contents.clear
95
-
96
- external_libraries = target.dependency_libraries.to_a
97
- external_libraries.sort! {|x,y| x.name <=> y.name}
98
- dependency_targets = target.dependency_targets.to_a
99
- dependency_targets.sort! {|x,y| x.name <=> y.name}
100
-
101
- if external_libraries.length == 0 && dependency_targets.length == 0
102
- return
103
- end
104
-
105
- block.contents << "TARGET_LINK_LIBRARIES(#{target.name}"
106
-
107
- external_libraries.each do |external_library|
108
- block.contents << " " + external_library.cmake_name
109
- end
110
-
111
- dependency_targets.each do |dependency_target|
112
- block.contents << " " + dependency_target.name
113
- end
114
-
115
- block.contents << ")"
116
- end
117
- end
118
-
119
- class InstallTemplate < Ritsu::Template
120
- attr_reader :target
121
-
122
- def initialize(target)
123
- super("TargetCmakeLists -- #{target.name} -- Install")
124
- @target = target
125
-
126
- end
127
-
128
- def update_block(block, options = {})
129
- block.contents.clear
130
-
131
- if target.install?
132
- block.add_line "INSTALL(TARGETS #{target.name}"
133
- block.add_line " RUNTIME DESTINATION bin"
134
- block.add_line " LIBRARY DESTINATION lib"
135
- block.add_line ")"
136
- end
137
- end
138
-
139
- end
140
-
141
- class Template < Ritsu::Template
142
- include Ritsu::TemplatePolicies::FlexibleBlockMatchingAndCreateMissingBlockButLeaveUserTextBe
143
- attr_reader :target
144
- attr_reader :libraries_template
145
- attr_reader :custom_commands_template
146
- attr_reader :source_files_template
147
- attr_reader :dependencies_template
148
- attr_reader :install_template
149
-
150
- def initialize(target, id = nil)
151
- super(id)
152
- @target = target
153
-
154
- @libraries_template = LibrariesTemplate.new(@target)
155
- contents << @libraries_template
156
- contents << ""
157
-
158
- @custom_commands_template = CustomCommandsTemplate.new(@target)
159
- contents << @custom_commands_template
160
- contents << ""
161
-
162
- @source_files_template = SourceFilesTemplate.new(@target)
163
- contents << @source_files_template
164
- contents << ""
165
-
166
- @dependencies_template = DependenciesTemplate.new(@target)
167
- contents << @dependencies_template
168
- contents << ""
169
-
170
- @install_template = InstallTemplate.new(@target)
171
- contents << @install_template
172
- end
173
-
174
- def position_to_insert(block, new_block)
175
- block.contents.length
176
- end
177
- end
178
-
179
- def initialize(target)
180
- super("#{target.name}/CMakeLists.txt", target,
181
- :block_start_prefix=>'##<<',
182
- :block_end_prefix=>'##>>')
183
- end
184
-
185
- def include_in_source_files?
186
- false
187
- end
188
- end
189
- end
1
+ require File.expand_path(File.dirname(__FILE__) + '/../src_file')
2
+ require File.expand_path(File.dirname(__FILE__) + '/../utility/instance_set')
3
+ require File.expand_path(File.dirname(__FILE__) + '/../template')
4
+ require File.expand_path(File.dirname(__FILE__) + '/../template_policies')
5
+ require File.expand_path(File.dirname(__FILE__) + '/../src_files/templated_src_file')
6
+
7
+ module Ritsu
8
+ module SrcFiles
9
+ class TargetCmakeLists < Ritsu::SrcFiles::TemplatedSrcFile
10
+ class LibrariesTemplate < Ritsu::Template
11
+ attr_accessor :target
12
+
13
+ def initialize(target)
14
+ super("TargetCmakeLists -- #{target.name} -- Libraries")
15
+ @target = target
16
+ end
17
+
18
+ def update_block(block, options = {})
19
+ external_libraries = target.dependency_libraries.to_a
20
+ external_libraries.sort! {|x,y| x.name <=> y.name}
21
+
22
+ dependency_targets = target.dependency_targets.to_a
23
+ dependency_targets.sort! {|x,y| x.name <=> y.name}
24
+
25
+ block.contents.clear
26
+ external_libraries.each do |external_library|
27
+ block.contents << external_library.cmake_depend_script
28
+ end
29
+ dependency_targets.each do |dependency_target|
30
+ if dependency_target.cmake_depend_script.strip.length > 0
31
+ block.contents << dependency_target.cmake_depend_script
32
+ end
33
+ end
34
+
35
+ if target.library?
36
+ if target.cmake_depend_script.strip.length > 0
37
+ block.contents << target.cmake_depend_script
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ class CustomCommandsTemplate < Ritsu::Template
44
+ attr_accessor :target
45
+
46
+ def initialize(target)
47
+ super("TargetCmakeLists -- #{target.name} -- Custom Commands")
48
+ @target = target
49
+ end
50
+
51
+ def update_block(block, options = {})
52
+ block.contents.clear
53
+ target.custom_commands.each do |custom_command|
54
+ block.contents << custom_command.to_s
55
+ end
56
+ end
57
+ end
58
+
59
+ class SourceFilesTemplate < Ritsu::Template
60
+ attr_accessor :target
61
+
62
+ def initialize(target)
63
+ super("TargetCmakeLists -- #{target.name} -- Source Files")
64
+ @target = target
65
+ end
66
+
67
+ def src_files_var_name
68
+ target.name.upcase + "_SRC_FILES"
69
+ end
70
+
71
+ def update_block(block, options = {})
72
+ block.contents.clear
73
+ block.contents << "SET(#{src_files_var_name}"
74
+
75
+ src_files = target.src_files.to_a
76
+ src_files.sort! {|x,y| x.src_path <=> y.src_path}
77
+ src_files.each do |src_file|
78
+ block.contents << " ${CMAKE_SOURCE_DIR}/#{src_file.src_path}" if src_file.include_in_source_files?
79
+ end
80
+
81
+ block.contents << ")"
82
+ end
83
+ end
84
+
85
+ class DependenciesTemplate < Ritsu::Template
86
+ attr_reader :target
87
+
88
+ def initialize(target)
89
+ super("TargetCmakeLists -- #{target.name} -- Dependencies")
90
+ @target = target
91
+ end
92
+
93
+ def update_block(block, options = {})
94
+ block.contents.clear
95
+
96
+ external_libraries = target.dependency_libraries.to_a
97
+ external_libraries.sort! {|x,y| x.name <=> y.name}
98
+ dependency_targets = target.dependency_targets.to_a
99
+ dependency_targets.sort! {|x,y| x.name <=> y.name}
100
+
101
+ if external_libraries.length == 0 && dependency_targets.length == 0
102
+ return
103
+ end
104
+
105
+ block.contents << "TARGET_LINK_LIBRARIES(#{target.name}"
106
+
107
+ external_libraries.each do |external_library|
108
+ block.contents << " " + external_library.cmake_name
109
+ end
110
+
111
+ dependency_targets.each do |dependency_target|
112
+ block.contents << " " + dependency_target.name
113
+ end
114
+
115
+ block.contents << ")"
116
+ end
117
+ end
118
+
119
+ class InstallTemplate < Ritsu::Template
120
+ attr_reader :target
121
+
122
+ def initialize(target)
123
+ super("TargetCmakeLists -- #{target.name} -- Install")
124
+ @target = target
125
+
126
+ end
127
+
128
+ def update_block(block, options = {})
129
+ block.contents.clear
130
+
131
+ if target.install?
132
+ block.add_line "INSTALL(TARGETS #{target.name}"
133
+ block.add_line " RUNTIME DESTINATION bin"
134
+ block.add_line " LIBRARY DESTINATION lib"
135
+ block.add_line ")"
136
+ end
137
+ end
138
+
139
+ end
140
+
141
+ class Template < Ritsu::Template
142
+ include Ritsu::TemplatePolicies::FlexibleBlockMatchingAndCreateMissingBlockButLeaveUserTextBe
143
+ attr_reader :target
144
+ attr_reader :libraries_template
145
+ attr_reader :custom_commands_template
146
+ attr_reader :source_files_template
147
+ attr_reader :dependencies_template
148
+ attr_reader :install_template
149
+
150
+ def initialize(target, id = nil)
151
+ super(id)
152
+ @target = target
153
+
154
+ @libraries_template = LibrariesTemplate.new(@target)
155
+ contents << @libraries_template
156
+ contents << ""
157
+
158
+ @custom_commands_template = CustomCommandsTemplate.new(@target)
159
+ contents << @custom_commands_template
160
+ contents << ""
161
+
162
+ @source_files_template = SourceFilesTemplate.new(@target)
163
+ contents << @source_files_template
164
+ contents << ""
165
+
166
+ @dependencies_template = DependenciesTemplate.new(@target)
167
+ contents << @dependencies_template
168
+ contents << ""
169
+
170
+ @install_template = InstallTemplate.new(@target)
171
+ contents << @install_template
172
+ end
173
+
174
+ def position_to_insert(block, new_block)
175
+ block.contents.length
176
+ end
177
+ end
178
+
179
+ def initialize(target)
180
+ super("#{target.name}/CMakeLists.txt", target,
181
+ :block_start_prefix=>'##<<',
182
+ :block_end_prefix=>'##>>')
183
+ end
184
+
185
+ def include_in_source_files?
186
+ false
187
+ end
188
+ end
189
+ end
190
190
  end