MantisBT - CMake
View Issue Details
0015222CMakeCMakepublic2014-10-28 08:082016-06-10 14:31
Charles Karney 
Kitware Robot 
normalfeaturealways
closedmoved 
CMake 3.0.2 
 
0015222: Need a way to determine when features were introduced into cmake
Authors of cmake scripts face a challenge ensuring that their scripts
are portable. This is exacerbated by

* cmake is constantly evolving (which is good!);

* their cmake scripts are run by a diverse set of users (also good!);

* authors have little control over the version of cmake that end-users
  have installed;

* the relationship with end-users is even more tenuous with the
  package-config scripts (which are not read by the builder of the
  package but by a developer using the package).

There is cmake_minimum_required, but authors would normally not want to
set this to too recent a version.

The problem is that it's difficult to know when a particular feature
appeared in cmake. There's no single changelog (and the format of the
changelog doesn't make it easy to search in). Frequently I'm left doing
a binary search in the documentation! Sometimes I need install old
versions to check their behavior.

For example I just noticed that install (TARGET ...) also an INCLUDES
DESTINATION option. This seemed like a feature I should be using until
I noticed that it only appeared in 2.8.12 (or thereabouts).

Suggestions:

* Have a developer mode where cmake behaves as though it were at the
  version given by cmake_minimum_required. (Probably this is
  unfeasible?)

* In the documentation, specify when each command, command option,
  variable, etc., was introduced. (Might junk up the documentation.)

* Split this information off into a separate document. (My favored
  solution.)
N/A
N/A
No tags attached.
has duplicate 0015517closed  documentation should give introducing version 
Issue History
2014-10-28 08:08Charles KarneyNew Issue
2014-10-28 08:40Brad KingNote Added: 0037079
2014-10-28 17:17Stephen KellyNote Added: 0037092
2014-10-28 18:16Charles KarneyNote Added: 0037093
2015-04-16 12:31Brad KingRelationship addedhas duplicate 0015517
2016-06-10 14:29Kitware RobotNote Added: 0042652
2016-06-10 14:29Kitware RobotStatusnew => resolved
2016-06-10 14:29Kitware RobotResolutionopen => moved
2016-06-10 14:29Kitware RobotAssigned To => Kitware Robot
2016-06-10 14:31Kitware RobotStatusresolved => closed

Notes
(0037079)
Brad King   
2014-10-28 08:40   
The documentation page has links to the docs of CMake for every version going back for years:

 http://www.cmake.org/documentation/ [^]

Just use the documentation for whatever your cmake_minimum_required(VERSION) is and you won't see new features.

Also since 3.0 we are writing formal release notes for every new version covering all new features. See here for example:

 http://www.cmake.org/cmake/help/v3.1/release/index.html [^]
(0037092)
Stephen Kelly   
2014-10-28 17:17   
There is

 http://www.cmake.org/Wiki/CMake_Version_Compatibility_Matrix [^]

but it is not updated for CMake 3.0 or 3.1 yet.
(0037093)
Charles Karney   
2014-10-28 18:16   
Thanks the compatibility matrix is handy.
(0042652)
Kitware Robot   
2016-06-10 14:29   
Resolving issue as `moved`.

This issue tracker is no longer used. Further discussion of this issue may take place in the current CMake Issues page linked in the banner at the top of this page.