Mxx_ru 1.6.2 → 1.6.3

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 (70) hide show
  1. checksums.yaml +7 -0
  2. data/README +8 -8
  3. data/Rakefile +2 -2
  4. data/lib/mxx_ru/abstract_target.rb +1 -1
  5. data/lib/mxx_ru/binary_library.rb +1 -1
  6. data/lib/mxx_ru/binary_target.rb +1 -1
  7. data/lib/mxx_ru/binary_unittest.rb +36 -2
  8. data/lib/mxx_ru/cmd_line_option_processor.rb +1 -1
  9. data/lib/mxx_ru/compat.rb +1 -1
  10. data/lib/mxx_ru/cpp.rb +1 -1
  11. data/lib/mxx_ru/cpp/analyzer.rb +1 -1
  12. data/lib/mxx_ru/cpp/composite.rb +1 -1
  13. data/lib/mxx_ru/cpp/detect_toolset.rb +2 -2
  14. data/lib/mxx_ru/cpp/lib_collection.rb +1 -1
  15. data/lib/mxx_ru/cpp/mode.rb +1 -1
  16. data/lib/mxx_ru/cpp/obj_placement.rb +1 -1
  17. data/lib/mxx_ru/cpp/obj_placements/custom_subdir.rb +1 -1
  18. data/lib/mxx_ru/cpp/qt.rb +1 -1
  19. data/lib/mxx_ru/cpp/qt4.rb +1 -1
  20. data/lib/mxx_ru/cpp/qt4_via_pkg_config.rb +1 -1
  21. data/lib/mxx_ru/cpp/qt4details.rb +1 -1
  22. data/lib/mxx_ru/cpp/rucodegen.rb +1 -1
  23. data/lib/mxx_ru/cpp/source_file.rb +1 -1
  24. data/lib/mxx_ru/cpp/target.rb +1 -1
  25. data/lib/mxx_ru/cpp/toolset.rb +70 -7
  26. data/lib/mxx_ru/cpp/toolsets/bcc_win32_5.rb +1 -1
  27. data/lib/mxx_ru/cpp/toolsets/bcc_win32_family.rb +1 -1
  28. data/lib/mxx_ru/cpp/toolsets/c89_etk_nsk.rb +1 -1
  29. data/lib/mxx_ru/cpp/toolsets/c89_nsk.rb +1 -1
  30. data/lib/mxx_ru/cpp/toolsets/c89_nsk_family.rb +1 -1
  31. data/lib/mxx_ru/cpp/toolsets/clang_family.rb +10 -4
  32. data/lib/mxx_ru/cpp/toolsets/clang_linux.rb +1 -1
  33. data/lib/mxx_ru/cpp/toolsets/gcc_cygwin.rb +1 -1
  34. data/lib/mxx_ru/cpp/toolsets/gcc_darwin.rb +1 -1
  35. data/lib/mxx_ru/cpp/toolsets/gcc_family.rb +10 -15
  36. data/lib/mxx_ru/cpp/toolsets/gcc_linux.rb +1 -1
  37. data/lib/mxx_ru/cpp/toolsets/gcc_mingw.rb +1 -1
  38. data/lib/mxx_ru/cpp/toolsets/gcc_sparc_solaris.rb +1 -1
  39. data/lib/mxx_ru/cpp/toolsets/gcc_unix_family.rb +1 -1
  40. data/lib/mxx_ru/cpp/toolsets/icc_win.rb +1 -1
  41. data/lib/mxx_ru/cpp/toolsets/vc10.rb +1 -1
  42. data/lib/mxx_ru/cpp/toolsets/vc11.rb +1 -1
  43. data/lib/mxx_ru/cpp/toolsets/vc12.rb +1 -1
  44. data/lib/mxx_ru/cpp/toolsets/vc7.rb +1 -1
  45. data/lib/mxx_ru/cpp/toolsets/vc8.rb +1 -1
  46. data/lib/mxx_ru/cpp/toolsets/vc8_family.rb +1 -1
  47. data/lib/mxx_ru/cpp/toolsets/vc9.rb +1 -1
  48. data/lib/mxx_ru/cpp/toolsets/vc_family.rb +1 -1
  49. data/lib/mxx_ru/environment_setup.rb +1 -1
  50. data/lib/mxx_ru/ex.rb +1 -1
  51. data/lib/mxx_ru/generators/bin-unittest/g.rb +1 -1
  52. data/lib/mxx_ru/generators/cpp-build-root/g.rb +1 -1
  53. data/lib/mxx_ru/generators/cpp-composite/g.rb +1 -1
  54. data/lib/mxx_ru/generators/cpp-dll/g.rb +1 -1
  55. data/lib/mxx_ru/generators/cpp-exe/g.rb +1 -1
  56. data/lib/mxx_ru/generators/cpp-lib-collection/g.rb +1 -1
  57. data/lib/mxx_ru/generators/cpp-lib/g.rb +1 -1
  58. data/lib/mxx_ru/generators/impl/cpp/generation.rb +1 -1
  59. data/lib/mxx_ru/generators/impl/std_receiver.rb +1 -1
  60. data/lib/mxx_ru/makestyle_generator.rb +1 -1
  61. data/lib/mxx_ru/textfile_unittest.rb +1 -1
  62. data/lib/mxx_ru/util.rb +1 -1
  63. data/lib/mxx_ru/version.rb +2 -2
  64. data/tests/mxx_ru/generators/cpp/tc_generator.rb +1 -1
  65. data/tests/mxx_ru/generators/cpp/tc_template_params.rb +1 -1
  66. data/tests/unix/lib_linking_mode/tc_normal_build.rb +1 -1
  67. data/tests/unix/lib_order/a.cpp +3 -3
  68. data/tests/unix/lib_order/tc_normal_build.rb +1 -1
  69. metadata +119 -123
  70. data/tests/cpp/lib_from_lib_dependecies/a.cpp +0 -3
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1a361e5180a07f48e75be075751bef903b4eebff
4
+ data.tar.gz: 3704cc04fc0760e44e8b4ca1d13218e8c755bd3c
5
+ SHA512:
6
+ metadata.gz: 47583eb96ba4fa74d30f730fdfa8a18a45c55bf36160a42db293d0be7d9bd1e18e09c9341d82e788333955ea7d247903cbc19627bfa32318712ec22154e7b3b5
7
+ data.tar.gz: e5b8567e860d13c4b57ddb6b040592db2c121a90e298f0be5c47eaf53e2132d8e5b884720a6ac2a1f70b0355e25a1cc9db5930ca692d0ab92fff78999332c582
data/README CHANGED
@@ -2,20 +2,20 @@ Copyright (c) 1996-2005, Yauheni Akhotnikau
2
2
 
3
3
  Copyright (c) 2004-2006, JSC Intervale
4
4
 
5
- Copyright (c) 2006-2013 The Mxx_ru Project
5
+ Copyright (c) 2006-2014 The Mxx_ru Project
6
6
 
7
7
  All rights reserved.
8
8
 
9
- Mxx_ru (Make++ on Ruby) is a cross-platform build tool.
10
- It's intended for C/C++ languages in general, but it's easy to extend
11
- for handling other languages. It allows to use one project file to compile
12
- the project on platforms like Windows, Unix (Linux, *BSD), HP NonStop, etc, using
13
- a compilers such as Visual C++, GNU C++, Borland C++, c89, etc.
9
+ Mxx_ru (Make++ on Ruby) is a cross-platform build tool. It's intended for
10
+ C/C++ languages in general, but it's easy to extend for handling other
11
+ languages. It allows to use one project file to compile the project on
12
+ platforms like Windows, Unix (Linux, *BSD), HP NonStop, etc, using a compilers
13
+ such as Visual C++, GNU C++, Clang, Borland C++, c89, etc.
14
14
 
15
15
  Originally mxx_ru was developed by Intervale company (http://intervale.ru).
16
16
  Later, Intervale company released Mxx_ru as an Open Source project
17
17
  and now Mxx_ru is developed by a group of developers, interested in Mxx_ru
18
18
  evolution.
19
19
 
20
- Latest versions of mxx_ru and it's documentation (including installation and setup
21
- instruction) is available at http://www.rubyforge.org/projects/mxx-ru.
20
+ Latest versions of mxx_ru and it's documentation (including installation and
21
+ setup instruction) is available at http://sourceforge.net/projects/mxxru/.
data/Rakefile CHANGED
@@ -12,7 +12,7 @@ spec = Gem::Specification.new do |s|
12
12
  s.version = MXX_RU_VERSION
13
13
  s.author = "The Mxx_ru Project"
14
14
  s.email = "eao197@yahoo.com"
15
- s.homepage = "http://www.rubyforge.com/projects/mxx-ru"
15
+ s.homepage = "http://sourceforge.net/projects/mxxru"
16
16
  s.platform = Gem::Platform::RUBY
17
17
  s.summary = "Mxx_ru (Make++ on Ruby) is a cross-platform build tool"
18
18
  s.files = FileList[ "{bin,tests,lib,docs,examples}/**/*" ].
@@ -20,7 +20,7 @@ spec = Gem::Specification.new do |s|
20
20
  s.executables = 'mxxrugen'
21
21
  s.require_path = "lib"
22
22
  s.has_rdoc = true
23
- s.rdoc_options = [ '-S', '--main', 'README' ]
23
+ s.rdoc_options = [ '--main', 'README' ]
24
24
  s.extra_rdoc_files = [ "README", "Rakefile", "COPYING", "NEWS" ] + FileList[ "docs/**/*" ].to_a
25
25
  end
26
26
 
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -91,6 +91,12 @@ class BinaryUnittestTarget < AbstractTarget
91
91
  @mxx_build_state = nil
92
92
 
93
93
  @mxx_target_project = required_prj( a_target_project )
94
+
95
+ # By default the expected result of binary command is zero.
96
+ # Kernel#system will return 'true' in that case.
97
+ # In the case of NegativeBinaryUnittestTarget this value
98
+ # must be changed to 'false'
99
+ @expected_system_retval = true
94
100
  end
95
101
 
96
102
  # Build subordinated project and run it.
@@ -110,7 +116,7 @@ class BinaryUnittestTarget < AbstractTarget
110
116
  # In dry-run do not actually execute anything.
111
117
  if !MxxRu::Util::Mode.instance.is_dry_run
112
118
  puts "running unit test: #{full_names[0]}..."
113
- if !system( full_names[ 0 ] )
119
+ if @expected_system_retval != system( full_names[ 0 ] )
114
120
  puts "\n\nunit test '#{full_names[0]}' FAILED! #{$?}"
115
121
  raise BuildEx.new( full_names[ 0 ], $? )
116
122
  end
@@ -140,4 +146,32 @@ end
140
146
  # For compatibility with previous versions.
141
147
  Binary_unittest_target = BinaryUnittestTarget
142
148
 
149
+ # Class describing a target, which is unit-test binary application
150
+ # with non-zero exit code.
151
+ #
152
+ # This class is similar to BinaryUnittestTarget but intended for the
153
+ # cases where binary unit test expected to fail (sometimes failure is
154
+ # a expected result).
155
+ #
156
+ # File to run unit-test.
157
+ # MxxRu::setup_target(
158
+ # MxxRu::NegativeBinaryUnittestTarget.new(
159
+ # "test/pack/ut.rb",
160
+ # "test/pack/prj.rb ) )
161
+ #
162
+ #
163
+ class NegativeBinaryUnittestTarget < BinaryUnittestTarget
164
+
165
+ # Constructor.
166
+ #
167
+ # [_a_alias_] Self alias.
168
+ # [_a_target_project_] Project, responsible for build of unit-test
169
+ # application.
170
+ def initialize( a_alias, a_target_project )
171
+ super( a_alias, a_target_project )
172
+
173
+ @expected_system_retval = false
174
+ end
143
175
  end
176
+
177
+ end # module MxxRu
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
data/lib/mxx_ru/compat.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
data/lib/mxx_ru/cpp.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -144,7 +144,7 @@ module MxxRu
144
144
  #
145
145
  # Returns name of toolset of throw exception if toolset is not detectable.
146
146
  def Cpp.try_detect_toolset_myself
147
- if Config::CONFIG['host_os'] =~ /linux/
147
+ if RbConfig::CONFIG['host_os'] =~ /linux/
148
148
  # Assume that GCC is default compiler on Linux.
149
149
  "gcc_linux"
150
150
  else
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
data/lib/mxx_ru/cpp/qt.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,7 +1,7 @@
1
1
  #--
2
2
  # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
3
  # Copyright (c) 2004-2006, JSC Intervale
4
- # Copyright (c) 2006-2013, The Mxx_ru Project
4
+ # Copyright (c) 2006-2014, The Mxx_ru Project
5
5
  # All rights reserved.
6
6
  #
7
7
  # Redistribution and use in source and binary forms, with or without modification,
@@ -68,7 +68,7 @@ module MxxRu
68
68
  # For compatibility with previous versions.
69
69
  Target_with_full_path = TargetWithFullPath
70
70
 
71
- # Class, describing mswin-res-����.
71
+ # Class, describing mswin-res-info.
72
72
  class MswinResInfo < TargetWithFullPath
73
73
  attr_reader :file_name
74
74
  attr_reader :path
@@ -249,6 +249,29 @@ module MxxRu
249
249
  # For compatibility with previous versions.
250
250
  Dll_requirements = DllRequirements
251
251
 
252
+ # C++ standard versions.
253
+
254
+ # Default C++ standard variant.
255
+ # The compiler defaults must be used.
256
+ #
257
+ # Since v.1.6.3
258
+ CPP_STD_DEFAULT = 0
259
+
260
+ # C++03 standard.
261
+ #
262
+ # Since v.1.6.3
263
+ CPP_STD03 = 1
264
+
265
+ # C++11 standard.
266
+ #
267
+ # Since v.1.6.3
268
+ CPP_STD11 = 2
269
+
270
+ # C++14 standard.
271
+ #
272
+ # Since v.1.6.3
273
+ CPP_STD14 = 3
274
+
252
275
  # Base toolset class.
253
276
  # Toolset is a compiler and tool set for compiling an application.
254
277
  class Toolset
@@ -328,6 +351,9 @@ module MxxRu
328
351
  def initialize( a_name )
329
352
  @name = a_name
330
353
  @tags = Hash.new
354
+
355
+ # C++ standard version
356
+ @cpp_std = CPP_STD_DEFAULT
331
357
  end
332
358
 
333
359
  # Has a target any linkable libraries as dependecies?
@@ -976,6 +1002,38 @@ module MxxRu
976
1002
  make_lib_name( target.mxx_target_name, target ).full_name
977
1003
  end
978
1004
 
1005
+ # Sets a flag includes "-std=c++0x" compiler option.
1006
+ # Using at gnu-compilers.
1007
+ #
1008
+ # Kept for compatibility with previous versions.
1009
+ def force_cpp0x_std
1010
+ set_cpp_std CPP_STD11
1011
+ end
1012
+
1013
+ # Set C++03 standard version.
1014
+ #
1015
+ # Since v.1.6.3.
1016
+ def force_cpp03
1017
+ set_cpp_std CPP_STD03
1018
+ end
1019
+
1020
+ # Set C++11 standard version.
1021
+ #
1022
+ # Since v.1.6.3
1023
+ def force_cpp11
1024
+ set_cpp_std CPP_STD11
1025
+ end
1026
+
1027
+ # Set C++14 standard version.
1028
+ #
1029
+ # Since v.1.6.3
1030
+ def force_cpp14
1031
+ set_cpp_std CPP_STD14
1032
+ end
1033
+
1034
+ # Get the C++ standard version
1035
+ attr_reader :cpp_std
1036
+
979
1037
  protected
980
1038
  # Creating object file names.
981
1039
  # Returns array of ObjInfo objects.
@@ -1212,11 +1270,16 @@ module MxxRu
1212
1270
  p + source_name + s
1213
1271
  end
1214
1272
 
1215
- public
1216
-
1217
- # Sets a flag includes "-std=c++0x" compiler option.
1218
- # Using at gnu-compilers.
1219
- def force_cpp0x_std
1273
+ # Set C++ standard version.
1274
+ #
1275
+ # Sets new value only if it is greater than old value.
1276
+ # It means that call to force_cpp03 after the previous
1277
+ # call to force_cpp11 will not change C++ standard version
1278
+ # from CPP_STD11 to CPP_STD03.
1279
+ #
1280
+ # Since v.1.6.3.
1281
+ def set_cpp_std( version )
1282
+ @cpp_std = version if @cpp_std < version
1220
1283
  end
1221
1284
 
1222
1285
  end # class Toolset