On 2/23/2012 2:12 PM, Kenneth Boyd wrote:
On 2/23/2012 5:20 AM, Andrea Crotti wrote:
I have MinGW installed in my system and today I added the bin
directory to the path, so I was able to
run all the commands also from a standard shell.

But now CMake complains:

CMake Error at c:/Program Files/CMake
2.8/share/cmake-2.8/Modules/CMakeMinGWFindMake.cmake:20 (MESSAGE):
sh.exe was found in your PATH, here:

C:/MinGW/msys/1.0/bin/sh.exe

For MinGW make to work correctly sh.exe must NOT be in your path.

Run cmake from a shell that does not have sh.exe in your PATH.

If you want to use a UNIX shell, then use MSYS Makefiles.


So well I thought I could just use the MSYS Makefiles instead, but
reconfiguring and with the same target that doesn't work:

Scanning dependencies of target cleanup_system
process_begin: CreateProcess(NULL, /c/python25/python.exe
h:/git_projs/PSI_Hamburg/utils/utils/bin/clean_global.py, ...) failed.
make (e=2): The system cannot find the file specified.
epd-make[3]: *** [CMakeFiles/cleanup_system] Error 2
epd-make[2]: *** [CMakeFiles/cleanup_system.dir/all] Error 2
epd-make[1]: *** [CMakeFiles/run_as_user.dir/rule] Error 2
epd-make: *** [run_as_user] Error 2


Does it mean that I have something which is not portable in my
CMakeLists?

The solution might be remove the MinGW bin from the path of course,
but I would lose the nice commands from each shell
and I would also like to understand what is going on..
The MingW platform file is explicitly programmed to reject MingW bash.

Bill Hoffman implicitly rejected my offer to provide a patch to enable a
new generator as of CMake 2.6.2:
http://public.kitware.com/Bug/view.php?id=7870 . Without a policy
reversal on his part, I would assume this platform (which is also mine)
is intentionally unsupported.


gmake behaves differently if /bin/sh is in the PATH. The makefiles for MinGW Makefiles are written for gmake running in the mode where it does not have /bin/sh. The makefiles for Msys Makefiles are written so that they work with /bin/sh mode of gmake. It all has to do with which shell is running the commands from gmake. In the MinGW case, it is using a windows cmd.com shell, and in the Msys case it is using /bin/sh. They are of course very different. There is no way to force gmake to use a particular shell, it is all based on what is in the PATH.

About bug 7870, I am not sure that I understood that you were proposing a new generator. I thought the bug was more about getting bootstrap to work. It does seem that there is an issue with allowing make.exe to work. I think if you set CMAKE_MAKEPROGRAM to make.exe it should work. A patch that found different make.exe or make-mingw and then tested them would not be rejected. I still don't see how we can avoid having separate generators for MinGW and Msys, and I certainly don't think a third one would help reduce confusion.

Also, I think someone might have fixed the bootstrap issues with Msys at this point, but I am not sure... A lot has changed since 2008 when that bug was created...

-Bill

--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to