I have multiple versions of IPP installed, including old versions which I'm trying to switch between for build experimentation with some legacy code.
I'm trying to diagnose why I'm having problems switching between different IPP versions using Tools/Options/Intel Compilers and Tools/Performance Libraries/Intel IPP.
The version of IPP compiled against in Visual Studio seems to depend on the variable $(IPPIncludeDir). Sometimes $(IPPIncludeDir) does reflect the choice made in the setting above. At other times it gets stuck on a particular version that I can't change, not even necessarily the same version each time.
So my question is: How is $(IPPIncludeDir) calculated and where is it persisted between Visual Studio runs?
I made sure to install Visual Studio integrations only once. Intel compiler 18 integrated with Visual Studio 2017 only and Intel Compiler 19 integrated with Visual Studio 2019 only.
I've had some success running the registry repair tool for the Intel Compiler 18/19 installers but it hasn't entirely cleared up the problem.
The actual value is stored in registry and depends upon the following
<IPPIncludeDir>$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Intel\Suites\$(_IPPSubKey)\IPP\$(ICPlatform)', 'IncludeDir', null,
In reged the node is HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node
If you decide to hack it, I would suggest backint up the registry