boostorg / boostorg/build

Single msvc-setup.bat for intel-win toolset

Open
#461 1 comment 0 reactions 0 assignees View on GitHub
transition
Dominant language
C++
Stars
251
Forks
63
PR merge metrics
No merged PRs in 30d

Description

With the changes to the way msvc compiler setup works using Boost created setup scripts, the intel-win toolset now has a single location for creating an msvc-setup.bat setup script for all versions of Intel C++ for Windows and all vc++ compatibilities for each version. This also means that with the default implementation of the end-user undocumented \ option, when it is not specified in the toolset definition, that the msvc-setup.bat script for intel-win is only regenerated if it does not exist, using different versions of Intel C++ for Windows and/or different vc++ compatibility choices for any particular version will use the same msvc-setup.bat script, causing all subsequent choices after the first to fail compilation. The current workaround to this unfortunate behavior is to specify the \false option in the toolset definition for Intel C++ for Windows. However the creation of the msvc-setup.bat script file, in different subdirectories depending on the intel version and vc++ compatibility, should be the way things should work rather than the current situation of a single subdirectory for all choices.

I have made changes to intel-win.jam in a PR ( https://github.com/boostorg/build/pull/460 ) so that the \always choice acts the way it does in msvc.jam to always regenerate msvc-setup.bat. But this is still a flawed workaround to this problem, since two different Intel toolsets can be used at the "same" time regenerating the current single location msvc-setup.bat. The \off provides a better current workaround. But since the \ option is not documented for end-users he would hardly know about it to workaround the current problem. This is why I am bringing up this issue.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.