Mxx_ru 1.5.0 → 1.5.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.
- data/lib/mxx_ru/cpp/detect_toolset.rb +50 -8
- data/lib/mxx_ru/util.rb +7 -1
- data/lib/mxx_ru/version.rb +1 -1
- metadata +2 -2
|
@@ -26,10 +26,13 @@
|
|
|
26
26
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
27
27
|
#++
|
|
28
28
|
|
|
29
|
+
require 'rbconfig'
|
|
30
|
+
|
|
29
31
|
require 'mxx_ru/cpp/toolset'
|
|
30
32
|
|
|
31
33
|
module MxxRu
|
|
32
34
|
module Cpp
|
|
35
|
+
ENV_VAR = "MXX_RU_CPP_TOOLSET"
|
|
33
36
|
|
|
34
37
|
# Detect current toolset based on values of environment variables
|
|
35
38
|
#
|
|
@@ -46,14 +49,7 @@ module MxxRu
|
|
|
46
49
|
# saved to the toolset created using a setup_tag method.
|
|
47
50
|
def Cpp.detect_toolset
|
|
48
51
|
begin
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
env = ENV[ env_var ]
|
|
52
|
-
if nil == env
|
|
53
|
-
raise MxxRu::InvalidValueEx.new(
|
|
54
|
-
"Environment variable '#{env_var}' not found (not set " +
|
|
55
|
-
"or empty" )
|
|
56
|
-
end
|
|
52
|
+
env = get_or_detect_toolset_variable_content
|
|
57
53
|
|
|
58
54
|
# Exctracting file name, responsible for toolset object creation.
|
|
59
55
|
toolset_file_name_regexp = /^(\S+)(.*)$/
|
|
@@ -117,6 +113,52 @@ module MxxRu
|
|
|
117
113
|
"'#{files_to_load.join('; ')}'" ) unless load_result
|
|
118
114
|
end
|
|
119
115
|
|
|
116
|
+
# Gets or detects value for MXX_RU_CPP_TOOLSET.
|
|
117
|
+
#
|
|
118
|
+
# Since v.1.5.1
|
|
119
|
+
#
|
|
120
|
+
def Cpp.get_or_detect_toolset_variable_content
|
|
121
|
+
env = ENV[ ENV_VAR ]
|
|
122
|
+
if env.nil?
|
|
123
|
+
$stderr.puts "Environment variable #{ENV_VAR} not found. " +
|
|
124
|
+
"Try to detect toolset by HOST_OS and/or PATH..."
|
|
125
|
+
env = try_detect_toolset_myself
|
|
126
|
+
if env
|
|
127
|
+
$stderr.puts "Detection successed. Toolset is: #{env}"
|
|
128
|
+
else
|
|
129
|
+
$stderr.puts "Detection failed."
|
|
130
|
+
raise MxxRu::InvalidValueEx.new(
|
|
131
|
+
"Environment variable '#{ENV_VAR}' not found (not set " +
|
|
132
|
+
"or empty" )
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
env
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
# Try to detect toolset from host_os and PATH.
|
|
140
|
+
#
|
|
141
|
+
# Since v.1.5.1
|
|
142
|
+
#
|
|
143
|
+
# Only Windows platform and MS C++, Linux and GCC is detected now.
|
|
144
|
+
#
|
|
145
|
+
# Returns name of toolset of throw exception if toolset is not detectable.
|
|
146
|
+
def Cpp.try_detect_toolset_myself
|
|
147
|
+
if Config::CONFIG['host_os'] =~ /linux/
|
|
148
|
+
# Assume that GCC is default compiler on Linux.
|
|
149
|
+
"gcc_linux"
|
|
150
|
+
else
|
|
151
|
+
case ENV['PATH']
|
|
152
|
+
when /Microsoft Visual Studio \.NET 2003\\VC7\\BIN/i
|
|
153
|
+
"vc7"
|
|
154
|
+
when /Microsoft Visual Studio 8\.0\\VC\\BIN/i
|
|
155
|
+
"vc8"
|
|
156
|
+
when /Microsoft Visual Studio 9\.0\\VC\\BIN/i
|
|
157
|
+
"vc9"
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
|
|
120
162
|
end # module Cpp
|
|
121
163
|
end # module MxxRu
|
|
122
164
|
|
data/lib/mxx_ru/util.rb
CHANGED
|
@@ -367,6 +367,12 @@ module MxxRu
|
|
|
367
367
|
return @@host_os
|
|
368
368
|
end
|
|
369
369
|
|
|
370
|
+
# This flag is set to true on Windows.
|
|
371
|
+
#
|
|
372
|
+
# Since v.1.5.1
|
|
373
|
+
#
|
|
374
|
+
IS_WINDOWS_PLATFORM = !((Config::CONFIG['host_os'] =~ /mswin|mingw/).nil?)
|
|
375
|
+
|
|
370
376
|
# Transform separators in file names to correct ones on the given platform.
|
|
371
377
|
#
|
|
372
378
|
# For example on mswin32 we change "/" to "\".
|
|
@@ -375,7 +381,7 @@ module MxxRu
|
|
|
375
381
|
#
|
|
376
382
|
# *IMPORTANT! In current version only mswin32 platform is tracked!*
|
|
377
383
|
def Util.native_pathname( a_pathname )
|
|
378
|
-
if
|
|
384
|
+
if IS_WINDOWS_PLATFORM
|
|
379
385
|
return a_pathname.gsub( "/", "\\" )
|
|
380
386
|
end
|
|
381
387
|
|
data/lib/mxx_ru/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: Mxx_ru
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.5.
|
|
4
|
+
version: 1.5.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- The Mxx_ru Project
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date:
|
|
12
|
+
date: 2010-05-20 00:00:00 +04:00
|
|
13
13
|
default_executable:
|
|
14
14
|
dependencies: []
|
|
15
15
|
|