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.
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