Gonzalo Garramuño wrote:
Bill Hoffman wrote:

Looks like a nice patch that you can put in your cmakelist files. I still do not think it should go in CMake. I don't think that things built by cmake that are native windows things belong in the /usr/local mount point of msys. If you do, it is easy enough to change your project to install by default in anywhere you want.

Okay, I looked at the C++ code of MSYS generator. And surprise, surprise. It does EXACTLY what I said to do of searching the path (but looks for make.exe instead of sh.exe). Also it uselessly (and somewhat potentially incorrectly) parses /etc/fstab to find where mingw's bin directory is (and does not cache any of the other paths, which could indeed potentially allow FIND_PATH() and others to work with mingw paths eventually).

The C++ code just forgets to set CMAKE_INSTALL_PREFIX to MSYS proper values. I'll revert this .cmake patch and I'll give you a C++ patch of it instead, as the code is much cleaner that way. And to be honest, I find the C++ code to be much more readable than the .cmake code (which is somewhat disturbing).


The C++ code did not "forget" anything. I intentionally do not set the CMAKE_INSTALL_PREFIX to the equivalent of /usr/local in a windows PATH because I think it is the wrong default. I still think that it is correct to install into program files. The only case where I would accept /usr/local as the default for make install for msys, is if someone made a native msys version of cmake that linked to the msys run time. That would be a cmake used for creating other msys applications that would install into /usr/local for msys. If cmake is creating a native windows application that uses the microsoft run time, then it is a native windows application and it belongs in program files. Native windows applications do not belong in /usr/local (since they don't even know what /usr/local is).

Perhaps it would help if you explained your use case. Your original email said that the install overwrote your MSVC version of your software. Why would you want to build MSVC and an MSYS version of your software on the same machine? Do they behave differently? Or, are you just testing to make sure your stuff can be built by both MSVC and MSYS? If they do not behave differently, why would you want one installed in program files and one in /usr/local?

-Bill

_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to