Mxx_ru 1.3.2 → 1.4.0

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 (67) hide show
  1. data/Rakefile +4 -3
  2. data/bin/mxxrugen +197 -0
  3. data/lib/mxx_ru/cmd_line_option_processor.rb +126 -0
  4. data/lib/mxx_ru/cpp.rb +1 -0
  5. data/lib/mxx_ru/cpp/composite.rb +2 -12
  6. data/lib/mxx_ru/cpp/lib_collection.rb +96 -0
  7. data/lib/mxx_ru/cpp/mode.rb +72 -10
  8. data/lib/mxx_ru/cpp/target.rb +85 -136
  9. data/lib/mxx_ru/cpp/toolset.rb +96 -9
  10. data/lib/mxx_ru/cpp/toolsets/bcc_win32_family.rb +5 -5
  11. data/lib/mxx_ru/cpp/toolsets/c89_nsk_family.rb +5 -5
  12. data/lib/mxx_ru/cpp/toolsets/gcc_family.rb +5 -5
  13. data/lib/mxx_ru/cpp/toolsets/gcc_mingw.rb +2 -2
  14. data/lib/mxx_ru/cpp/toolsets/vc8.rb +6 -1
  15. data/lib/mxx_ru/cpp/toolsets/vc_family.rb +4 -4
  16. data/lib/mxx_ru/generators/bin-unittest/g.rb +200 -0
  17. data/lib/mxx_ru/generators/bin-unittest/template.erb +16 -0
  18. data/lib/mxx_ru/generators/cpp-composite/g.rb +37 -0
  19. data/lib/mxx_ru/generators/cpp-dll/g.rb +37 -0
  20. data/lib/mxx_ru/generators/cpp-exe/g.rb +37 -0
  21. data/lib/mxx_ru/generators/cpp-lib-collection/g.rb +37 -0
  22. data/lib/mxx_ru/generators/cpp-lib/g.rb +37 -0
  23. data/lib/mxx_ru/generators/impl/cpp/generation.rb +291 -0
  24. data/lib/mxx_ru/generators/impl/cpp/template.erb +27 -0
  25. data/lib/mxx_ru/generators/impl/std_receiver.rb +80 -0
  26. data/lib/mxx_ru/util.rb +110 -22
  27. data/lib/mxx_ru/version.rb +38 -0
  28. data/tests/mxx_ru/generators/cpp/tc_generator.rb +34 -0
  29. data/tests/mxx_ru/generators/cpp/tc_options.rb +79 -0
  30. data/tests/mxx_ru/generators/cpp/tc_template_params.rb +45 -0
  31. data/tests/mxx_ru/lib_collection/a.cpp +8 -0
  32. data/tests/mxx_ru/lib_collection/a.hpp +8 -0
  33. data/tests/mxx_ru/lib_collection/a.rb +8 -0
  34. data/tests/mxx_ru/lib_collection/b.cpp +8 -0
  35. data/tests/mxx_ru/lib_collection/b.hpp +8 -0
  36. data/tests/mxx_ru/lib_collection/b.rb +8 -0
  37. data/tests/mxx_ru/lib_collection/c.cpp +8 -0
  38. data/tests/mxx_ru/lib_collection/c.hpp +8 -0
  39. data/tests/mxx_ru/lib_collection/c.rb +8 -0
  40. data/tests/mxx_ru/lib_collection/collection_a_b.rb +7 -0
  41. data/tests/mxx_ru/lib_collection/collection_c_d.rb +7 -0
  42. data/tests/mxx_ru/lib_collection/collection_c_d_e.rb +7 -0
  43. data/tests/mxx_ru/lib_collection/collection_f.rb +6 -0
  44. data/tests/mxx_ru/lib_collection/collection_i.rb +6 -0
  45. data/tests/mxx_ru/lib_collection/d.cpp +8 -0
  46. data/tests/mxx_ru/lib_collection/d.hpp +8 -0
  47. data/tests/mxx_ru/lib_collection/d.rb +8 -0
  48. data/tests/mxx_ru/lib_collection/e.cpp +8 -0
  49. data/tests/mxx_ru/lib_collection/e.hpp +8 -0
  50. data/tests/mxx_ru/lib_collection/e.rb +8 -0
  51. data/tests/mxx_ru/lib_collection/f.cpp +8 -0
  52. data/tests/mxx_ru/lib_collection/f.hpp +8 -0
  53. data/tests/mxx_ru/lib_collection/f.rb +7 -0
  54. data/tests/mxx_ru/lib_collection/g.cpp +8 -0
  55. data/tests/mxx_ru/lib_collection/g.hpp +8 -0
  56. data/tests/mxx_ru/lib_collection/g.rb +7 -0
  57. data/tests/mxx_ru/lib_collection/i.cpp +10 -0
  58. data/tests/mxx_ru/lib_collection/i.hpp +16 -0
  59. data/tests/mxx_ru/lib_collection/i.rb +17 -0
  60. data/tests/mxx_ru/lib_collection/main.cpp +18 -0
  61. data/tests/mxx_ru/lib_collection/main.rb +12 -0
  62. data/tests/mxx_ru/lib_collection/tc_lib_collection.rb +17 -0
  63. data/tests/mxx_ru/toolset/tc_tag_search.rb +68 -0
  64. data/tests/test_with_compilation.rb +1 -1
  65. metadata +67 -14
  66. data/tests/cpp/mswin_res_dll/o/dll.o +0 -0
  67. data/tests/cpp/mswin_res_exe/o/main.o +0 -0
@@ -44,27 +44,27 @@ module MxxRu
44
44
 
45
45
  # Returns compiler name.
46
46
  def compiler_name
47
- return "bcc32"
47
+ tag( COMPILER_NAME_TAG, "bcc32" )
48
48
  end
49
49
 
50
50
  # Returns linker name.
51
51
  def linker_name
52
- return "ilink32"
52
+ tag( LINKER_NAME_TAG, "ilink32" )
53
53
  end
54
54
 
55
55
  # Returns librarian name.
56
56
  def librarian_name
57
- return "tlib"
57
+ tag( LIBRARIAN_NAME_TAG, "tlib" )
58
58
  end
59
59
 
60
60
  # Returns resource compiler name.
61
61
  def rc_name
62
- return "brc32"
62
+ tag( RC_NAME_TAG, "brc32" )
63
63
  end
64
64
 
65
65
  # Returns the name of import library creator.
66
66
  def import_librarian_name
67
- return "implib"
67
+ tag( IMPORT_LIBRARIAN_NAME_TAG, "implib" )
68
68
  end
69
69
 
70
70
  # See description at MxxRu::Cpp::Toolset#setup_mandatory_options.
@@ -45,22 +45,22 @@ module MxxRu
45
45
 
46
46
  # Returns C compiler name
47
47
  def c_compiler_name
48
- return "c89"
48
+ tag( [ C_COMPILER_NAME_TAG, COMPILER_NAME_TAG ], "c89" )
49
49
  end
50
50
 
51
51
  # Returns C++ compiler name.
52
52
  def cpp_compiler_name
53
- return "c89"
53
+ tag( [ CPP_COMPILER_NAME_TAG, COMPILER_NAME_TAG ], "c89" )
54
54
  end
55
55
 
56
56
  # Returns linker name.
57
57
  def linker_name
58
- return "c89"
58
+ tag( LINKER_NAME_TAG, "c89" )
59
59
  end
60
60
 
61
61
  # Returns librarian name.
62
62
  def librarian_name
63
- return "ar"
63
+ tag( LIBRARIAN_NAME_TAG, "ar" )
64
64
  end
65
65
 
66
66
  # See description at MxxRu::Cpp::Toolset#setup_mandatory_options.
@@ -230,7 +230,7 @@ module MxxRu
230
230
 
231
231
  # And all required libraries.
232
232
  a_target.mxx_required_prjs.each { |d|
233
- if d.kind_of?( MxxRu::BinaryTarget )
233
+ if Toolset::has_linkable_dependecies?( d )
234
234
  result.add_libs( d.mxx_required_libs )
235
235
  result.add_lib_paths( d.mxx_required_lib_paths )
236
236
  end
@@ -51,22 +51,22 @@ module MxxRu
51
51
 
52
52
  # Returns C compiler name.
53
53
  def c_compiler_name
54
- return "gcc"
54
+ tag( [ C_COMPILER_NAME_TAG, COMPILER_NAME_TAG ], "gcc" )
55
55
  end
56
56
 
57
57
  # Returns C++ compiler name.
58
58
  def cpp_compiler_name
59
- return "g++"
59
+ tag( [ CPP_COMPILER_NAME_TAG, COMPILER_NAME_TAG ], "g++" )
60
60
  end
61
61
 
62
62
  # Returns linker name.
63
63
  def linker_name
64
- return "g++"
64
+ tag( LINKER_NAME_TAG, "g++" )
65
65
  end
66
66
 
67
67
  # Returns librarian name.
68
68
  def librarian_name
69
- return "ar"
69
+ tag( LIBRARIAN_NAME_TAG, "ar" )
70
70
  end
71
71
 
72
72
  # See description at MxxRu::Cpp::Toolset#setup_mandatory_options.
@@ -234,7 +234,7 @@ module MxxRu
234
234
 
235
235
  # And all required libraries.
236
236
  a_target.mxx_required_prjs.each { |d|
237
- if d.kind_of?( MxxRu::BinaryTarget )
237
+ if Toolset::has_linkable_dependecies?( d )
238
238
  result.add_libs( d.mxx_required_libs )
239
239
  result.add_lib_paths( d.mxx_required_lib_paths )
240
240
  end
@@ -47,7 +47,7 @@ module MxxRu
47
47
 
48
48
  # Returns resource compiler name.
49
49
  def rc_name
50
- return "windres"
50
+ tag( RC_NAME_TAG, "windres" )
51
51
  end
52
52
 
53
53
  # See description at MxxRu::Cpp::Toolset#setup_mandatory_options.
@@ -59,7 +59,7 @@ module MxxRu
59
59
  super( target )
60
60
 
61
61
  if SCREEN_WINDOW == target.mxx_screen_mode
62
- target.compiler_option( "-mwindows" )
62
+ target.linker_option( "-mwindows" )
63
63
  else
64
64
  target.linker_option( "-mconsole" )
65
65
  end
@@ -65,6 +65,11 @@ module MxxRu
65
65
  # [_ver_lo_] low version number. Value: 0.
66
66
  class Vc8 < MxxRu::Cpp::Toolsets::VcFamily
67
67
 
68
+ # Tag name for a custom manifest tool name.
69
+ #
70
+ # Since v.1.4.0
71
+ MT_NAME_TAG = 'mt_name'
72
+
68
73
  # Actual manifest description.
69
74
  class ActualManifest
70
75
  attr_reader :manifest_file
@@ -397,7 +402,7 @@ module MxxRu
397
402
 
398
403
  # Name of manifest tool executable
399
404
  def mt_name
400
- "mt"
405
+ tag( MT_NAME_TAG, "mt" )
401
406
  end
402
407
 
403
408
  # Checking manifest params validity.
@@ -44,22 +44,22 @@ module MxxRu
44
44
 
45
45
  # Returns compiler name.
46
46
  def compiler_name
47
- return "cl"
47
+ return tag( COMPILER_NAME_TAG, "cl" )
48
48
  end
49
49
 
50
50
  # Returns linker name.
51
51
  def linker_name
52
- return "link"
52
+ return tag( LINKER_NAME_TAG, "link" )
53
53
  end
54
54
 
55
55
  # Returns librarian name.
56
56
  def librarian_name
57
- return "lib"
57
+ return tag( LIBRARIAN_NAME_TAG, "lib" )
58
58
  end
59
59
 
60
60
  # Returns resource compiler name.
61
61
  def rc_name
62
- return "rc"
62
+ return tag( RC_NAME_TAG, "rc" )
63
63
  end
64
64
 
65
65
  # See description at MxxRu::Cpp::Toolset#setup_mandatory_options.
@@ -0,0 +1,200 @@
1
+ #--
2
+ # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
+ # Copyright (c) 2004-2006, JSC Intervale
4
+ # Copyright (c) 2006, The Mxx_ru Project
5
+ # All rights reserved.
6
+ #
7
+ # Redistribution and use in source and binary forms, with or without modification,
8
+ # are permitted provided that the following conditions are met:
9
+ #
10
+ # 1. Redistributions of source code must retain the above copyright notice,
11
+ # this list of conditions and the following disclaimer.
12
+ # 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ # this list of conditions and the following disclaimer in the documentation
14
+ # and/or other materials provided with the distribution.
15
+ # 3. The name of the author may not be used to endorse or promote products derived
16
+ # from this software without specific prior written permission.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
19
+ # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
20
+ # AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
21
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23
+ # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
+ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
+ # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26
+ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+ #++
28
+
29
+ # Since v.1.4.0
30
+ #
31
+ # Implementation of project's stabs generation for binary unit test projects.
32
+
33
+ require 'erb'
34
+ require 'optparse'
35
+
36
+ require 'mxx_ru/generators/impl/std_receiver'
37
+
38
+ module MxxRu
39
+
40
+ module Generators
41
+
42
+ module BinaryUnittest
43
+
44
+ # Class for storing command-line arguments as options.
45
+ #
46
+ # Usage:
47
+ # options = Options.parse( args, banner )
48
+ #
49
+ class Options
50
+ # Project path (name of project directory in cmd-line). nil if missing.
51
+ attr_accessor :project_path
52
+ # Name of output file (-o, --output-file). nil if missing.
53
+ attr_accessor :output_file
54
+
55
+ # Parsing command-line arguments and returning Options instance.
56
+ #
57
+ # Calls exit(1) if --help present in _args_.
58
+ #
59
+ def Options.parse( args, banner )
60
+ parser = OptionParser.new
61
+
62
+ result = Options.new
63
+
64
+ parser.banner = banner
65
+
66
+ parser.on( '-o', '--output-file FILE', 'Output file name' ) do |p|
67
+ result.output_file = p
68
+ end
69
+
70
+ parser.on_tail( '-h', '--help', 'Show this message' ) do
71
+ puts parser
72
+ exit(1)
73
+ end
74
+
75
+ parser.order!( args ) do |noarg|
76
+ # Any non-options is considered as project path name.
77
+ result.project_path = noarg
78
+ end
79
+
80
+ result
81
+ end
82
+ end # class Options
83
+
84
+ # Class to be used in ERb template generation.
85
+ #
86
+ # Usage:
87
+ # template_params = TemplateParams.new( target_type, options )
88
+ # template = ERb.new( IO.read( some_template_file ) )
89
+ # result = template.generate( template.get_binding )
90
+ #
91
+ class TemplateParams
92
+ # For a case when project_path is undetectable.
93
+ YOUR_PROJECT_PATH = 'your project path'
94
+ # For a case when output_file is undetectable.
95
+ DEFAULT_UNITTEST_PROJECT = 'prj.ut.rb'
96
+
97
+ # Path name.
98
+ attr_reader :path_name
99
+ # Name of unit test project file.
100
+ attr_reader :unittest_project
101
+
102
+ # Param target_type must be present in @@setup_target_functions.
103
+ def initialize( options )
104
+ @path_name = try_detect_path_name( options )
105
+ @unittest_project = try_detect_unittest_project( options )
106
+ end
107
+
108
+ # Returns binding to use in ERb generation.
109
+ def get_binding
110
+ binding
111
+ end
112
+
113
+ private
114
+ # Try to setup name of path_name from options.
115
+ #
116
+ # If project_path specified target name is gotten from it.
117
+ # Otherwise if --output-file specified then name is constructed from it.
118
+ # Otherwise value 'your project path' is used.
119
+ #
120
+ def try_detect_path_name( options )
121
+ if options.project_path
122
+ options.project_path
123
+ elsif options.output_file
124
+ File.dirname( options.output_file )
125
+ else
126
+ YOUR_PROJECT_PATH
127
+ end
128
+ end
129
+
130
+ # Try to setup name of unit test project file from options.
131
+ #
132
+ # If --output-file specified then its value used.
133
+ # Otherwise value 'prj.ut.rb' is used.
134
+ #
135
+ def try_detect_unittest_project( options )
136
+ options.output_file ?
137
+ File.basename( options.output_file ) :
138
+ DEFAULT_UNITTEST_PROJECT
139
+ end
140
+
141
+ end # class TemplateParams
142
+
143
+ # Main class for code generation of binary unit test projects.
144
+ #
145
+ # Usage:
146
+ # receiver = StdReceiver.new
147
+ # generator = Generator.new( args, receiver )
148
+ # generator.run
149
+ #
150
+ class Generator
151
+ def initialize( args, receiver )
152
+ @args = args
153
+ @receiver = receiver
154
+ end
155
+
156
+ def run
157
+ options = Options.parse( @args,
158
+ "Stubs for binary unit test projects generator\n\n" +
159
+ "Usage:\n" +
160
+ "mxxrugen [<mxxrugen-options>] bin-unittest [<options>]\n\n" )
161
+ result = do_generation( options )
162
+ @receiver.receive( result, options.output_file )
163
+ end
164
+
165
+ private
166
+ # Performs main generation actions.
167
+ #
168
+ # Returns generation result as String.
169
+ def do_generation( options )
170
+ template = IO.read( File.join( File.dirname( __FILE__ ), 'template.erb' ) )
171
+ generator = ERB.new( template )
172
+
173
+ params = TemplateParams.new( options )
174
+ generator.result( params.get_binding ).gsub( /\n\n\n+/, "\n\n" )
175
+ end
176
+ end
177
+
178
+ # Helper method for generation.
179
+ #
180
+ # Usage:
181
+ # # For using StdReceiver.
182
+ # generate_for( ARGV )
183
+ #
184
+ # # For using custom Receiver.
185
+ # generate_for( ARGV, CustomReceiver.new )
186
+ #
187
+ def BinaryUnittest.generate_for( args, receiver = nil )
188
+ generator = Generator.new( args,
189
+ receiver ? receiver : MxxRu::Generators::Impl::StdReceiver.new )
190
+ generator.run
191
+ end
192
+
193
+ end # module BinaryUnittest
194
+
195
+ end # module Generators
196
+
197
+ end # module MxxRu
198
+
199
+ MxxRu::Generators::BinaryUnittest::generate_for( ARGV )
200
+
@@ -0,0 +1,16 @@
1
+ require 'rubygems'
2
+
3
+ gem 'Mxx_ru', '>= 1.3.0'
4
+
5
+ require 'mxx_ru/binary_unittest'
6
+
7
+ # Set path to your unit test projet here.
8
+ path = '<%= path_name %>'
9
+
10
+ MxxRu::setup_target(
11
+ MxxRu::BinaryUnittestTarget.new(
12
+ # Set name of your unit test project here.
13
+ "#{path}/<%= unittest_project %>",
14
+ # Set name of your project to be tested here.
15
+ "#{path}/prj.rb" ) )
16
+
@@ -0,0 +1,37 @@
1
+ #--
2
+ # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
+ # Copyright (c) 2004-2006, JSC Intervale
4
+ # Copyright (c) 2006, The Mxx_ru Project
5
+ # All rights reserved.
6
+ #
7
+ # Redistribution and use in source and binary forms, with or without modification,
8
+ # are permitted provided that the following conditions are met:
9
+ #
10
+ # 1. Redistributions of source code must retain the above copyright notice,
11
+ # this list of conditions and the following disclaimer.
12
+ # 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ # this list of conditions and the following disclaimer in the documentation
14
+ # and/or other materials provided with the distribution.
15
+ # 3. The name of the author may not be used to endorse or promote products derived
16
+ # from this software without specific prior written permission.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
19
+ # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
20
+ # AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
21
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23
+ # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
+ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
+ # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26
+ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+ #++
28
+
29
+ # Since v.1.4.0
30
+ #
31
+ # Generator for MxxRu::Cpp::composite_target stub.
32
+
33
+ require 'mxx_ru/generators/impl/cpp/generation'
34
+
35
+ MODULE = MxxRu::Generators::Impl::Cpp
36
+ MODULE::generate_for( MODULE::COMPOSITE, ARGV )
37
+
@@ -0,0 +1,37 @@
1
+ #--
2
+ # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
+ # Copyright (c) 2004-2006, JSC Intervale
4
+ # Copyright (c) 2006, The Mxx_ru Project
5
+ # All rights reserved.
6
+ #
7
+ # Redistribution and use in source and binary forms, with or without modification,
8
+ # are permitted provided that the following conditions are met:
9
+ #
10
+ # 1. Redistributions of source code must retain the above copyright notice,
11
+ # this list of conditions and the following disclaimer.
12
+ # 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ # this list of conditions and the following disclaimer in the documentation
14
+ # and/or other materials provided with the distribution.
15
+ # 3. The name of the author may not be used to endorse or promote products derived
16
+ # from this software without specific prior written permission.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
19
+ # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
20
+ # AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
21
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23
+ # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
+ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
+ # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26
+ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+ #++
28
+
29
+ # Since v.1.4.0
30
+ #
31
+ # Generator for MxxRu::Cpp::dll_target stub.
32
+
33
+ require 'mxx_ru/generators/impl/cpp/generation'
34
+
35
+ MODULE = MxxRu::Generators::Impl::Cpp
36
+ MODULE::generate_for( MODULE::DLL, ARGV )
37
+