Not 32bit Windows, but mingw32. IsWow64Process should be defined in MinGW's w32api, which should be included in windows.h. Since windows.h is included in windowspath.cpp, it's either using a wrong windows.h or something. I did check my %PATH%, also put mingw's include directory in there, checked whether there was some windows SDK/visual studio stuff in there (there wasn't), but it's not really helping.
I have successfully built OpenMW with MinGW once.
EDIT: Okay, some more: Manually adding the MinGW include directory to CXX flags didn't help.
Code: Select all
cd C:\Users\myname\openmw\bin\components && D:\MinGW\bin\g++.exe -DBOOST_ALL_
NO_LIB -Wno-missing-field-initializers -ID:\MinGW\include -IC:\Users\myname\ope
nmw\. -ID:\Projekte\ogre_1.8_bin\include -ID:\Projekte\ogre_1.8_bin\include\OGRE
-ID:\Projekte\ogre_1.8_bin\include\OGRE\Ogre -ID:\Projekte\ogre_1.8_bin\include
\OGRE\OGRE -ID:\Projekte\ogre_1.8_bin\Components\Terrain\include -ID:\Projekte\o
gre_1.8_bin\Dependencies\include\OIS -ID:\Projekte\ogre_1.8_bin\Dependencies\inc
lude -ID:\Projekte\boost_1_49_0 -IC:\Users\myname\openmw\platform -ID:\OPENAL~1
.1SD\include -IC:\Users\myname\openmw\libs -ID:\BULLET_PHYSICS\include\bullet
-Wall -Wextra -Wno-unused-parameter -Wno-reorder -Wno-ignored-qualifiers -Wno-u
nused-but-set-parameter -o CMakeFiles\components.dir\files\windowspath.cpp.obj -
c C:\Users\myname\openmw\components\files\windowspath.cpp
C:\Users\myname\openmw\components\files\windowspath.cpp:11:0: warning: ignoring
#pragma comment [-Wunknown-pragmas]
C:\Users\myname\openmw\components\files\windowspath.cpp: In member function 'bo
ost::filesystem3::path Files::WindowsPath::getInstallPath() const':
C:\Users\myname\openmw\components\files\windowspath.cpp:78:50: error: 'IsWow64P
rocess' was not declared in this scope
make[2]: *** [components/CMakeFiles/components.dir/files/windowspath.cpp.obj] Er
ror 1
make[2]: Leaving directory `c:/Users/myname/openmw/bin'
make[1]: *** [components/CMakeFiles/components.dir/all] Error 2
make[1]: Leaving directory `c:/Users/myname/openmw/bin'
make: *** [all] Error 2
Some more stuff:
Code: Select all
myname@mycomputer /d/MinGW/include
$ grep -r -i "IsWow64Process" *
winbase.h:WINBASEAPI BOOL WINAPI IsWow64Process(HANDLE,PBOOL);
myname@mycomputer /d/MinGW/include
$ grep -r -i "winbase.h" *
ddk/ntapi.h:#include <winbase.h>
ddk/ntapi.h:/* also in winbase.h */
ddk/ntapi.h:/* end winbase.h */
ddk/ntapi.h:/* also in winbase.h */
ddk/ntapi.h:/* end winbase.h */
ddk/winddk.h: but are also exported from kernel32.dll and declared in winbase.
h as
winbase.h:#ifndef _WINBASE_H
winbase.h:#define _WINBASE_H
winbase.h:#endif /* _WINBASE_H */
windows.h:#include <winbase.h>
winerror.h:#ifndef WAIT_TIMEOUT /* also in winbase.h */
You can see how it is defined in winbase.h, which is included in windows.h, which should be included into windowspath.cpp.
EDIT2: Even more.
Code: Select all
myname@mycomputer /d/MinGW/lib
$ grep -i -r "IsWow64Process" *
Binary file libkernel32.a matches
As you can see it is in libkernel32.a, and I've got that one in my standard libraries variable in CMake. Not sure if this is even related, it's not finding the definition, not missing the library.