CMake Version Compatibility Matrix

From KitwarePublic
Revision as of 14:28, 3 December 2010 by Jzarl (talk | contribs) (add matrices for properties)
Jump to navigationJump to search

Compatibility across different CMake versions

Below you can find a list of features and when they were introduced to cmake. The features are grouped by their respective section in the documentation. Entries marked in green show available, fully upwards-compatible features. Entries in yellow mark changes in features that are available in higher versions of CMake, but not in this version. Entries in red mark incompatible changes or not available features.


Options

CMake Option 2.8.3 2.8.2 2.8.1 2.8.0 2.6-patch 4 2.6-patch 3 2.6-patch 2 2.6-patch 1 2.6-patch 0
-C <initial-cache> X X X X X X X X X
-D <var>:<type>=<value> X X X X X X X X X
-U <globbing_expr> X X X X X X X X X
-G <generator-name> X X X X X X X X X
-Wno-dev X X X X X X X X X
-Wdev X X X X X X X X X
-E X X X X X X X X X
-i X X X X X X X X X
-L[A][H] X X X X X X X X X
--build <dir> X X X X - - - - -
-N X X X X X X X X X
-P <file> X X X X X X X X X
--graphviz=[file] X X X X X X X X X
--system-information [file] X X X X X X X X X
--debug-trycompile X X X X X X X X X
--debug-output X X X X X X X X X
--trace X X X X X X X - -
--help-command cmd [file] X X X X X X X X X
--help-command-list [file] X X X X X X X X X
--help-commands [file] X X X X X X X X X
--help-compatcommands [file] X X X X X X X X X
--help-module module [file] X X X X X X X X X
--help-module-list [file] X X X X X X X X X
--help-modules [file] X X X X X X X X X
--help-custom-modules [file] X X X X X X X X X
--help-policy cmp [file] X X X X X X X X -
--help-policies [file] X X X X X X X X -
--help-property prop [file] X X X X X X X X X
--help-property-list [file] X X X X X X X X X
--help-properties [file] X X X X X X X X X
--help-variable var [file] X X X X X X X X X
--help-variable-list [file] X X X X X X X X X
--help-variables [file] X X X X X X X X X
--copyright [file] X X X X X X X X X
--help X X X X X X X X X
--help-full [file] X X X X X X X X X
--help-html [file] X X X X X X X X X
--help-man [file] X X X X X X X X X
--version [file] X X X X X X X X X

Note: Commands available with the -E option are not tracked by this overview.


Commands

CMake Option 2.8.3 2.8.2 2.8.1 2.8.0 2.6-patch 4 2.6-patch 3 2.6-patch 2 2.6-patch 1 2.6-patch 0
add_custom_command X X X X X X X X X
add_custom_target X X X X X X (missing: option SOURCES) X X X
add_definitions X X X X X X X X X
add_dependencies X X X X X X X X X
add_executable X X X X X X X X X
add_library X X X X X X X X (missing: add library type UNKNOWN) X
add_subdirectory X X X X X X X X X
add_test X X X X X - X X X
aux_source_directory X X X X X X X X X
break X X X X X X X X X
build_command X X X X (missing: supports options CONFIGURATION, PROJECT_NAME, and TARGET) X X X X X
cmake_minimum_required X X X (missing: optional .tweak to version) X X X X X X
cmake_policy X X X X X X X X (missing: support GET) X
configure_file X X X (missing: DOWNLOAD supports options EXPECTED_MD5 and SHOW_PROGRESS) X X X X X X
create_test_sourcelist X X X X X X X X X
define_property X X X X X X X X X
else X X X X X X X X X
elseif X X X X X X X X X
enable_language X X X X X X X X X
enable_testing X X X X X X X X X
endforeach X X X X X X X X X
endfunction X X X X X X X X X
endif X X X X X X X X X
endmacro X X X X X X X X X
endwhile X X X X X X X X X
execute_process X X X X X X X X X
export X X X X X (missing: PACKAGE) X X X X
file X X X X X (missing: RENAME, COPY, INSTALL) X X X (missing: GLOB_RECURSE supports FOLLOW_SYMLINKS) X
find_file X X X X X X X X X (missing: option HINTS)
find_library X X X X X X X X X (missing: option HINTS)
find_package X X (missing: sets variable <package>_CONSIDERED_CONFIGS) X X (change: doesn't search in <package>_DIR when considering CMAKE_ENVIRONMENT_PATH) X (missing: option NO_CMAKE_PACKAGE_REGISTRY) X (missing: option NO_POLICY_SCOPE; change: don't continue, if <package>_DIR is set incorrectly; doesn't check PACKAGE_VERSION_UNSUITABLE; fewer search-paths) X X (missing: sets variable PACKAGE_FIND_VERSION_TWEAK and PACKAGE_FIND_VERSION_COUNT) X (missing: option HINTS)
find_path X X X X X X X X X (missing: option HINTS)
find_program X X X X X X X X X (missing: option HINTS)
fltk_wrap_ui X X X X X X X X X
foreach X X X X X (missing: IN LISTS, IN ITEMS) X X X X
function X X X X X X X X X
get_cmake_property X X X X X X X X X
get_directory_property X X X X X X X X X
get_filename_component X X X X X X (missing: option REALPATH) X X X
get_property X X X X X (missing: CACHE) X X X X
get_source_file_property X X X X X X X X X
get_target_property X X X X X X X X X
get_test_property X X X X X X X X X
if X X X X (missing: IS_SYMLINK) X (missing: allow constants, parenthesis) X X X (missing: TARGET, VERSION_LESS, VERSION_EQUAL, VERSION_GREATER) X
include X X X X X X (missing: option NO_POLICY_SCOPE) X X X
include_directories X X X X X X X X X
include_external_msproject X X X (change: prefix created target with "INCLUDE_EXTERNAL_MSPROJECT_") X X X X X X
include_regular_expression X X X X X X X X X
install X X X X X (missing: DIRECTORY supports OPTIONAL) X X X X
link_directories X X X X X X X X X
list X X X X X X X X X
load_cache X X X X X X X X X
load_command X X X X X X X X X
macro X X X X X X X X X
mark_as_advanced X X X X X X X X X
math X X X X X X X X X
message X X X X X (missing: WARNING, AUTHOR_WARNING) X X X X
option X X X X X X X X X
output_required_files X X X X X X X X X
project X X X X X X (missing: custom languages supported) X X X
qt_wrap_cpp X X X X X X X X X
qt_wrap_ui X X X X X X X X X
remove_definitions X X X X X X X X X
return X X X X X X X X (missing: returns from file) X
separate_arguments X X X X X (missing: UNIX_COMMAND, WINDOWS_COMMAND) X X X X
set X X X X X X X X X
set_directory_properties X X X X X X X X X
set_property X X X X X (missing: CACHE) X X X X
set_source_files_properties X X X X X X X X X
set_target_properties X X X X X X (missing: support VS_SCC_PROJECTNAME, VS_SCC_LOCALPATH, VS_SCC_PROVIDER) X X X
set_tests_properties X X X X X X X X X
site_name X X X X X X X X X
source_group X X X X X X X X X
string X X X X X (missing: RANDOM supports RANDOM_SEED) X X X X
target_link_libraries X X X X X X X X (missing: option LINK_INTERFACE_LIBRARIES) X
try_compile X X X X X X X X X
try_run X X X X X X X X X
unset X X X X X X - - -
variable_watch X X X X X X X X X
while X X X X X X X X X


Properties

Properties of Global Scope

CMake Option 2.8.3 2.8.2 2.8.1 2.8.0 2.6-patch 4 2.6-patch 3 2.6-patch 2 2.6-patch 1 2.6-patch 0
ALLOW_DUPLICATE_CUSTOM_TARGETS X X X X X X X X X
DEBUG_CONFIGURATIONS X X X X X X - - -
DISABLED_FEATURES X X X X X X X X X
ENABLED_FEATURES X X X X X X X X X
ENABLED_LANGUAGES X X X X X X X X -
FIND_LIBRARY_USE_LIB64_PATHS X X X X X X X X X
FIND_LIBRARY_USE_OPENBSD_VERSIONING X X X X - - - - -
GLOBAL_DEPENDS_DEBUG_MODE X X X X X X X X X
GLOBAL_DEPENDS_NO_CYCLES X X X X - - - - -
IN_TRY_COMPILE X X X X X X X X X
PACKAGES_FOUND X X X X X X X X X
PACKAGES_NOT_FOUND X X X X X X X X X
PREDEFINED_TARGETS_FOLDER X - - - - - - - -
REPORT_UNDEFINED_PROPERTIES X X X X X X X X X
RULE_LAUNCH_COMPILE X X X X - - - - -
RULE_LAUNCH_CUSTOM X X X X - - - - -
RULE_LAUNCH_LINK X X X X - - - - -
RULE_MESSAGES X X X X - - - - -
TARGET_ARCHIVES_MAY_BE_SHARED_LIBS X X X X X X X X X
TARGET_SUPPORTS_SHARED_LIBS X X X X X X X X X
USE_FOLDERS X - - - - - - - -
__CMAKE_DELETE_CACHE_CHANGE_VARS_ X X X X X X X X X

Properties on Directories

CMake Option 2.8.3 2.8.2 2.8.1 2.8.0 2.6-patch 4 2.6-patch 3 2.6-patch 2 2.6-patch 1 2.6-patch 0
ADDITIONAL_MAKE_CLEAN_FILES X X X X X X X X X
CACHE_VARIABLES X X X X X X X X -
CLEAN_NO_CUSTOM X X X X X X X X X
COMPILE_DEFINITIONS X X X X X X X X X
COMPILE_DEFINITIONS_<CONFIG> X X X X X X X X X
DEFINITIONS X X X X X X X X (deprecated: use COMPILE_DEFINITIONS instead) X (TODO: really added in 2.6.1? missing from doc before 2.6.1, but compatibility feature for 2.4)
EXCLUDE_FROM_ALL X X X X X X X X X
IMPLICIT_DEPENDS_INCLUDE_TRANSFORM X X X X X X X X -
INCLUDE_DIRECTORIES X X X X X X X X -
INCLUDE_REGULAR_EXPRESSION X X X X X X X X -
INTERPROCEDURAL_OPTIMIZATION X X X X - - - - -
INTERPROCEDURAL_OPTIMIZATION_<CONFIG> X X X X - - - - -
LINK_DIRECTORIES X X X X X X X X -
LISTFILE_STACK X X X X X X X X X
MACROS X X X X X X X X -
PARENT_DIRECTORY X X X X X X X X -
RULE_LAUNCH_COMPILE X X X X - - - - -
RULE_LAUNCH_CUSTOM X X X X - - - - -
RULE_LAUNCH_LINK X X X X - - - - -
TEST_INCLUDE_FILE X X X X X X X X X
VARIABLES X X X X X X X X -

Properties on Targets

CMake Option 2.8.3 2.8.2 2.8.1 2.8.0 2.6-patch 4 2.6-patch 3 2.6-patch 2 2.6-patch 1 2.6-patch 0
<CONFIG>_OUTPUT_NAME X X X X (deprecated: use OUTPUT_NAME_<CONFIG>) X X X X X
<CONFIG>_POSTFIX X X X X X X - - -
ARCHIVE_OUTPUT_DIRECTORY X X X X X X X X X
ARCHIVE_OUTPUT_DIRECTORY_<CONFIG> X X X - - - - - -
ARCHIVE_OUTPUT_NAME X X X X - - - - -
ARCHIVE_OUTPUT_NAME_<CONFIG> X X X X - - - - -
BUILD_WITH_INSTALL_RPATH X X X X X X X X X
CLEAN_DIRECT_OUTPUT - - - - (removed?) X X X X X
COMPILE_DEFINITIONS X X X X X X X X X
COMPILE_DEFINITIONS_<CONFIG> X X X X X X X X X
COMPILE_FLAGS X X X X X X X X X
DEBUG_POSTFIX X X X X X X X X X
DEFINE_SYMBOL X X X X X X X X X
ENABLE_EXPORTS X X X X X X X X X
EXCLUDE_FROM_ALL X X X X X X X X X
EchoString X X X X X X X X X
FOLDER X - - - - - - - -
FRAMEWORK X X X X X X X X X
Fortran_MODULE_DIRECTORY X X X X X X X X X
GENERATOR_FILE_NAME X X X X X X X X X
HAS_CXX X X X X (deprecated: set LINKER_LANGUAGE instead) X X X X X
IMPLICIT_DEPENDS_INCLUDE_TRANSFORM X X X X X X X X -
IMPORTED X X X X X X X X X
IMPORTED_CONFIGURATIONS X X X X X X X X X
IMPORTED_IMPLIB X X X X X X X X X
IMPORTED_IMPLIB_<CONFIG> X X X X X X X X X
IMPORTED_LINK_DEPENDENT_LIBRARIES X X X X X X X X X
IMPORTED_LINK_DEPENDENT_LIBRARIES_<CONFIG> X X X X X X X X X
IMPORTED_LINK_INTERFACE_LANGUAGES X X X X - - - - -
IMPORTED_LINK_INTERFACE_LANGUAGES_<CONFIG> X X X X - - - - -
IMPORTED_LINK_INTERFACE_LIBRARIES X X X X X X X X X
IMPORTED_LINK_INTERFACE_LIBRARIES_<CONFIG> X X X X X X X X X
IMPORTED_LINK_INTERFACE_MULTIPLICITY X X X X - - - - -
IMPORTED_LINK_INTERFACE_MULTIPLICITY_<CONFIG> X X X X - - - - -
IMPORTED_LOCATION X X X X X X X X X
IMPORTED_LOCATION_<CONFIG> X X X X X X X X X
IMPORTED_NO_SONAME X - - - - - - - -
IMPORTED_NO_SONAME_<CONFIG> X - - - - - - - -
IMPORTED_SONAME X X X X X X X X X
IMPORTED_SONAME_<CONFIG> X X X X X X X X X
IMPORT_PREFIX X X X X X X X X X
IMPORT_SUFFIX X X X X X X X X X
INSTALL_NAME_DIR X X X X X X X X X
INSTALL_RPATH X X X X X X X X X
INSTALL_RPATH_USE_LINK_PATH X X X X X X X X X
INTERPROCEDURAL_OPTIMIZATION X X X X - - - - -
INTERPROCEDURAL_OPTIMIZATION_<CONFIG> X X X X - - - - -
LABELS X X X X - - - - -
LIBRARY_OUTPUT_DIRECTORY X X X X X X X X X
LIBRARY_OUTPUT_DIRECTORY_<CONFIG> X X X - - - - - -
LIBRARY_OUTPUT_NAME X X X X - - - - -
LIBRARY_OUTPUT_NAME_<CONFIG> X X X X - - - - -
LINKER_LANGUAGE X X X X X (default value changed) X X X X
LINK_FLAGS X X X X X X X X X
LINK_FLAGS_<CONFIG> X X X X X X X X X
LINK_INTERFACE_LIBRARIES X X X X X X X X X
LINK_INTERFACE_LIBRARIES_<CONFIG> X X X X X X X X X
LINK_INTERFACE_MULTIPLICITY X X X X - - - - -
LINK_INTERFACE_MULTIPLICITY_<CONFIG> X X X X - - - - -
LINK_SEARCH_END_STATIC X X X X X X X X X
LOCATION X X X X X X X (missing: semantic for imported targets) X X
LOCATION_<CONFIG> X X X X X X X X X
MACOSX_BUNDLE X X X X X X X X X
MACOSX_BUNDLE_INFO_PLIST X X X X X X X X -
MACOSX_FRAMEWORK_INFO_PLIST X X X X X X X - -
MAP_IMPORTED_CONFIG_<CONFIG> X X X X X X X X X
OSX_ARCHITECTURES X X X - - - - - -
OSX_ARCHITECTURES_<CONFIG> X X X - - - - - -
OUTPUT_NAME X X X X X X X X X
OUTPUT_NAME_<CONFIG> X X X X - - - - -
POST_INSTALL_SCRIPT X X X X X X X X X
PREFIX X X X X X X X X X
PRE_INSTALL_SCRIPT X X X X X X X X X
PRIVATE_HEADER X X X X X X X X X
PROJECT_LABEL X X X X X X - - -
PUBLIC_HEADER X X X X X X X X X
RESOURCE X X X X X X X X X
RULE_LAUNCH_COMPILE X X X X - - - - -
RULE_LAUNCH_CUSTOM X X X X - - - - -
RULE_LAUNCH_LINK X X X X - - - - -
RUNTIME_OUTPUT_DIRECTORY X X X X X X X X X
RUNTIME_OUTPUT_DIRECTORY_<CONFIG> X X X - - - - - -
RUNTIME_OUTPUT_NAME X X X X - - - - -
RUNTIME_OUTPUT_NAME_<CONFIG> X X X X - - - - -
SKIP_BUILD_RPATH X X X X X X X X X
SOURCES X X X X X X X X X
SOVERSION X X X X X X X X X
STATIC_LIBRARY_FLAGS X X - - - - - - -
STATIC_LIBRARY_FLAGS_<CONFIG> X X X X X X X X X
SUFFIX X X X X X X X X X
TYPE X X X X X X - - -
VERSION X X X X X X X X X
VS_KEYWORD X X X X X X - - -
VS_SCC_LOCALPATH X X X X X X - - -
VS_SCC_PROJECTNAME X X X X X X - - -
VS_SCC_PROVIDER X X X X X X - - -
WIN32_EXECUTABLE X X X X X X X X X
XCODE_ATTRIBUTE_<an-attribute> X X X X X X X X X

Properties on Tests

CMake Option 2.8.3 2.8.2 2.8.1 2.8.0 2.6-patch 4 2.6-patch 3 2.6-patch 2 2.6-patch 1 2.6-patch 0
ATTACHED_FILES X X X - - - - - -
ATTACHED_FILES_ON_FAIL X X X - - - - - -
COST X X X - - - - - -
DEPENDS X X X - - - - - -
ENVIRONMENT X X X X - - - - -
FAIL_REGULAR_EXPRESSION X X X X X X X X X
LABELS X X X X - - - - -
MEASUREMENT X X X X X X X X X
PASS_REGULAR_EXPRESSION X X X X X X X X X
PROCESSORS X X X - - - - - -
REQUIRED_FILES X X X - - - - - -
RESOURCE_LOCK X X - - - - - - -
RUN_SERIAL X X X - - - - - -
TIMEOUT X X X X X X X X X
WILL_FAIL X X X X X X X X X

Properties on Source Files

CMake Option 2.8.3 2.8.2 2.8.1 2.8.0 2.6-patch 4 2.6-patch 3 2.6-patch 2 2.6-patch 1 2.6-patch 0
ABSTRACT X X X X X X X X X
COMPILE_DEFINITIONS X X X X X X X X X
COMPILE_DEFINITIONS_<CONFIG> X X X X X X X X X
COMPILE_FLAGS X X X X X X X X X
EXTERNAL_OBJECT X X X X X X X X X
GENERATED X X X X X X X X X
HEADER_FILE_ONLY X X X X X X X X X
KEEP_EXTENSION X X X X X X X X X
LABELS X X X X - - - - -
LANGUAGE X X X X X X X X X
LOCATION X X X X X X X X X
MACOSX_PACKAGE_LOCATION X X X X X X X X X
OBJECT_DEPENDS X X X X X X X X X
OBJECT_OUTPUTS X X X X X X X X X
SYMBOLIC X X X X X X X X X
WRAP_EXCLUDE X X X X X X X X X

Properties on Cache Entries

CMake Option 2.8.3 2.8.2 2.8.1 2.8.0 2.6-patch 4 2.6-patch 3 2.6-patch 2 2.6-patch 1 2.6-patch 0
ADVANCED X X X X - - - - -
HELPSTRING X X X X - - - - -
MODIFIED X X X X - - - - -
STRINGS X X X X - - - - -
TYPE X X X X - - - - -
VALUE X X X X - - - - -