Boost logo

Boost-Build :

Subject: [Boost-build] [bootstrap] [b2] [install] Intel 17.0 & b2 cmd file for intel64 & vs2017
From: Robert (r.firl_at_[hidden])
Date: 2017-06-23 16:47:55


Hello Everyone,

There are many details in order to fully describe the situation. The
Executive Summary:

In order to correctly build Boost 1.64 with the Intel 17.0, Update 4,
C++ Windows compiler, in conjunction with Visual Studio (VS) 2017,
Update 2, a symbolic link is necessary. The link shortens the VS
installation root path for b2.exe to execute correctly. There is a
question regarding the correct implementation to modify one or more jam
files. The b2.exe automatic detection of the new and different Visual
Studio 2017 paths is not working correctly.

I have succeeded constructing the b2 complete install for Intel 17.0,
Update 4 on Windows 8.1 Pro, 64-bit, in conjunction with Visual Studio
2017, Update 2 (e.g. 15.2 (26430.12), in the About Microsoft Visual
Studio dialog). The zlib source and Python 2.7 libraries are also
incorporated into the x64 Boost by Intel build.

In order to achieve a successful outcome, I create a symbolic link with
the mklink command to considerably shorten the value for the
VS2017INSTALLDIR environment variable. The value VS2017INSTALLDIR is
first set to is:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise

The content above triggers two, "input is too long," messages when
executing the

.\b2 install --prefix=C:\Boost

command. The execution never creates the respective b2 cmd file (file
name listed below). The Intel supplied batch file is looking for the
VS2017INSTALLDIR environment variable, when the vs2017 option is passed
to compilervars.bat:

compilervars intel64 vs2017

The location of the compilervars.bat is in something similar to:

C:\Program Files
(x86)\IntelSWTools\compilers_and_libraries_2017.4.210\windows\bin

Please review
https://software.intel.com/en-us/articles/building-boost-with-intel-c-compiler-150
for the recent details from Intel, to build Boost with the Intel
compiler on a Windows operating system. The symbolic link is

C:\v7

pointing to:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise

When the VS2017INSTALLDIR environment variable is C:\v7, then the
execution of b2 install at <boost root>\tools\build creates the 32-bit
and 64-bit b2_intel-win_17.0_iclvars... command files in
C:\Users\<username>\AppData\Local\Temp. I would like to understand
whether the b2 constructed output for the file named:

b2_intel-win_17.0_iclvars_intel64 vs2017.cmd

should have its internal DevEnvDir variable value as this:

DevEnvDir=C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\

or this:

DevEnvDir=C:\Program Files (x86)\Microsoft Visual
Studio\2017\Enterprise\Common7\IDE\

If the answer is the latter, then what is the correct modification(s) to
the intel-win.jam, user-config.jam, and/or msvc.jam to enable the
automatic detection to find the correct location for VS2017's
devenv.exe? In order to use the 14.1 Visual Studio version string
value, the 1.64 intel-win.jam file has been modified accordingly near
the last line:

.iclvars-17.0-supported-vcs = "14.1 14.0 12.0 11.0 10.0" ;
.iclvars-version-alias-vc14.1 = vs2017 ;

I have manually replaced the following strings of the

b2_intel-win_17.0_iclvars_intel64 vs2017.cmd

file to use the new Visual Studio 2017 paths. For example, the
following older VS 2015 paths are equivalent to the following new VS
2017 paths (using the C:\v7 symbolic link above). Note that some paths
are very long in VS2015. The VS2017 equivalent can be longer. The
replacement string is preceded by the "==>" character combination.

     C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\VC\
==> C:\v7\Common7\IDE\VC\

     C:\Program Files (x86)\MSBuild\14.0\bin\amd64
==> C:\v7\MSBuild\15.0\Bin\amd64

     C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64
==> C:\v7\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64

     C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\VCPackages
==> C:\v7\Common7\IDE\VC\vcpackages

     C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE
==> C:\v7\Common7\IDE

     C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools
==> C:\v7\Common7\Tools

     C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team
Tools\Performance Tools\x64
==> C:\v7\Team Tools\Performance Tools\x64

     C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team
Tools\Performance Tools
==> C:\v7\Team Tools\Performance Tools\

     C:\Program Files (x86)\Microsoft Visual Studio
14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
==> C:\v7\Common7\IDE\CommonExtensions\Microsoft\TestWindow

     C:\Program Files (x86)\Microsoft Visual Studio
14.0\Common7\IDE\PrivateAssemblies\
==> C:\v7\Common7\IDE\PrivateAssemblies\

The affected cmd variables are:
DevEnvDir
INCLUDE
LIB
LIBPATH
Path
VCIDEInstallDir
__VSCMD_PREINIT_INCLUDE
__VSCMD_PREINIT_LIBPATH
__VSCMD_PREINIT_PATH

Thank you for your time and attention. It is greatly appreciated.

Sincerely,

Robert


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk