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,4 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/qt/project")
2
- require File.expand_path(File.dirname(__FILE__) + "/qt/src_files/target_cmake_lists")
3
- require File.expand_path(File.dirname(__FILE__) + "/qt/src_files/ui_file")
4
- require File.expand_path(File.dirname(__FILE__) + "/qt/src_files/header_file")
1
+ require File.expand_path(File.dirname(__FILE__) + "/qt/project")
2
+ require File.expand_path(File.dirname(__FILE__) + "/qt/src_files/target_cmake_lists")
3
+ require File.expand_path(File.dirname(__FILE__) + "/qt/src_files/ui_file")
4
+ require File.expand_path(File.dirname(__FILE__) + "/qt/src_files/header_file")
@@ -1,48 +1,48 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../../project")
2
-
3
- module Ritsu
4
- class Project
5
- def setup_qt
6
- ### Qt ###
7
- add_external_library("qt") do |e|
8
- e.cmake_find_script <<-QT_FIND_SCRIPT
9
-
10
- FIND_PACKAGE(Qt4 REQUIRED)
11
-
12
- MACRO (RITSU_QT4_WRAP_UI outfiles )
13
- QT4_EXTRACT_OPTIONS(ui_files ui_options ${ARGN})
14
-
15
- FOREACH (it ${ui_files})
16
- GET_FILENAME_COMPONENT(outfile ${it} NAME_WE)
17
- GET_FILENAME_COMPONENT(infile ${it} ABSOLUTE)
18
- SET(outfile ${CMAKE_CURRENT_SOURCE_DIR}/ui_${outfile}.h)
19
- ADD_CUSTOM_COMMAND(OUTPUT ${outfile}
20
- COMMAND ${QT_UIC_EXECUTABLE}
21
- ARGS ${ui_options} -o ${outfile} ${infile}
22
- MAIN_DEPENDENCY ${infile})
23
- SET(${outfiles} ${${outfiles}} ${outfile})
24
- ENDFOREACH (it)
25
-
26
- ENDMACRO (RITSU_QT4_WRAP_UI)
27
-
28
- QT_FIND_SCRIPT
29
- e.cmake_depend_script "INCLUDE_DIRECTORIES(${QT_INCLUDE_DIR} ${QT_QTCORE_INCLUDE_DIR})"
30
- e.cmake_name "${QT_QTCORE_LIBRARY}"
31
- end
32
-
33
- ### Qt GUI ###
34
- add_external_library("qtgui") do |e|
35
- e.cmake_find_script ""
36
- e.cmake_depend_script "INCLUDE_DIRECTORIES(${QT_QTGUI_INCLUDE_DIR})"
37
- e.cmake_name "${QT_QTGUI_LIBRARY}"
38
- end
39
-
40
- ### Qt OpenGL ###
41
- add_external_library("qtopengl") do |e|
42
- e.cmake_find_script ""
43
- e.cmake_depend_script "INCLUDE_DIRECTORIES(${QT_QTOPENGL_INCLUDE_DIR})"
44
- e.cmake_name "${QT_QTOPENGL_LIBRARY}"
45
- end
46
- end
47
- end
1
+ require File.expand_path(File.dirname(__FILE__) + "/../../project")
2
+
3
+ module Ritsu
4
+ class Project
5
+ def setup_qt
6
+ ### Qt ###
7
+ add_external_library("qt") do |e|
8
+ e.cmake_find_script <<-QT_FIND_SCRIPT
9
+
10
+ FIND_PACKAGE(Qt4 REQUIRED)
11
+
12
+ MACRO (RITSU_QT4_WRAP_UI outfiles )
13
+ QT4_EXTRACT_OPTIONS(ui_files ui_options ${ARGN})
14
+
15
+ FOREACH (it ${ui_files})
16
+ GET_FILENAME_COMPONENT(outfile ${it} NAME_WE)
17
+ GET_FILENAME_COMPONENT(infile ${it} ABSOLUTE)
18
+ SET(outfile ${CMAKE_CURRENT_SOURCE_DIR}/ui_${outfile}.h)
19
+ ADD_CUSTOM_COMMAND(OUTPUT ${outfile}
20
+ COMMAND ${QT_UIC_EXECUTABLE}
21
+ ARGS ${ui_options} -o ${outfile} ${infile}
22
+ MAIN_DEPENDENCY ${infile})
23
+ SET(${outfiles} ${${outfiles}} ${outfile})
24
+ ENDFOREACH (it)
25
+
26
+ ENDMACRO (RITSU_QT4_WRAP_UI)
27
+
28
+ QT_FIND_SCRIPT
29
+ e.cmake_depend_script "INCLUDE_DIRECTORIES(${QT_INCLUDE_DIR} ${QT_QTCORE_INCLUDE_DIR})"
30
+ e.cmake_name "${QT_QTCORE_LIBRARY}"
31
+ end
32
+
33
+ ### Qt GUI ###
34
+ add_external_library("qtgui") do |e|
35
+ e.cmake_find_script ""
36
+ e.cmake_depend_script "INCLUDE_DIRECTORIES(${QT_QTGUI_INCLUDE_DIR})"
37
+ e.cmake_name "${QT_QTGUI_LIBRARY}"
38
+ end
39
+
40
+ ### Qt OpenGL ###
41
+ add_external_library("qtopengl") do |e|
42
+ e.cmake_find_script ""
43
+ e.cmake_depend_script "INCLUDE_DIRECTORIES(${QT_QTOPENGL_INCLUDE_DIR})"
44
+ e.cmake_name "${QT_QTOPENGL_LIBRARY}"
45
+ end
46
+ end
47
+ end
48
48
  end
@@ -1,60 +1,60 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../../../src_files/header_file")
2
-
3
- module Ritsu
4
- module SrcFiles
5
- class HeaderFile
6
- alias_method :initialize_target_before_qt, :initialize
7
-
8
- def initialize(src_path, owner, options={})
9
- options = {:qt_header_file => false}.merge(options)
10
- initialize_target_before_qt(src_path, owner)
11
- @qt_header_file = options[:qt_header_file]
12
- end
13
-
14
- def qt_header_file?
15
- @qt_header_file
16
- end
17
- end
18
-
19
- module AddQtHeaderFile
20
- def add_qt_header_file(path, options={})
21
- src_path = compute_src_path(path, options)
22
- HeaderFile.new(src_path, self, :qt_header_file=>true)
23
- end
24
-
25
- def add_qt_header_files(*paths)
26
- paths.each do |path|
27
- add_qt_header_file(path)
28
- end
29
- end
30
- end
31
-
32
- module AddQtUnit
33
- include AddCppFile
34
- include AddQtHeaderFile
35
-
36
- def add_qt_unit(name, options={})
37
- add_cpp_file(name + ".cpp")
38
- add_qt_header_file(name + ".h")
39
- end
40
-
41
- def add_qt_units(*names)
42
- names.each do |name|
43
- add_qt_unit(name)
44
- end
45
- end
46
- end
47
- end
48
- end
49
-
50
- module Ritsu
51
- class Target
52
- include Ritsu::SrcFiles::AddQtHeaderFile
53
- include Ritsu::SrcFiles::AddQtUnit
54
- end
55
-
56
- class Project
57
- include Ritsu::SrcFiles::AddQtHeaderFile
58
- include Ritsu::SrcFiles::AddQtUnit
59
- end
60
- end
1
+ require File.expand_path(File.dirname(__FILE__) + "/../../../src_files/header_file")
2
+
3
+ module Ritsu
4
+ module SrcFiles
5
+ class HeaderFile
6
+ alias_method :initialize_target_before_qt, :initialize
7
+
8
+ def initialize(src_path, owner, options={})
9
+ options = {:qt_header_file => false}.merge(options)
10
+ initialize_target_before_qt(src_path, owner)
11
+ @qt_header_file = options[:qt_header_file]
12
+ end
13
+
14
+ def qt_header_file?
15
+ @qt_header_file
16
+ end
17
+ end
18
+
19
+ module AddQtHeaderFile
20
+ def add_qt_header_file(path, options={})
21
+ src_path = compute_src_path(path, options)
22
+ HeaderFile.new(src_path, self, :qt_header_file=>true)
23
+ end
24
+
25
+ def add_qt_header_files(*paths)
26
+ paths.each do |path|
27
+ add_qt_header_file(path)
28
+ end
29
+ end
30
+ end
31
+
32
+ module AddQtUnit
33
+ include AddCppFile
34
+ include AddQtHeaderFile
35
+
36
+ def add_qt_unit(name, options={})
37
+ add_cpp_file(name + ".cpp")
38
+ add_qt_header_file(name + ".h")
39
+ end
40
+
41
+ def add_qt_units(*names)
42
+ names.each do |name|
43
+ add_qt_unit(name)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ module Ritsu
51
+ class Target
52
+ include Ritsu::SrcFiles::AddQtHeaderFile
53
+ include Ritsu::SrcFiles::AddQtUnit
54
+ end
55
+
56
+ class Project
57
+ include Ritsu::SrcFiles::AddQtHeaderFile
58
+ include Ritsu::SrcFiles::AddQtUnit
59
+ end
60
+ end
@@ -1,107 +1,107 @@
1
- require 'rubygems'
2
- require 'active_support/core_ext/string/starts_ends_with'
3
- require File.expand_path(File.dirname(__FILE__) + '/../../../src_files/target_cmake_lists')
4
-
5
- module Ritsu
6
- module SrcFiles
7
- class TargetCmakeLists
8
- class QtUiTemplate < Ritsu::Template
9
- attr_reader :target
10
-
11
- def initialize(target)
12
- super("TargetCmakeLists -- #{target.name} -- QtUi")
13
- @target = target
14
- end
15
-
16
- def ui_header_files_var_name
17
- "#{target.name.upcase}_UI_HEADER_FILES"
18
- end
19
-
20
- def update_block(block, options = {})
21
- block.clear_contents
22
-
23
- ui_files = target.src_files.select { |x| x.respond_to?(:ui_file?) && x.ui_file? }
24
- if ui_files.length == 0
25
- return
26
- end
27
- ui_files.sort! {|x,y| x.src_path <=> y.src_path}
28
-
29
- block.add_line "RITSU_QT4_WRAP_UI(#{ui_header_files_var_name}"
30
- block.indent
31
- ui_files.each do |ui_file|
32
- block.add_line("${CMAKE_SOURCE_DIR}/#{ui_file.src_path}")
33
- end
34
- block.outdent
35
- block.add_line ")"
36
- block.add_new_line
37
- block.add_line "SET(#{target.name.upcase}_SRC_FILES ${#{target.name.upcase}_SRC_FILES} ${#{ui_header_files_var_name}})"
38
- end
39
- end
40
-
41
- class QtMocTemplate < Ritsu::Template
42
- attr_reader :target
43
-
44
- def initialize(target)
45
- super("TargetCmakeLists -- #{target.name} -- QtMoc")
46
- @target = target
47
- end
48
-
49
- def moc_src_files_var_name
50
- "#{target.name.upcase}_MOC_SRC_FILES"
51
- end
52
-
53
- def update_block(block, options = {})
54
- block.clear_contents
55
-
56
- header_files = target.src_files.select { |x| x.respond_to?(:qt_header_file?) && x.qt_header_file? }
57
- if header_files.length == 0
58
- return
59
- end
60
- header_files.sort! {|x,y| x.src_path <=> y.src_path}
61
-
62
- block.add_line "QT4_WRAP_CPP(#{moc_src_files_var_name}"
63
- block.indent
64
- header_files.each do |header_file|
65
- block.add_line("${CMAKE_SOURCE_DIR}/#{header_file.src_path}")
66
- end
67
- block.outdent
68
- block.add_line ")"
69
- block.add_new_line
70
- block.add_line "SET(#{target.name.upcase}_SRC_FILES ${#{target.name.upcase}_SRC_FILES} ${#{moc_src_files_var_name}})"
71
- end
72
- end
73
-
74
- class Template
75
- attr_reader :qt_ui_template
76
- attr_reader :qt_moc_template
77
-
78
- alias_method :initialize_before_qt, :initialize
79
-
80
- def initialize(target, id = nil)
81
- initialize_before_qt(target, id)
82
-
83
- @qt_ui_template = QtUiTemplate.new(target)
84
- @qt_moc_template = QtMocTemplate.new(target)
85
-
86
- position = child_template_with_id_position(source_files_template.id) + 1
87
- contents.insert(position, @qt_moc_template)
88
- contents.insert(position, "")
89
- contents.insert(position, @qt_ui_template)
90
- contents.insert(position, "")
91
- end
92
-
93
- alias_method :position_to_insert_before_qt, :position_to_insert
94
-
95
- def position_to_insert(block, new_block)
96
- if new_block.id == qt_moc_template.id
97
- block.child_block_with_id_position(qt_ui_template.id) + 2
98
- elsif new_block.id == qt_ui_template.id
99
- block.child_block_with_id_position(source_files_template.id) + 2
100
- else
101
- position_to_insert_before_cuda(block, new_block)
102
- end
103
- end
104
- end
105
- end
106
- end
1
+ require 'rubygems'
2
+ require 'active_support/core_ext/string/starts_ends_with'
3
+ require File.expand_path(File.dirname(__FILE__) + '/../../../src_files/target_cmake_lists')
4
+
5
+ module Ritsu
6
+ module SrcFiles
7
+ class TargetCmakeLists
8
+ class QtUiTemplate < Ritsu::Template
9
+ attr_reader :target
10
+
11
+ def initialize(target)
12
+ super("TargetCmakeLists -- #{target.name} -- QtUi")
13
+ @target = target
14
+ end
15
+
16
+ def ui_header_files_var_name
17
+ "#{target.name.upcase}_UI_HEADER_FILES"
18
+ end
19
+
20
+ def update_block(block, options = {})
21
+ block.clear_contents
22
+
23
+ ui_files = target.src_files.select { |x| x.respond_to?(:ui_file?) && x.ui_file? }
24
+ if ui_files.length == 0
25
+ return
26
+ end
27
+ ui_files.sort! {|x,y| x.src_path <=> y.src_path}
28
+
29
+ block.add_line "RITSU_QT4_WRAP_UI(#{ui_header_files_var_name}"
30
+ block.indent
31
+ ui_files.each do |ui_file|
32
+ block.add_line("${CMAKE_SOURCE_DIR}/#{ui_file.src_path}")
33
+ end
34
+ block.outdent
35
+ block.add_line ")"
36
+ block.add_new_line
37
+ block.add_line "SET(#{target.name.upcase}_SRC_FILES ${#{target.name.upcase}_SRC_FILES} ${#{ui_header_files_var_name}})"
38
+ end
39
+ end
40
+
41
+ class QtMocTemplate < Ritsu::Template
42
+ attr_reader :target
43
+
44
+ def initialize(target)
45
+ super("TargetCmakeLists -- #{target.name} -- QtMoc")
46
+ @target = target
47
+ end
48
+
49
+ def moc_src_files_var_name
50
+ "#{target.name.upcase}_MOC_SRC_FILES"
51
+ end
52
+
53
+ def update_block(block, options = {})
54
+ block.clear_contents
55
+
56
+ header_files = target.src_files.select { |x| x.respond_to?(:qt_header_file?) && x.qt_header_file? }
57
+ if header_files.length == 0
58
+ return
59
+ end
60
+ header_files.sort! {|x,y| x.src_path <=> y.src_path}
61
+
62
+ block.add_line "QT4_WRAP_CPP(#{moc_src_files_var_name}"
63
+ block.indent
64
+ header_files.each do |header_file|
65
+ block.add_line("${CMAKE_SOURCE_DIR}/#{header_file.src_path}")
66
+ end
67
+ block.outdent
68
+ block.add_line ")"
69
+ block.add_new_line
70
+ block.add_line "SET(#{target.name.upcase}_SRC_FILES ${#{target.name.upcase}_SRC_FILES} ${#{moc_src_files_var_name}})"
71
+ end
72
+ end
73
+
74
+ class Template
75
+ attr_reader :qt_ui_template
76
+ attr_reader :qt_moc_template
77
+
78
+ alias_method :initialize_before_qt, :initialize
79
+
80
+ def initialize(target, id = nil)
81
+ initialize_before_qt(target, id)
82
+
83
+ @qt_ui_template = QtUiTemplate.new(target)
84
+ @qt_moc_template = QtMocTemplate.new(target)
85
+
86
+ position = child_template_with_id_position(source_files_template.id) + 1
87
+ contents.insert(position, @qt_moc_template)
88
+ contents.insert(position, "")
89
+ contents.insert(position, @qt_ui_template)
90
+ contents.insert(position, "")
91
+ end
92
+
93
+ alias_method :position_to_insert_before_qt, :position_to_insert
94
+
95
+ def position_to_insert(block, new_block)
96
+ if new_block.id == qt_moc_template.id
97
+ block.child_block_with_id_position(qt_ui_template.id) + 2
98
+ elsif new_block.id == qt_ui_template.id
99
+ block.child_block_with_id_position(source_files_template.id) + 2
100
+ else
101
+ position_to_insert_before_cuda(block, new_block)
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end
107
107
  end
@@ -1,47 +1,47 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../../../project")
2
- require File.expand_path(File.dirname(__FILE__) + "/../../../src_file")
3
-
4
- module Ritsu
5
- module SrcFiles
6
- class UiFile < Ritsu::SrcFile
7
- def initialize(src_path, owner)
8
- super(src_path, owner)
9
- end
10
-
11
- def header_file?
12
- false
13
- end
14
-
15
- def cpp_file?
16
- false
17
- end
18
-
19
- def ui_file?
20
- true
21
- end
22
- end
23
-
24
- module AddUiFile
25
- def add_ui_file(path, options={})
26
- src_path = compute_src_path(path, options)
27
- UiFile.new(src_path, self)
28
- end
29
-
30
- def add_ui_files(*paths)
31
- paths.each do |path|
32
- add_ui_file(path)
33
- end
34
- end
35
- end
36
- end
37
- end
38
-
39
- module Ritsu
40
- class Target
41
- include Ritsu::SrcFiles::AddUiFile
42
- end
43
-
44
- class Project
45
- include Ritsu::SrcFiles::AddUiFile
46
- end
1
+ require File.expand_path(File.dirname(__FILE__) + "/../../../project")
2
+ require File.expand_path(File.dirname(__FILE__) + "/../../../src_file")
3
+
4
+ module Ritsu
5
+ module SrcFiles
6
+ class UiFile < Ritsu::SrcFile
7
+ def initialize(src_path, owner)
8
+ super(src_path, owner)
9
+ end
10
+
11
+ def header_file?
12
+ false
13
+ end
14
+
15
+ def cpp_file?
16
+ false
17
+ end
18
+
19
+ def ui_file?
20
+ true
21
+ end
22
+ end
23
+
24
+ module AddUiFile
25
+ def add_ui_file(path, options={})
26
+ src_path = compute_src_path(path, options)
27
+ UiFile.new(src_path, self)
28
+ end
29
+
30
+ def add_ui_files(*paths)
31
+ paths.each do |path|
32
+ add_ui_file(path)
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+
39
+ module Ritsu
40
+ class Target
41
+ include Ritsu::SrcFiles::AddUiFile
42
+ end
43
+
44
+ class Project
45
+ include Ritsu::SrcFiles::AddUiFile
46
+ end
47
47
  end