On Dec 18, 2007, at 10:07 AM, James Bigler wrote:

On Dec 18, 2007, at 7:48 AM, Bill Hoffman wrote:

James Bigler wrote:

I also agree that trying to maintain backwards compatibility to the detriment of the future can become a hinderance. I just had a collegue who was extreemly frustrated for several hours with why his build didn't work, only to discover that he should have been using ADD_SUBDIRECTORIES instead of SUBDIRS. There was no warning from CMake stating that he shouldn't be using it (I would argue that CMake should warn about the use of SUBDIRS).
That would be lots of warnings! SUBDIRS was the only way to do things for a long time. CMake itself still uses them so it can be bootstrapped with older versions of CMake. SUBDIRS still works, it just works different. The behavior of both are documented.

"The ADD_SUBDIRECTORY command should be used instead of SUBDIRS although SUBDIRS will still work."

There isn't a mention in the docs that SUBDIRS behaves differently to ADD_SUBDIRECTORIES in the man page, just that it should work.

Part of the problem with my collegue is that he was copying code from another part of the build system. He was new to cmake and hadn't read the whole man page. He just assumed the one way he found to traverse subdirectories was the one to use. It's really confusing to have two ways to do basically the same thing with only subtle differences.

I guess my argument is that changing syntax shouldn't be shied away from, but it would be nice to have a way to flush out old code.


Would it be possible to emit a warning when commands like subdirs are used? The warning is built into cmake and emits every time cmake is run? This would help motivate people to move to the newer commands?

I know this has ramifications that I am not thinking of..

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

Reply via email to