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 +5 -5
- data/COPYING +1 -1
- data/Rakefile +0 -1
- data/bin/mxxruexternals +0 -0
- data/bin/mxxrugen +0 -0
- data/lib/mxx_ru/cpp/analyzer.rb +8 -3
- data/lib/mxx_ru/cpp/detect_toolset.rb +4 -2
- data/lib/mxx_ru/cpp/toolset.rb +13 -1
- data/lib/mxx_ru/cpp/toolsets/clang_family.rb +4 -2
- data/lib/mxx_ru/cpp/toolsets/gcc_family.rb +4 -2
- data/lib/mxx_ru/cpp/toolsets/vc16.rb +71 -0
- data/lib/mxx_ru/version.rb +3 -2
- data/tests/cpp/custom_target_prefix/tc_custom_target_prefix.rb +1 -1
- data/tests/mxx_ru/tc_makestyle_generator.rb +6 -6
- data/tests/unix/lib_linking_mode/o/main_conflict.o +0 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e9d07e2c44752b3e4f1ea25fc8a4cc94a98108fbda433f399ec285d030c5c856
|
4
|
+
data.tar.gz: b856c28eb41e4258011f4b72a444e92497a0c25d3de7d71c6b235ac96a8c6a18
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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-
|
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
|
data/lib/mxx_ru/cpp/analyzer.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-
|
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 =
|
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-
|
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' ]
|
data/lib/mxx_ru/cpp/toolset.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-
|
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-
|
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
|
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-
|
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
|
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
|
+
|
data/lib/mxx_ru/version.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-
|
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.
|
37
|
+
MXX_RU_VERSION = '1.6.14.9'
|
38
|
+
|
@@ -39,7 +39,7 @@ class TC_makestyle_generator < Test::Unit::TestCase
|
|
39
39
|
|
40
40
|
g1.build( "dummy" )
|
41
41
|
|
42
|
-
assert( FileTest.
|
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.
|
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.
|
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.
|
106
|
-
assert( !FileTest.
|
107
|
-
assert( !FileTest.
|
105
|
+
assert( !FileTest.exist?( "t1" ) )
|
106
|
+
assert( !FileTest.exist?( "t2" ) )
|
107
|
+
assert( !FileTest.exist?( "t3" ) )
|
108
108
|
end
|
109
109
|
|
110
110
|
def teardown
|
Binary file
|
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
|
+
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:
|
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
|
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
|