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