Different environment on build and install on windows using mingw
I'm using cmake version 3.10.1 x64 on windows 7 x64. I have Qt mingw, MSYS2 mingw and VS2008 on my system.
When compiling a project using mingw compiler I get different OS detection flags and environment than when installing. Compiling/Configuring (-G Mingw Makefiles, only mingw in path):
CYGWIN
MINGW 1
MSVC
UNIX
WIN32 1
WINCE
Path C:\Soft\MSYS2\mingw32\bin:C:\Python27\;C:\Python27\Scripts;C:\Program Files
(x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system3
2;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0
\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Fi
les (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel
\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R)
Management Engine Components\IPT;C:\Program Files (x86)\NVIDIA Corporation\Phys
X\Common;C:\Soft\doxygen\bin;C:\Program Files (x86)\PuTTY\;C:\Soft\CMake\bin;C:\
Program Files\Microsoft Windows Performance Toolkit\;C:\Soft\gnuplot\bin;C:\Prog
ram Files\TortoiseGit\bin;C:\Soft\iverilog\bin;C:\Program Files\Git\cmd;d:\Proje
cts\libraries\bin
But when running mingw32-make install
or cmake --build . --target install
I get:
CYGWIN
MINGW
MSVC
UNIX
WIN32 1
WINCE
Path C:\Soft\MSYS2\mingw32\bin:C:\Python27\;C:\Python27\Scripts;C:\Program Files
(x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system3
2;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0
\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Fi
les (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel
\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R)
Management Engine Components\IPT;C:\Program Files (x86)\NVIDIA Corporation\Phys
X\Common;C:\Soft\doxygen\bin;C:\Program Files (x86)\PuTTY\;C:\Soft\CMake\bin;C:\
Program Files\Microsoft Windows Performance Toolkit\;C:\Soft\gnuplot\bin;C:\Prog
ram Files\TortoiseGit\bin;C:\Soft\iverilog\bin;C:\Program Files\Git\cmd;d:\Proje
cts\libraries\bin;**C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\ID
E**
Cpack does strange things, too:
CYGWIN
MINGW
MSVC
UNIX
WIN32 1
WINCE
Path C:\Soft\MSYS2\mingw32\bin:C:\Python27\;C:\Python27\Scripts;C:\Program Files
(x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system3
2;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0
\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Fi
les (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel
\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R)
Management Engine Components\IPT;C:\Program Files (x86)\NVIDIA Corporation\Phys
X\Common;C:\Soft\doxygen\bin;C:\Program Files (x86)\PuTTY\;C:\Soft\CMake\bin;C:\
Program Files\Microsoft Windows Performance Toolkit\;C:\Soft\gnuplot\bin;C:\Prog
ram Files\TortoiseGit\bin;C:\Soft\iverilog\bin;C:\Program Files\Git\cmd;d:\Proje
cts\libraries\bin
The main problem (for me) is with GetPrerequisites and DeployQt4 modules. Somehow it detects dumpbin as gp_tool on both install and cpack. When running install it has no problems because of changed path. But with cpack dumpbin fails with exit code 0xc0000135 mspdb100.dll not found.
Because MINGW flag is not set on both install and cpack targets, I cannot change detection logic of GetPrerequisites.cmake to handle such condition.