Mxx_ru 1.6.14.4 → 1.6.14.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 51b7fa56ba4db7adbbd32d34f3c3617414125678
4
- data.tar.gz: a5a85fcef9c5bb7ca0373c18729ae8b22000bfbc
2
+ SHA256:
3
+ metadata.gz: e9d07e2c44752b3e4f1ea25fc8a4cc94a98108fbda433f399ec285d030c5c856
4
+ data.tar.gz: b856c28eb41e4258011f4b72a444e92497a0c25d3de7d71c6b235ac96a8c6a18
5
5
  SHA512:
6
- metadata.gz: 325560369c83869952fce27aa21fbd26b0254286d3b7bbe0faf6c2b03b24d33adf2fb053df7f1f64c4370ac37b10769f504201af7cdf7fb70ed0ff9c04b0d3f7
7
- data.tar.gz: 487e2b5860352ce831721b0f4819cb5ca1733728dd2a073816bceb30ca44f904eb5b8f57cecbe31b975976a222e1995143240d93a7c701417e3f1ab603a23ae3
6
+ metadata.gz: fb64dcd9b181593de2035a74b778d03d1fba02cc6e4e1c104dcf51733a6b2d7ff16313185450bcf10d05a7594c15797d73a641c054174c629b33a266289b7a45
7
+ data.tar.gz: 90128796f0fc0ce74fc3994008ea71a294807246098785ffd90a62a41ef97b09d91d3fb048132727c328d0c3665fb4ed7d3585438c4c604478b076fb243b3be3
data/COPYING CHANGED
@@ -1,6 +1,6 @@
1
1
  Copyright (c) 1996-2004, Yauheni Akhotnikau
2
2
  Copyright (c) 2004-2006, JSC Intervale
3
- Copyright (c) 2006-2016, The Mxx_ru Project
3
+ Copyright (c) 2006-2018, The Mxx_ru Project
4
4
  All rights reserved.
5
5
 
6
6
  Redistribution and use in source and binary forms, with or without modification,
data/Rakefile CHANGED
@@ -22,7 +22,6 @@ spec = Gem::Specification.new do |s|
22
22
  exclude( "rdoc" ).to_a + [ "THANKS" ]
23
23
  s.executables = [ 'mxxrugen', 'mxxruexternals' ]
24
24
  s.require_path = "lib"
25
- s.has_rdoc = true
26
25
  s.rdoc_options = [ '--main', 'README' ]
27
26
  s.extra_rdoc_files = [ "README", "Rakefile", "COPYING", "NEWS" ] + FileList[ "docs/**/*" ].to_a
28
27
  end
data/bin/mxxruexternals CHANGED
File without changes
data/bin/mxxrugen CHANGED
File without changes
@@ -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-2015, The Mxx_ru Project
4
+ # Copyright (c) 2006-2018, 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,
@@ -27,6 +27,7 @@
27
27
  #++
28
28
 
29
29
  require 'singleton'
30
+ require 'pathname'
30
31
 
31
32
  module MxxRu
32
33
  module Cpp
@@ -183,7 +184,6 @@ module MxxRu
183
184
  # [_a_file_name_] File name.
184
185
  # [_a_owner_obj_] File object contained include directive.
185
186
  def process_std_include_path_file( a_file_name, a_owner_obj )
186
-
187
187
  @include_paths.find { |path|
188
188
  test_name = File.join( [ path, a_file_name ] )
189
189
  if File.exists?( test_name )
@@ -204,7 +204,12 @@ module MxxRu
204
204
  a_local_path,
205
205
  a_owner_obj )
206
206
 
207
- test_name = File.join( [ a_local_path, a_file_name ] )
207
+ test_name = # This trick is necessary to handle relative includes
208
+ # like ../details/some_header.h.
209
+ # Without calling cleanpath there could be created many
210
+ # names in form local/path/details/../details/../details
211
+ Pathname.new(
212
+ File.join( a_local_path, a_file_name ) ).cleanpath
208
213
  if File.exists?( test_name )
209
214
  add_depend_to( a_owner_obj, test_name )
210
215
  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-2015, The Mxx_ru Project
4
+ # Copyright (c) 2006-2019, 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,
@@ -147,11 +147,13 @@ module MxxRu
147
147
  if RbConfig::CONFIG['host_os'] =~ /linux/
148
148
  # Assume that GCC is default compiler on Linux.
149
149
  "gcc_linux"
150
- elsif RbConfig::CONFIG['host_os'] =~ /^freebsd(9|10)$/
150
+ elsif RbConfig::CONFIG['host_os'] =~ /^freebsd(9|10|11|12)$/
151
151
  "clang_freebsd"
152
152
  else
153
153
  if ENV[ 'COMP_ENV' ] and ENV[ 'VC_ARCH' ]
154
154
  'icc_win'
155
+ elsif ENV[ 'VS160COMNTOOLS' ]
156
+ 'vc16'
155
157
  elsif ENV[ 'VS140COMNTOOLS' ]
156
158
  'vc14'
157
159
  elsif ENV[ 'VS120COMNTOOLS' ]
@@ -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-2016, The Mxx_ru Project
4
+ # Copyright (c) 2006-2021, 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,
@@ -277,6 +277,11 @@ module MxxRu
277
277
  # Since v.1.6.14.3
278
278
  CPP_STD17 = 4
279
279
 
280
+ # C++17 standard.
281
+ #
282
+ # Since v.1.6.14.9
283
+ CPP_STD20 = 5
284
+
280
285
  # Base toolset class.
281
286
  # Toolset is a compiler and tool set for compiling an application.
282
287
  class Toolset
@@ -1043,6 +1048,13 @@ module MxxRu
1043
1048
  set_cpp_std CPP_STD17
1044
1049
  end
1045
1050
 
1051
+ # Set C++20 standard version.
1052
+ #
1053
+ # Since v.1.6.14.9
1054
+ def force_cpp20
1055
+ set_cpp_std CPP_STD20
1056
+ end
1057
+
1046
1058
  # Get the C++ standard version
1047
1059
  attr_reader :cpp_std
1048
1060
 
@@ -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-2017, The Mxx_ru Project
4
+ # Copyright (c) 2006-2021, 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,
@@ -78,7 +78,9 @@ module MxxRu
78
78
  target.compiler_option( "-I" + p )
79
79
  }
80
80
 
81
- if CPP_STD17 == cpp_std
81
+ if CPP_STD20 == cpp_std
82
+ target.cpp_compiler_option( '-std=c++20' )
83
+ elsif CPP_STD17 == cpp_std
82
84
  target.cpp_compiler_option( '-std=c++17' )
83
85
  elsif CPP_STD14 == cpp_std
84
86
  target.cpp_compiler_option( '-std=c++14' )
@@ -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-2015, The Mxx_ru Project
4
+ # Copyright (c) 2006-2021, 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,
@@ -103,7 +103,9 @@ module MxxRu
103
103
  target.compiler_option( "-I" + p )
104
104
  }
105
105
 
106
- if CPP_STD17 == cpp_std
106
+ if CPP_STD20 == cpp_std
107
+ target.cpp_compiler_option( '-std=c++20' )
108
+ elsif CPP_STD17 == cpp_std
107
109
  target.cpp_compiler_option( '-std=c++17' )
108
110
  elsif CPP_STD14 == cpp_std
109
111
  target.cpp_compiler_option( '-std=c++14' )
@@ -0,0 +1,71 @@
1
+ #--
2
+ # Copyright (c) 1996-2004, Yauheni Akhotnikau
3
+ # Copyright (c) 2004-2006, JSC Intervale
4
+ # Copyright (c) 2006-2019, 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
+ require 'ostruct'
30
+ require 'set'
31
+
32
+ require 'mxx_ru/cpp/target'
33
+ require 'mxx_ru/cpp/toolsets/vc8_family'
34
+
35
+ module MxxRu
36
+ module Cpp
37
+ module Toolsets
38
+
39
+ # Toolset implementation for Visual C++ 15.0 (Visual Studio 2017)
40
+ #
41
+ # Setups following tags:
42
+ # [_ver_hi_] high version number. Value: 15.
43
+ # [_ver_lo_] low version number. Value: 0.
44
+ class Vc16 < MxxRu::Cpp::Toolsets::Vc8Family
45
+ def initialize( a_name = "vc" )
46
+ super( a_name )
47
+
48
+ setup_tag( "ver_hi", "16" )
49
+ setup_tag( "ver_lo", "0" )
50
+ end
51
+
52
+ # See description at MxxRu::Cpp::Toolset#setup_mandatory_options.
53
+ def setup_mandatory_options( target )
54
+ super( target )
55
+
56
+ if CPP_STD20 == cpp_std
57
+ target.cpp_compiler_option( '/std:c++20' )
58
+ elsif CPP_STD17 == cpp_std
59
+ target.cpp_compiler_option( '/std:c++17' )
60
+ elsif CPP_STD14 == cpp_std
61
+ target.cpp_compiler_option( '/std:c++14' )
62
+ end
63
+ end
64
+ end # class Vc16
65
+
66
+ end # module Toolsets
67
+ end # module Cpp
68
+ end # module MxxRu
69
+
70
+ MxxRu::Cpp::setup_toolset( MxxRu::Cpp::Toolsets::Vc16.new )
71
+
@@ -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-2017, The Mxx_ru Project
4
+ # Copyright (c) 2006-2021, 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,
@@ -34,4 +34,5 @@
34
34
  #
35
35
  # puts 'Mxx_ru version is: ' + MXX_RU_VERSION
36
36
  #
37
- MXX_RU_VERSION = '1.6.14.4'
37
+ MXX_RU_VERSION = '1.6.14.9'
38
+
@@ -12,7 +12,7 @@ class TC_CustomTargetPrefix < Test::Unit::TestCase
12
12
  test_case :build_and_clean do
13
13
  build( 'dll.rb' )
14
14
 
15
- assert( File.exists?( EXPECTED_NAME ),
15
+ assert( File.exist?( EXPECTED_NAME ),
16
16
  "Expected name is '#{EXPECTED_NAME}'" )
17
17
 
18
18
  clean( 'dll.rb' )
@@ -39,7 +39,7 @@ class TC_makestyle_generator < Test::Unit::TestCase
39
39
 
40
40
  g1.build( "dummy" )
41
41
 
42
- assert( FileTest.exists?( "a" ) )
42
+ assert( FileTest.exist?( "a" ) )
43
43
  end
44
44
 
45
45
  def test_build_no_real_rebuild
@@ -71,7 +71,7 @@ class TC_makestyle_generator < Test::Unit::TestCase
71
71
 
72
72
  assert( FileTest.size( "t1" ) > 0 )
73
73
  assert( FileTest.size( "t2" ) > 0 )
74
- assert( !FileTest.exists?( "t3" ) )
74
+ assert( !FileTest.exist?( "t3" ) )
75
75
 
76
76
  File.truncate( "t1", 0 )
77
77
  File.truncate( "t2", 0 )
@@ -80,7 +80,7 @@ class TC_makestyle_generator < Test::Unit::TestCase
80
80
 
81
81
  assert( FileTest.size( "t1" ) > 0 )
82
82
  assert( FileTest.size( "t2" ) > 0 )
83
- assert( !FileTest.exists?( "t3" ) )
83
+ assert( !FileTest.exist?( "t3" ) )
84
84
 
85
85
  end
86
86
 
@@ -102,9 +102,9 @@ class TC_makestyle_generator < Test::Unit::TestCase
102
102
 
103
103
  g.clean( "dummy" )
104
104
 
105
- assert( !FileTest.exists?( "t1" ) )
106
- assert( !FileTest.exists?( "t2" ) )
107
- assert( !FileTest.exists?( "t3" ) )
105
+ assert( !FileTest.exist?( "t1" ) )
106
+ assert( !FileTest.exist?( "t2" ) )
107
+ assert( !FileTest.exist?( "t3" ) )
108
108
  end
109
109
 
110
110
  def teardown
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Mxx_ru
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.14.4
4
+ version: 1.6.14.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Mxx_ru Project
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-27 00:00:00.000000000 Z
11
+ date: 2021-11-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Mxx_ru is a cross-platform build tool primarily focused to C/C++ projects
14
14
  email: eao197@yahoo.com
@@ -117,6 +117,7 @@ files:
117
117
  - lib/mxx_ru/cpp/toolsets/vc12.rb
118
118
  - lib/mxx_ru/cpp/toolsets/vc14.rb
119
119
  - lib/mxx_ru/cpp/toolsets/vc15.rb
120
+ - lib/mxx_ru/cpp/toolsets/vc16.rb
120
121
  - lib/mxx_ru/cpp/toolsets/vc7.rb
121
122
  - lib/mxx_ru/cpp/toolsets/vc8.rb
122
123
  - lib/mxx_ru/cpp/toolsets/vc8_family.rb
@@ -397,7 +398,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
397
398
  version: '0'
398
399
  requirements: []
399
400
  rubyforge_project:
400
- rubygems_version: 2.6.13
401
+ rubygems_version: 2.7.6
401
402
  signing_key:
402
403
  specification_version: 4
403
404
  summary: Mxx_ru (Make++ on Ruby) is a cross-platform build tool