Gonzalo Garramuño wrote:
Bill Hoffman wrote:


Perhaps it would help if you explained your use case.
Sure, I'll give you several examples.
Why would you want to build MSVC and an MSYS version of your software on the same machine?
To follow your advice from some months ago, where you specifically told me that you just COULDN'T generate Visual Studio files without linking to the Visual Studio library (back then I also disagreed, but since I don't know the VS innards well enough, I took your word for it). Funny enough, it was kind of the reverse argument of what you are saying now. Up to an earlier cmake2.5 version from 2 or 3 months ago (my stable one that got overwritten), that was still true. A MinGW cmake could not generate MSVC projects. It seems now this may have changed (not sure, did not do proper tests yet).

Nothing has changed here, if you build cmake with MinGW, it will not be able to create visual studio projects.

Do they behave differently?
Don't know.  They used to.  Do they?

OK, so in the case of CMake, the MinGW built version is less capable, as it has no GUI (there is no MFC with MinGW). However, in the case of CMake, there is no reason to use a MinGW built version of CMake, it really is not a supported platform for building CMake with. I have made a nightly binary available for people that want to use CVS CMake and do not have the MS compiler.

Or, are you just testing to make sure your stuff can be built by both MSVC and MSYS?
Correct. I also have code that I need to compile that cannot be compiled under MSVC (ffmpeg, for example, due to microsoft's broken compiler up to 7.1 at least). No other proprietary alternative video library matches all that an even LGPL ffmpeg can do. Also, one of my template libraries also started crashing the microsoft compiler version I use with an undocumented C1001 and as such I am considering banning the compiler completely from all my build projects in the future. I honestly I am not going to be the betatester for microsoft for a product that cost me U$1500 and works worse than gcc and

You do realize that you can get the microsoft compiler for about $300, the standard version is just fine for C++ development.


If they do not behave differently, why would you want one installed in program files and one in /usr/local?
They DID behave differently.
But I also answered this privately to Brandon. Basically, because that's a very good development policy that at least *I* like (but I'm pretty sure I'm not alone on this one). Some old Unix guru (whoever came up with the idea) provides, in practice, the idea of using /usr/local as a sandbox for software. Autotools makes that the default even. I can easily get the latest ffmpeg from svn, compile it in /usr/local and see if it broke stuff. LD_LIBRARY_PATH or PATH has /usr/local in it first. If something breaks, I don't upgrade or ship my software with that version. I keep using the one in /usr or in $PROGRAMFILES. If cmake worked like that on windows, I could do the same thing with cmake. Currently, I can't unless I specifically remember to pass a flag each time. So even though I upgrade cmake from CVS I usually don't compile it and try it, and I am now 2-3 months behind cmake development.

Actually, you should only have to specify the install directory once, and just keep the binary directory around. Do a cvs update, then do a make in the build tree.


Yet one more example. I am currently forking fltk2 (at least temporarily) with one of the goals to add cmake support, as properly keeping in sync VS files is, in my opinion, one thing that is slowing fltk2's development. Currently, it also builds using autotools under MSYS and as such it installs in /usr/local by default. User's will expect that to keep working the same way. Same thing will happen for any autotools project that works under msys that wants to move to cmake. If each one of them needs to keep adding CMAKE_INSTALL_PREFIX and figuring out where msys is installed, there will be much less desire to move to cmake due to the headache and will likely soon lead to a mess of some CMakeLists.txt in each ported autotools project using some custom method to detect where msys is while others use another. Nightmare.

OK, now this is more what I was asking for. If autotools based projects in msys install into /usr/local by default, then maybe CMake ones should as well. I think I am going to post to the msys mailing list and get some input from those folks. My reason for not wanting to use /usr/local was that msys states that it does not want to become a cygwin, but rather just a tool so that you can build autotools projects under msys. Basically, they do not want to make it easy to extend msys, they want you to use it to build stuff with gcc on windows. With applications, it makes sense to put them in program files, as they are native windows applications. However, with a library and header files, the story is a bit different. If you install a library into /usr/local/lib and headers into /usr/local/include then the compiler that is going to use them does know about /usr/local, and how to find and use files in the POSIX paths.


Anyway, that's several examples why I would like cmake to follow msys/autotools policy under at least one generator. The one called "MSYS" kind of seemed the more logical one.

I am starting to change my mind, but am still going to post to the msys mailing list.

P.S. To be honest, I thought that just changing a default install locations was going to be a very simple request. I cannot believe I've now spent 5 or 6 emails defending this position.

Email, is a poor form of communication for stuff like this. I am sure if we talked on the phone or meet in person this would have been resolved much quicker.

I will get back to the list with what I find out on the msys list.


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

Reply via email to