On 6/3/2011 11:22 AM, Steve Westenbroek wrote:
Thanks Bill and Bill for looking into this!

I don't know if this was clear in my original post, but is seems that
most of my troubles with CMake on my system stem from the fact that I
have nearly half-a-dozen MinGW/MSYS installs on my system; each exists
for a specific purpose, and each has it's own version of make:

c:\MinGW-32\bin\make.exe
c:\MinGW-64\bin\make.exe
c:\OSGeo4W\apps\msys\bin\make.exe
c:\Program Files (x86)\pythonxy\mingw\bin\make.exe
c:\RTools\bin\make.exe

None of these fits the patterns given in Modules/CMakeMinGWFindMake.cmake!

I thought that I had expunged all references to MinGW in my system PATH
variable, but it seems that one snuck in anyway. Somehow CMake was
identifying 64-bit libraries in spite of the definitions (i.e.
CMAKE_C_COMPILER, CMAKE_FORTRAN_COMPILER, etc.) all pointing to the
32-bit version of MinGW.

I am now able to get Cmake to work by doing the following:

1) sanitize PATH variable of any MinGW references
2) create custom instance of cmd.exe in which LIB, INCLUDE, and
CMAKE_MAKE_PROGRAM are defined
3) start CMake-gui from the command-line within the above environment

CMake still claims CMAKE_MAKE_PROGRAM is undefined (why??), but after
defining this within the GUI, I now get a working build.

It would still be nice to have an easy way to override all the Windows
registry and environment variables to ensure that CMake is targeting the
appropriate toolchain. For whatever reason, I've never been able to get
CMake to find make, ar, sh etc. on my system via the CMake find_program
commands.


So, CMake should always work with a correctly setup environment. By that I mean one where you can type mingw32-make and it can run gcc and g++ with no errors or problems. CMAKE_MAKE_PROGRAM is a CMake cache variable not an environment variable, so setting it in the env will not do anything. The same is true for VS nmake builds. You have to run CMake from an environment where all the tools just work. Same is true on Linux, the compiler and make must be installed and run from the command line that CMake is being run with. To make things "easier", I added the registry searching stuff so that it could find mingw automatically without having a "correct" environment. This part seems to no longer work with mingw as they seem to have changed some stuff.

Hope that helps.

-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