summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorEvanED <driscoll@cs.wisc.edu>2017-07-28 00:18:29 (GMT)
committerEvanED <driscoll@cs.wisc.edu>2017-07-28 00:18:29 (GMT)
commita13f1e3f721c4b5d65f0a942d184c300718d0d57 (patch)
treef77133ab9f709621be380350a7540185d95e20bc /src/engine
parent6d36db01745c45b107ccaaf57b2768ae3a6b83bd (diff)
parent120b1633f2bc371df744fce06f5c5024fe59a174 (diff)
downloadSCons-a13f1e3f721c4b5d65f0a942d184c300718d0d57.zip
SCons-a13f1e3f721c4b5d65f0a942d184c300718d0d57.tar.gz
SCons-a13f1e3f721c4b5d65f0a942d184c300718d0d57.tar.bz2
Merged scons/scons into default
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/PathList.py4
-rw-r--r--src/engine/SCons/Tool/MSCommon/vc.py19
-rw-r--r--src/engine/SCons/Tool/msvc.xml25
3 files changed, 40 insertions, 8 deletions
diff --git a/src/engine/SCons/PathList.py b/src/engine/SCons/PathList.py
index 77e30c4..76cbeab 100644
--- a/src/engine/SCons/PathList.py
+++ b/src/engine/SCons/PathList.py
@@ -104,11 +104,11 @@ class _PathList(object):
pl = []
for p in pathlist:
try:
- index = p.find('$')
+ found = '$' in p
except (AttributeError, TypeError):
type = TYPE_OBJECT
else:
- if index == -1:
+ if not found:
type = TYPE_STRING_NO_SUBST
else:
type = TYPE_STRING_SUBST
diff --git a/src/engine/SCons/Tool/MSCommon/vc.py b/src/engine/SCons/Tool/MSCommon/vc.py
index 7b8dd9d..4126314 100644
--- a/src/engine/SCons/Tool/MSCommon/vc.py
+++ b/src/engine/SCons/Tool/MSCommon/vc.py
@@ -185,18 +185,17 @@ _VCVER_TO_PRODUCT_DIR = {
}
def msvc_version_to_maj_min(msvc_version):
-
msvc_version_numeric = ''.join([x for x in msvc_version if x in string_digits + '.'])
t = msvc_version_numeric.split(".")
if not len(t) == 2:
- raise ValueError("Unrecognized version %s (%s)" % (msvc_version,msvc_version_numeric))
+ raise ValueError("Unrecognized version %s (%s)" % (msvc_version,msvc_version_numeric))
try:
- maj = int(t[0])
- min = int(t[1])
- return maj, min
+ maj = int(t[0])
+ min = int(t[1])
+ return maj, min
except ValueError as e:
- raise ValueError("Unrecognized version %s (%s)" % (msvc_version,msvc_version_numeric))
+ raise ValueError("Unrecognized version %s (%s)" % (msvc_version,msvc_version_numeric))
def is_host_target_supported(host_target, msvc_version):
"""Return True if the given (host, target) tuple is supported given the
@@ -435,6 +434,14 @@ def msvc_find_valid_batch_script(env,version):
(host_target, version)
SCons.Warnings.warn(SCons.Warnings.VisualCMissingWarning, warn_msg)
arg = _HOST_TARGET_ARCH_TO_BAT_ARCH[host_target]
+
+ # Get just version numbers
+ maj, min = msvc_version_to_maj_min(version)
+ # VS2015+
+ if maj >= 14:
+ if env.get('MSVC_UWP_APP') == '1':
+ # Initialize environment variables with store/universal paths
+ arg += ' store'
# Try to locate a batch file for this host/target platform combo
try:
diff --git a/src/engine/SCons/Tool/msvc.xml b/src/engine/SCons/Tool/msvc.xml
index 2b4619e..1823a89 100644
--- a/src/engine/SCons/Tool/msvc.xml
+++ b/src/engine/SCons/Tool/msvc.xml
@@ -352,6 +352,8 @@ constructor; setting it later has no effect.
<para>
Valid values for Windows are
+<literal>14.0</literal>,
+<literal>14.0Exp</literal>,
<literal>12.0</literal>,
<literal>12.0Exp</literal>,
<literal>11.0</literal>,
@@ -440,4 +442,27 @@ For example, if you want to compile 64-bit binaries, you would set
</summary>
</cvar>
+<cvar name="MSVC_UWP_APP">
+<summary>
+<para>
+Build libraries for a Universal Windows Platform (UWP) Application.
+</para>
+
+<para>
+If &cv-MSVC_UWP_APP; is set, the Visual Studio environment will be set up to point
+to the Windows Store compatible libraries and Visual Studio runtimes. In doing so,
+any libraries that are built will be able to be used in a UWP App and published
+to the Windows Store.
+This flag will only have an effect with Visual Studio 2015+.
+This variable must be passed as an argument to the Environment()
+constructor; setting it later has no effect.
+</para>
+
+<para>
+Valid values are '1' or '0'
+</para>
+
+</summary>
+</cvar>
+
</sconsdoc>