[CMake] New warnings in CMake 2.8.4-rc2

Emmanuel Blot eblot.ml at gmail.com
Wed Feb 2 11:14:05 EST 2011


> Currently, there is no way to turn this off.

Very, very bad news ;-(
IMHO, this is a recurrent issue with CMake. It seems there is no way
to guarantee that a project that builds well with a version of CMake
will build the same way with the next minor iteration (used to be
called "patch release").
Adding new options, new error detections to CMake is great, but
turning on these new features by default is often a source of issues.
We cannot control which minor release of CMake a client uses to build
up an application. Controlling a major version is ok (2.6 vs. 2.8),
but controlling a patch release is impossible, as CMake gets
automatically updated in Linux distributions, for example.

> Are the warnings valid? It
> means you are giving -D options on the command line, and those variables are
> never touched in the project.  Seems like you would not want to use them
> anymore.

It seems, but it is not always the case.
For example, the same command line parameters may be given to several
CMake scripts, and depending on the script, the script may or may not
use them. It's far easier do to this way rather than specifying a very
specific command line for every single project.

> The idea was to catch misspelled words.

The idea is definitely nice, but why do not turn on this kind of new
policies on explicit request (either with a new option switch and/or a
new POLICY statement) as long as CMake does not reach a new major
milestone?
Dealing with the constant modifications of CMake options is a tough
job for a software maintainer, I believe.

So if I understand it right, the only way to keep the project building
without new warning is to tweak the way CMake is invoked. Trouble is,
does CMake 2.8.0 accept the -- disable warning option switches?

In other words, how should I invoke CMake so that it can build the
same, existing projects whatetever the actual CMake 2.8.x release ?

Thanks,
Manu


More information about the CMake mailing list