spack/lib/spack
John W. Parent 1ee7c735ec
Windows: oneapi/msvc consistency (#39180)
Currently, OneAPI's setvars scripts effectively disregard any arguments
we're passing to the MSVC vcvars env setup script, and additionally,
completely ignore the requested version of OneAPI, defaulting to whatever
the latest installed on the system is.

This leads to a scenario where we have improperly constructed Windows
native development environments, with potentially multiple versions of
MSVC and OneAPI being loaded or called in the same env. Obviously this is
far from ideal and leads to some fairly inscrutable errors such as
overlapping header files between MSVC and OneAPI and a different version
of OneAPI being called than the env was setup for.

This PR solves this issue by creating a structured invocation of each
relevant script in an order that ensures the correct values are set in
the resultant build env.

The order needs to be:

1. MSVC vcvarsall
2. The compiler specific env.bat script for the relevant version of
   the oneapi compiler we're looking for. The root setvars scripts seems
   to respect this as well, although it is less explicit
3. The root oneapi setvars script, which sets up everything else the
   oneapi env needs and seems to respect previous env invocations.
2023-08-30 23:19:38 +00:00
..
docs build(deps): bump sphinx from 7.2.3 to 7.2.4 in /lib/spack/docs (#39668) 2023-08-29 14:45:06 +02:00
env cc: Ensure that user-specified flags take precedence over others (#37376) 2023-06-18 14:07:08 -07:00
external Drop Python 2 object subclassing (#38720) 2023-07-05 14:37:44 +02:00
llnl Windows symlinking support (#38599) 2023-08-25 12:18:19 -07:00
spack Windows: oneapi/msvc consistency (#39180) 2023-08-30 23:19:38 +00:00
spack_installable license year bump (#34921) 2023-01-18 14:30:17 -08:00