code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CMake 3.5 Release Notes — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMake 3.4 Release Notes" href="3.4.html" />
    <link rel="prev" title="CMake 3.6 Release Notes" href="3.6.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

CMake Release Notes »

CMake 3.5 Release Notes

CMake 3.5 Release Notes¶

Contents

CMake 3.5 Release Notes

New Features

GUI

Command-Line

Commands

Variables

Properties

Modules

Platforms

CPack

Other

Deprecated and Removed Features

Other Changes

Changes made since CMake 3.4 include the following.

New Features¶

GUI¶

The cmake-gui(1) gained options to control warnings about
deprecated functionality.

The cmake-gui(1) learned an option to set the toolset
to be used with VS IDE and Xcode generators, much like the
existing -T option to cmake(1).

The cmake-gui(1) gained a Regular Expression Explorer which
may be used to create and evaluate regular expressions in real-time.
The explorer window is available via the Tools menu.

Command-Line¶

The -Wdev and -Wno-dev cmake(1) options now also enable
and suppress the deprecated warnings output by default.

The suppression of developer warnings as errors can now be controlled with
the new -Werror=dev and -Wno-error=dev cmake(1) options.

The cmake(1) -E command-line tools copy,
copy_if_different, copy_directory, and make_directory
learned to support multiple input files or directories.

Commands¶

The cmake_parse_arguments() command is now implemented natively.
The CMakeParseArguments module remains as an empty placeholder
for compatibility.

The install(DIRECTORY) command learned to support
generator expressions
in the list of directories.

Variables¶

The CMAKE_ERROR_DEPRECATED variable can now be set using the
-Werror=deprecated and -Wno-error=deprecated cmake(1)
options.

The CMAKE_WARN_DEPRECATED variable can now be set using the
-Wdeprecated and -Wno-deprecated cmake(1) options.

Properties¶

The VS_GLOBAL_<variable> target property is now implemented
for VS 2010 and above.  Previously it worked only in VS 2008 and below.

Modules¶

The ExternalProject module learned a new GIT_REMOTE_NAME
option to control the git clone --origin value.

The FindBoost module now provides imported targets
such as Boost::boost and Boost::filesystem.

The FindFLEX module FLEX_TARGET macro learned a
new DEFINES_FILE option to specify a custom output header
to be generated.

The FindGTest module now provides imported targets.

The FindGTK2 module, when GTK2_USE_IMPORTED_TARGETS is
enabled, now sets GTK2_LIBRARIES to contain the list of imported
targets instead of the paths to the libraries.  Moreover it now sets
a new GTK2_TARGETS variable containing all the targets imported.

The FindOpenMP module learned to support Clang.

The FindOpenSSL module gained a new
OPENSSL_MSVC_STATIC_RT option to search for libraries using
the MSVC static runtime.

The FindPNG module now provides imported targets.

The FindTIFF module now provides imported targets.

A FindXalanC module was introduced to find the
Apache Xalan-C++ XSL transform processing library.

The FindXercesC module now provides imported targets.

Platforms¶

Support was added for the ARM Compiler (arm.com) with compiler id ARMCC.

A new platform file for cross-compiling in the Cray Linux Environment to
target compute nodes was added.  See
Cross Compiling for the Cray Linux Environment
for usage details.

The Compile Features functionality
is now aware of features supported by Clang compilers on Windows (MinGW).

When building for embedded Apple platforms like iOS CMake learned to build and
install combined targets which contain both a device and a simulator build.
This behavior can be enabled by setting the IOS_INSTALL_COMBINED
target property.

CPack¶

The CPack DragNDrop Generator learned new variable to
specify AppleScript file run to customize appearance of DragNDrop
installer folder, including background image setting using supplied
PNG or multi-resolution TIFF file.
See the CPACK_DMG_DS_STORE_SETUP_SCRIPT and
CPACK_DMG_BACKGROUND_IMAGE variables.

The CPack DEB Generator learned to set the optional config
file Source field using a monolithic or per-component variable.
See CPACK_DEBIAN_PACKAGE_SOURCE.

The CPack DEB Generator learned to set Package, Section
and Priority control fields per-component.
See variables CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION and
CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY.

The CPack DragNDrop Generator learned to add
multi-lingual SLAs to a DMG which is presented to the user when they try to
mount the DMG.  See the CPACK_DMG_SLA_LANGUAGES and
CPACK_DMG_SLA_DIR variables for details.

The CPack NSIS Generator learned new variables to
add bitmaps to the installer.
See the CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP
and CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP variables.

The CPack RPM Generator learned to set Name and Group
control fields per-component.
See CPACK_RPM_<component>_PACKAGE_NAME
and CPACK_RPM_<component>_PACKAGE_GROUP.

Other¶

Warnings about deprecated functionality are now enabled by default.
They may be suppressed with -Wno-deprecated or by setting the
CMAKE_WARN_DEPRECATED variable to false.

Deprecated and Removed Features¶

The cmake(1) -E time command now properly passes arguments
with spaces or special characters through to the child process.  This
may break scripts that worked around the bug with their own extra
quoting or escaping.

The Xcode generator was fixed to escape backslashes in
strings consistently with other generators.  Projects that previously
worked around the inconsistecy with an extra level of backslashes
conditioned on the Xcode generator must be updated to remove the
workaround for CMake 3.5 and greater.

Other Changes¶

The Visual Studio 14 2015 generator learned to map the
/debug:fastlink linker flag to the .vcxproj file property.

The FindGTK2 module now configures the GTK2::sigc++ imported
target to enable c++11 on its dependents when using sigc++ 2.5.1 or higher.

The precompiled Windows binary provided on cmake.org is now a
.msi package instead of an installer executable.  One may need
to manually uninstall CMake versions lower than 3.5 before installing
the new package.

Table of Contents

CMake 3.5 Release Notes

New Features

GUI

Command-Line

Commands

Variables

Properties

Modules

Platforms

CPack

Other

Deprecated and Removed Features

Other Changes

Previous topic

CMake 3.6 Release Notes

Next topic

CMake 3.4 Release Notes

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

CMake Release Notes »

CMake 3.5 Release Notes

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CMake 3.6 Release Notes — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMake 3.5 Release Notes" href="3.5.html" />
    <link rel="prev" title="CMake 3.7 Release Notes" href="3.7.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

CMake Release Notes »

CMake 3.6 Release Notes

CMake 3.6 Release Notes¶

Contents

CMake 3.6 Release Notes

New Features

Generators

Commands

Variables

Properties

Modules

Platforms

CTest

CPack

Other

Deprecated and Removed Features

Other Changes

Changes made since CMake 3.5 include the following.

New Features¶

Generators¶

The Ninja generator learned to produce phony targets
of the form sub/dir/all to drive the build of a subdirectory.
This is equivalent to cd sub/dir; make all with
Makefile Generators.

The Ninja generator now includes system header files in build
dependencies to ensure correct re-builds when system packages are updated.

The Visual Studio 14 2015 generator learned to support the
Clang/C2 toolsets, e.g. with the -T v140_clang_3_7 option.
This feature is experimental.

Commands¶

The add_custom_command() and add_custom_target() commands
learned how to use the CROSSCOMPILING_EMULATOR executable
target property.

The install() command learned a new EXCLUDE_FROM_ALL option
to leave installation rules out of the default installation.

The list() command gained a FILTER sub-command to filter
list elements by regular expression.

The string(TIMESTAMP) and file(TIMESTAMP)
commands gained support for the %s placeholder.  This is
the number of seconds since the UNIX Epoch.

Variables¶

A CMAKE_DEPENDS_IN_PROJECT_ONLY variable was introduced
to tell Makefile Generators to limit dependency scanning only
to files in the project source and build trees.

A new CMAKE_HOST_SOLARIS variable was introduced to
indicate when CMake is running on an Oracle Solaris host.

A CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES variable was
added for use by toolchain files to specify system include directories
to be appended to all compiler command lines.

The CMAKE_<LANG>_STANDARD_LIBRARIES variable is now documented.
It is intended for use by toolchain files to specify system libraries to be
added to all linker command lines.

A CMAKE_NINJA_OUTPUT_PATH_PREFIX variable was introduced
to tell the Ninja generator to configure the generated
build.ninja file for use as a subninja.

A CMAKE_TRY_COMPILE_PLATFORM_VARIABLES variable was
added for use by toolchain files to specify platform-specific
variables that must be propagated by the try_compile()
command into test projects.

A CMAKE_TRY_COMPILE_TARGET_TYPE variable was added
to optionally tell the try_compile() command to build
a static library instead of an executable.  This is useful for
cross-compiling toolchains that cannot link binaries without
custom flags or scripts.

Properties¶

A DEPLOYMENT_REMOTE_DIRECTORY target property was introduced
to tell the Visual Studio 9 2008 and
Visual Studio 8 2005 generators to generate the "remote
directory" for WinCE project deployment and debugger settings.

A <LANG>_CLANG_TIDY target property and supporting
CMAKE_<LANG>_CLANG_TIDY variable were introduced to tell the
Makefile Generators and the Ninja generator to run
clang-tidy along with the compiler for C and CXX languages.

A TIMEOUT_AFTER_MATCH test property was introduced to
optionally tell CTest to enforce a secondary timeout after matching
certain output from a test.

A VS_CONFIGURATION_TYPE target property was introduced
to specify a custom project file type for Visual Studio Generators
supporting VS 2010 and above.

A VS_STARTUP_PROJECT directory property was introduced
to specify for Visual Studio Generators the default startup
project for generated solutions (.sln files).

Modules¶

The CMakePushCheckState module now pushes/pops/resets the variable
CMAKE_EXTRA_INCLUDE_FILES used in CheckTypeSize.

The ExternalProject module leared the GIT_SHALLOW 1
option to perform a shallow clone of a Git repository.

The ExternalProject module learned to initialize Git submodules
recursively and also to initialize new submodules on updates.  Use the
GIT_SUBMODULES option to restrict which submodules are initialized and
updated.

The ExternalProject module leared the DOWNLOAD_NO_EXTRACT 1
argument to skip extracting the file that is downloaded (e.g., for
self-extracting shell installers or .msi files).

The ExternalProject module now uses TLS_VERIFY when fetching
from git repositories.

The FindBLAS and FindLAPACK modules learned to
support OpenBLAS.

The FindCUDA module learned to find the cublas_device library.

The FindGTest module gtest_add_tests function now causes
CMake to automatically re-run when test sources change so that they
can be re-scanned.

The FindLTTngUST module was introduced to find the LTTng-UST
library.

The FindPkgConfig module learned to optionally create imported
targets for the libraries it has found.

The FindProtobuf module learned to provide a Protobuf_VERSION
variable and check the version number requested in a find_package()
call.

The InstallRequiredSystemLibraries module learned a new
CMAKE_INSTALL_UCRT_LIBRARIES option to enable app-local deployment
of the Windows Universal CRT libraries with Visual Studio 2015.

Platforms¶

The Clang compiler is now supported on CYGWIN.

Support was added for the Bruce C Compiler with compiler id Bruce.

CTest¶

The ctest_update() command now looks at the
CTEST_GIT_INIT_SUBMODULES variable to determine whether
submodules should be updated or not before updating.

The ctest_update() command will now synchronize submodules on an
update. Updates which add submodules or change a submodule's URL will now be
pulled properly.

CPack¶

The CPack DEB Generator learned how to handle $ORIGIN
in CMAKE_INSTALL_RPATH when CPACK_DEBIAN_PACKAGE_SHLIBDEPS
is used for dependency auto detection.

The CPack DEB Generator learned how to generate
DEBIAN/shlibs control file when package contains shared libraries.

The CPack DEB Generator learned how to generate
DEBIAN/postinst and DEBIAN/postrm files if the package installs
libraries in ldconfig-controlled locations (e.g. /lib/, /usr/lib/).

The CPack DEB Generator learned how to generate dependencies
between Debian packages if multi-component setup is used and
CPACK_COMPONENT_<compName>_DEPENDS variables are set.
For backward compatibility this feature is disabled by default.
See CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS.

The CPack DEB Generator learned how to set custom package
file names including how to generate properly-named Debian packages:

<PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb

For backward compatibility this feature is disabled by default. See
CPACK_DEBIAN_FILE_NAME and
CPACK_DEBIAN_<COMPONENT>_FILE_NAME.

The CPack DEB Generator learned how to set the package
release number (DebianRevisionNumber in package file name when
used in combination with DEB-DEFAULT value set by
CPACK_DEBIAN_FILE_NAME).
See CPACK_DEBIAN_PACKAGE_RELEASE.

The CPack DEB Generator learned how to set the package
architecture per-component.
See CPACK_DEBIAN_<COMPONENT>_PACKAGE_ARCHITECTURE.

The CPack DragNDrop Generator learned a new option to skip the
/Applications symlink.
See the CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK variable.

The CPackIFW module gained a new
cpack_ifw_update_repository() command to update a QtIFW-specific
repository from a remote repository.

The CPack RPM Generator learned how to set RPM dist tag
as part of RPM Release: tag when enabled (mandatory on some Linux
distributions for e.g. on Fedora).
See CPACK_RPM_PACKAGE_RELEASE_DIST.

The CPack RPM Generator learned how to set default values
for owning user/group and file/directory permissions of package content.
See CPACK_RPM_DEFAULT_USER, CPACK_RPM_DEFAULT_GROUP,
CPACK_RPM_DEFAULT_FILE_PERMISSIONS,
CPACK_RPM_DEFAULT_DIR_PERMISSIONS and their per component
counterparts.

The CPack RPM Generator learned how to set user defined
package file names, how to specify that rpmbuild should decide on file
name format as well as handling of multiple rpm packages generated by a
single user defined spec file.
See CPACK_RPM_PACKAGE_NAME and
CPACK_RPM_<component>_PACKAGE_NAME.

The CPack RPM Generator learned how to correctly handle symlinks
that are pointing outside generated packages.

Other¶

The Compile Features functionality
is now aware of features supported by Intel C++ compilers versions 12.1
through 16.0 on UNIX platforms.

Deprecated and Removed Features¶

The CMakeForceCompiler module and its macros are now deprecated.
See module documentation for an explanation.

The find_library(), find_path(), and find_file()
commands no longer search in installation prefixes derived from the PATH
environment variable on non-Windows platforms.  This behavior was added in
CMake 3.3 to support Windows hosts but has proven problematic on UNIX hosts.
Users that keep some <prefix>/bin directories in the PATH just for
their tools do not necessarily want any supporting <prefix>/lib
directories searched.  One may set the CMAKE_PREFIX_PATH environment
variable with a semicolon-separated list of prefixes that are
to be searched.

The Visual Studio 7 .NET 2003 generator is now
deprecated and will be removed in a future version of CMake.

The Visual Studio 7 generator (for VS .NET 2002) has been
removed.  It had been deprecated since CMake 3.3.

The Visual Studio 6 generator has been removed.
It had been deprecated since CMake 3.3.

Other Changes¶

The precompiled OS X binary provided on cmake.org now requires
OS X 10.7 or newer.

On Linux and FreeBSD platforms, when building CMake itself from source and
not using a system-provided libcurl, OpenSSL is now used by default if it is
found on the system.  This enables SSL/TLS support for commands supporting
network communication via https, such as file(DOWNLOAD),
file(UPLOAD), and ctest_submit().

The cmake(1) --build command-line tool now rejects multiple
--target options with an error instead of silently ignoring all but the
last one.

AUTOMOC now diagnoses name collisions when multiple source
files in different directories use #include <moc_foo.cpp> with the
same name (because the generated moc_foo.cpp files would collide).

The FindBISON module BISON_TARGET macro now supports
special characters by passing the VERBATIM option to internal
add_custom_command() calls.  This may break clients that
added escaping manually to work around the bug.

The FindFLEX module FLEX_TARGET macro now supports
special characters by passing the VERBATIM option to internal
add_custom_command() calls.  This may break clients that
added escaping manually to work around the bug.

The FindProtobuf module input and output variables were all renamed
from PROTOBUF_ to Protobuf_ for consistency with other find modules.
Input variables of the old case will be honored if provided, and output
variables of the old case are always provided.

The CPack RPM Generator now supports upper cased component
names in per component CPackRPM specific variables.
E.g. component named foo now expects component specific
variable to be CPACK_RPM_FOO_PACKAGE_NAME while before
it expected CPACK_RPM_foo_PACKAGE_NAME.
Upper cased component name part in variables is compatible
with convention used for other CPack variables.
For back compatibility old format of variables is still valid
and preferred if both versions of variable are set, but the
preferred future use is upper cased component names in variables.
New variables that will be added to CPackRPM in later versions
will only support upper cased component variable format.

The CPack NSIS generator's configuration file template was fixed to
quote the path to the uninstaller tool used by the
CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL option.
This avoids depending on an insecure Windows feature to run an
uninstaller tool with a space in the path.

Table of Contents

CMake 3.6 Release Notes

New Features

Generators

Commands

Variables

Properties

Modules

Platforms

CTest

CPack

Other

Deprecated and Removed Features

Other Changes

Previous topic

CMake 3.7 Release Notes

Next topic

CMake 3.5 Release Notes

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

CMake Release Notes »

CMake 3.6 Release Notes

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.

repo_name: lazytadpole/codenamesilverfish

license: mit


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CMake 3.7 Release Notes — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMake 3.6 Release Notes" href="3.6.html" />
    <link rel="prev" title="CMake 3.8 Release Notes" href="3.8.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

CMake Release Notes »

CMake 3.7 Release Notes

CMake 3.7 Release Notes¶

Contents

CMake 3.7 Release Notes

New Features

Platforms

Generators

Commands

Variables

Properties

Modules

CTest

CPack

Other

Deprecated and Removed Features

Other Changes

Changes made since CMake 3.6 include the following.

New Features¶

Platforms¶

CMake now supports Cross Compiling for Android with simple
toolchain files.

The Clang compiler is now supported on AIX.

Generators¶

The Ninja generator learned to conditionally support
Fortran when using a ninja tool that has the necessary features.
See generator documentation for details.

The Ninja generator learned to produce phony targets
of the form sub/dir/{test,install,package} to drive the build
of a subdirectory installation, test or packaging target.
This is equivalent to cd sub/dir; make {test,install,package}
with Makefile Generators.

The Visual Studio 15 2017 generator was added.  This is
experimental and based on "Visual Studio 2017 RC" because this version
of VS has not been released.

Visual Studio Generators for VS 2010 and above learned to
place .natvis source files into VS project files properly.

The Xcode generator's rudimentary Swift language support
learned to honor a new CMAKE_Swift_LANGUAGE_VERSION variable
to tell Xcode what version of Swift is used by the source.

The CodeLite generator gained a new
CMAKE_CODELITE_USE_TARGETS option
to change project creation from projects to targets.

Commands¶

The add_custom_command() command gained a new DEPFILE
option that works with the Ninja generator to provide
implicit dependency information to the build tool.

The cmake_parse_arguments() command gained a new PARSE_ARGV
mode to read arguments directly from ARGC and ARGV#
variables inside a function() body.

The export() command gained an ANDROID_MK option
to generate Android.mk files referencing CMake-built
libraries as prebuilts for the Android NDK build system.

The file(DOWNLOAD) and file(UPLOAD) commands gained
HTTPHEADER <HTTP-header> and USERPWD <username>:<password> options.

The find_library() and find_package() commands learned
to search in lib32/ directories when the build targets a 32-bit
architecture.  See the FIND_LIBRARY_USE_LIB32_PATHS global
property.

The find_package() command gained the possibility of
sorting compatible libraries by NAME or by NATURAL sorting by
setting the two new variables CMAKE_FIND_PACKAGE_SORT_ORDER
and CMAKE_FIND_PACKAGE_SORT_DIRECTION.

The if() command gained new boolean comparison operations
LESS_EQUAL, GREATER_EQUAL, STRLESS_EQUAL, STRGREATER_EQUAL,
VERSION_LESS_EQUAL, and VERSION_GREATER_EQUAL.

The install() command gained an EXPORT_ANDROID_MK
subcommand to install Android.mk files referencing installed
libraries as prebuilts for the Android NDK build system.

The string(TIMESTAMP) and file(TIMESTAMP)
commands gained support for the %a and %b placeholders.
These are the abbreviated weekday and month names.

The try_compile() command source file signature now honors
configuration-specific flags (e.g. CMAKE_<LANG>_FLAGS_DEBUG)
in the generated test project.  Previously only the default such flags
for the current toolchain were used.  See policy CMP0066.

Variables¶

Variable CMAKE_FIND_PACKAGE_SORT_ORDER was added to control
the sorting mode of the find_package() command.

Variable CMAKE_FIND_PACKAGE_SORT_DIRECTION was added to control
the sorting direction the find_package() command.

Toolchain files may now set a
CMAKE_<LANG>_FLAGS_INIT variable to initialize the
CMAKE_<LANG>_FLAGS cache entry the first time a language is
enabled in a build tree.

Toolchain files may now set
CMAKE_EXE_LINKER_FLAGS_INIT,
CMAKE_SHARED_LINKER_FLAGS_INIT, and
CMAKE_MODULE_LINKER_FLAGS_INIT variables to initialize the
CMAKE_EXE_LINKER_FLAGS,
CMAKE_SHARED_LINKER_FLAGS, and
CMAKE_MODULE_LINKER_FLAGS cache entries the first time
a language is enabled in a build tree.

Properties¶

On Apple platforms the BUNDLE_EXTENSION target property
now also applies to Frameworks and App Bundles.

A BINARY_DIR directory property was added to get the
absolute path to the binary directory corresponding to the source
directory on which the property is read.

A BUILDSYSTEM_TARGETS directory property was added to
get the list of logical buildsystem target names added by the
project in a directory.

A LINK_WHAT_YOU_USE target property and supporting
CMAKE_LINK_WHAT_YOU_USE variable were introduced
to detect (on UNIX) shared libraries that are linked but not
needed by running ldd -r -u.

A SOURCE_DIR directory property was added to get the
absolute path to the source directory associated with a directory.

A SUBDIRECTORIES directory property was added to
get the list of subdirectories added by a project in a directory.

A VS_SDK_REFERENCES target property was added to tell
Visual Studio Generators to reference the named SDKs.

A VS_TOOL_OVERRIDE source file property was created to tell
Visual Studio Generators what tool to use for a source file.

The WINDOWS_EXPORT_ALL_SYMBOLS target property now applies
to executable targets with the ENABLE_EXPORTS property set.

A XCODE_FILE_ATTRIBUTES source file property was
added to tell the Xcode generator to generate
custom content in the Xcode project attributes for the file.

Modules¶

An AndroidTestUtilities module was added to manage transfer
of test data to an Android device.

The CheckFortranSourceCompiles module macro
CHECK_Fortran_SOURCE_COMPILES gained a SRC_EXT option
to specify a custom test Fortran source file extension.

The ExternalProject module gained HTTP_USERNAME and
HTTP_PASSWORD options to set http download credentials.

The ExternalProject module gained a HTTP_HEADER
option to add http download headers.

The FindBISON module BISON_TARGET macro learned a new
REPORT_FILE option to specify the bison --report-file= option.

The FindBZip2 module now provides imported targets.

A FindICU module was introduced to find the International
Components for Unicode (ICU) libraries and programs.

The FindMatlab module learned to find the SIMULINK and MAT
components.

The FindMatlab module matlab_add_mex() command learned
to add executables and modules.

The FindMatlab module matlab_add_unit_test() command
learned to support inline Matlab test code.

The FindOpenCL module now provides imported targets.

The FindOpenMP module learned to detect the OpenMP
version (specification date) from the compiler.

A FindVulkan module was added.

The GenerateExportHeader module learned a new
CUSTOM_CONTENT_FROM_VARIABLE option to specify a variable
containing custom content for inclusion in the generated header.

The GNUInstallDirs module gained a new
GNUInstallDirs_get_absolute_install_dir() command.

The UseJava module gained APIs to "export" jar targets
for use by external CMake projects.  See the install_jar_exports
and export_jars functions.

CTest¶

CTest now supports test fixtures through the new FIXTURES_SETUP,
FIXTURES_CLEANUP and FIXTURES_REQUIRED test
properties. When using regular expressions or --rerun-failed to limit
the tests to be run, a fixture's setup and cleanup tests will automatically
be added to the execution set if any test requires that fixture.

The ctest_configure(), ctest_build(),
ctest_test(), ctest_coverage(), and ctest_upload()
commands gained a new CAPTURE_CMAKE_ERROR option to capture any errors
that occur as the commands run into a variable and avoid affecting the return
code of the ctest(1) process.

CPack¶

CPack gained a CPack productbuild Generator on OS X.

CPack gained a new CPACK_PACKAGE_CHECKSUM variable to
enable generation of a checksum file for each package file.

The CPack DEB Generator learned to support long file names
when archive format is set to GNU tar.
See CPACK_DEBIAN_ARCHIVE_TYPE

The CPackIFW module gained a new
cpack_ifw_add_package_resources() command to include additional
resources in the installer binary.

The CPackIFW module cpack_ifw_configure_component() and
cpack_ifw_configure_component_group() commands gained a new
USER_INTERFACES option to add a list of additional pages to the IFW
installer.

The CPack RPM Generator learned to generate debuginfo
packages on demand. See CPACK_RPM_DEBUGINFO_PACKAGE
and its per component version.

The CPack RPM Generator learned to generate source rpm
(SRPM) packages on demand. See CPACK_RPM_PACKAGE_SOURCES,
CPACK_RPM_SOURCE_PKG_BUILD_PARAMS and
CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX.

The CPack NSIS Generator now supports
CPACK_NSIS_<compName>_INSTALL_DIRECTORY.
This can be used to set component specific installation directories.

The CPack WIX Generator now supports
CPACK_WIX_SKIP_PROGRAM_FOLDER to allow specification
of a custom absolute installation prefix outside
of the ProgramFiles folders.

The CPack WIX Generator now supports
CPACK_COMPONENT_<compName>_DISABLED.
This can be used to deselect a component from being installed by default.

The CPack WIX Generator now supports
CPACK_WIX_PATCH_FILE fragments for Feature elements.

The CPack WIX Generator now supports
CPACK_WIX_ROOT_FEATURE_TITLE and
CPACK_WIX_ROOT_FEATURE_DESCRIPTION to allow the specification
of a custom title and description for the root feature element.

Other¶

cmake(1) gained a -E capabilities option to provide a
machine-readable (JSON) description of the capabilities of the
cmake tool (available generators, etc.).

A new cmake-server(7) mode was added to provide semantic
information about a CMake-generated buildsystem to clients through
a JSON protocol.  Currently all protocols are experimental and subject
to change.

The cmake(1) command learned a --trace-source=<file> option.

ccmake(1) learned to support vim-like navigation bindings.

cmake-gui(1) gained a button to open the generated project file
for Visual Studio Generators and the Xcode generator.

Deprecated and Removed Features¶

We no longer provide Linux i386 binaries for download from cmake.org
for new versions of CMake.

Vim support files cmake-indent.vim, cmake-syntax.vim, and
cmake-help.vim have been removed in favor of the files now provided
from the vim-cmake-syntax project.

Support for building CMake itself with some compilers was dropped:

Visual Studio 7.1 and 2005 -- superseded by VS 2008 and above

MinGW.org mingw32 -- superseded by MSYS2 mingw32 and mingw64

CMake still supports generating build systems for other projects using
these compilers.

Other Changes¶

The Fortran dependency scanner learned to support the syntax of
Fortran Submodules.

Vim support files indent/cmake.vim and syntax/cmake.vim
from the vim-cmake-syntax project are now distributed with CMake.

Table of Contents

CMake 3.7 Release Notes

New Features

Platforms

Generators

Commands

Variables

Properties

Modules

CTest

CPack

Other

Deprecated and Removed Features

Other Changes

Previous topic

CMake 3.8 Release Notes

Next topic

CMake 3.6 Release Notes

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

CMake Release Notes »

CMake 3.7 Release Notes

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CMake 3.8 Release Notes — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMake 3.7 Release Notes" href="3.7.html" />
    <link rel="prev" title="CMake 3.9 Release Notes" href="3.9.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

CMake Release Notes »

CMake 3.8 Release Notes

CMake 3.8 Release Notes¶

Contents

CMake 3.8 Release Notes

New Features

Languages

C#

CUDA

C & C++

Platforms

Generators

Commands

Variables

Properties

Modules

CTest

CPack

Other

Deprecated and Removed Features

Other Changes

Changes made since CMake 3.7 include the following.

New Features¶

Languages¶

C#¶

CMake learned to support CSharp (C#) as a first-class language that
can be enabled via the project() and enable_language()
commands.  It is currently supported by the Visual Studio Generators
for VS 2010 and above.

C# assemblies and programs can be added just like common C++ targets using
the add_library() and add_executable() commands.
References between C# targets in the same source tree may be specified by
target_link_libraries() like for C++.  References to system or
3rd-party assemblies may be specified by the target properties
VS_DOTNET_REFERENCE_<refname> and
VS_DOTNET_REFERENCES.

More fine tuning of C# targets may be done using target and source
file properties.  Specifically the target properties related to
Visual Studio (VS_*) are worth a look (for setting toolset
versions, root namespaces, assembly icons, ...).

CUDA¶

CMake learned to support CUDA as a first-class language that can be
enabled via the project() and enable_language() commands.

CUDA is currently supported by the Makefile Generators
and the Ninja generator on Linux, macOS, and Windows.
Support for the Visual Studio IDE is under development but not
included in this release.

The NVIDIA CUDA Toolkit compiler (nvcc) is supported.

C & C++¶

The Compile Features functionality
now offers meta-features that request compiler modes for specific language
standard levels (e.g. cxx_std_11).  See
CMAKE_C_KNOWN_FEATURES and CMAKE_CXX_KNOWN_FEATURES.

The Compile Features functionality
is now aware of C++ 17.  No specific features are yet enumerated besides
the cxx_std_17 meta-feature.

The Compile Features functionality
is now aware of the availability of C99 in gcc since version 3.4.

Platforms¶

A new minimal platform file for Fuchsia was added.

Generators¶

The CodeBlocks extra generator may now be used to
generate with NMake Makefiles JOM.

The Visual Studio Generators for VS 2013 and above learned to
support a host=x64 option in the CMAKE_GENERATOR_TOOLSET
value (e.g.  via the cmake(1) -T option) to request use
of a VS 64-bit toolchain on 64-bit hosts.

The Visual Studio Generators learned to treat files passed to
target_link_libraries() whose names end in .targets
as MSBuild "targets" files to be imported into generated project files.

Commands¶

The add_custom_command() and add_custom_target() commands
learned the option COMMAND_EXPAND_LISTS which causes lists in the
COMMAND argument to be expanded, including lists created by generator
expressions.

The execute_process() command gained an ENCODING option to
specify on Windows which encoding is used for output from child process.

The math(EXPR) command gained support for unary
+ and - operators.

The source_group() command gained TREE and PREFIX
options to add groups following source tree directory structure.

The string(TIMESTAMP) command learned to treat %%
as a way to encode plain %.

The string(TIMESTAMP) command will now honor the
SOURCE_DATE_EPOCH environment variable and use its value
instead of the current time.

The try_compile() command source file signature gained new options
to specify the language standard to use in the generated test project.

The try_compile() command source file signature now honors
language standard variables like CMAKE_CXX_STANDARD.
See policy CMP0067.

Variables¶

A CMAKE_CODELITE_USE_TARGETS variable was added to tell the
CodeLite extra generator to change the generated project
to have target-centric organization.
The build, rebuild, and clean operations within CodeLite
then work on a selected target rather than the whole workspace.
(Note that the Ninja clean operation on a target
includes its dependencies, though.)

The CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS variable was added to
tell the Sublime Text 2 extra generator to place specified
environment variables in the generated .sublime-project.

The CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE variable was added
to tell the Sublime Text 2 extra generator whether to exclude
the build tree from the .sublime-project when it is inside the source
tree.

A CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD variable was
added to tell Visual Studio Generators for VS 2010 and above
to include the PACKAGE target in the default build, similar to
the existing CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD
variable for the INSTALL target.

Properties¶

A BUILD_RPATH target property and corresponding
CMAKE_BUILD_RPATH variable were added to support custom
RPATH locations to be added to binaries in the build tree.

The COMPILE_FLAGS source file property learned to support
generator expressions.

The FRAMEWORK target property may now also be applied to
static libraries on Apple targets.  It will result in a proper
Framework but with a static library inside.

Imported Interface Libraries learned new
IMPORTED_LIBNAME and IMPORTED_LIBNAME_<CONFIG>
target properties to specify a link library name since interface libraries
do not build their own library files.

A <LANG>_CPPLINT target property and supporting
CMAKE_<LANG>_CPPLINT variable were introduced to tell
the Makefile Generators and the Ninja generator to
run the cpplint style checker along with the compiler for C and
CXX languages.

A MANUALLY_ADDED_DEPENDENCIES target property has been added.
It provides a read-only list of dependencies that have been added with
the add_dependencies() command.

The MAP_IMPORTED_CONFIG_<CONFIG> target property learned
to interpret empty list elements as referring to the configuration-less
imported location specified by IMPORTED_LOCATION.

The NO_SYSTEM_FROM_IMPORTED target property is now supported
on Imported Interface Libraries.

New source file properties SKIP_AUTOMOC, SKIP_AUTOUIC,
SKIP_AUTORCC, and SKIP_AUTOGEN were added to allow
source files to be excluded from processing by AUTOMOC,
AUTOUIC, and AUTORCC target properties.

A VS_COPY_TO_OUT_DIR source file property was added to
tell Visual Studio Generators for VS 2010 and above whether
or not a file should e copied to the output directory.

A VS_DEBUGGER_WORKING_DIRECTORY target property was added
to tell Visual Studio Generators for VS 2010 and above what
debugger working directory should be set for the target.

A VS_DOTNET_REFERENCES_COPY_LOCAL target property was added
to specify whether to copy referenced assemblies to the output directory.

A VS_DOTNET_REFERENCE_<refname> target property was added
to tell Visual Studio Generators for VS 2010 and above to add
a .NET reference with a given hint path.

A VS_INCLUDE_IN_VSIX source file property was added to
tell Visual Studio Generators for VS 2010 and above whether
to include the file in a Visual Studio extension package.

A VS_RESOURCE_GENERATOR source file property was added to
give Visual Studio Generators for VS 2010 and above a setting
for the resource generator (C# only).

A VS_USER_PROPS target property was added to tell
Visual Studio Generators for VS 2010 and above to use a
custom MSBuild user .props file.

A XCODE_EMIT_EFFECTIVE_PLATFORM_NAME global property was
added to tell the Xcode generator whether to emit the
EFFECTIVE_PLATFORM_NAME variable.  This is useful when building
with multiple SDKs like macosx and iphoneos in parallel.

New XCODE_PRODUCT_TYPE and XCODE_EXPLICIT_FILE_TYPE
target properties were created to tell the Xcode generator
to use custom values of the corresponding attributes for a target in the
generated Xcode project.

Modules¶

A CSharpUtilities module was added to aid parameterization of
Visual Studio C# targets.  It provides functions to allow automated
setting of source file properties to support Windows Forms, WPF/XAML or
other technologies as needed.

The ExternalData module learned to support multiple
content links for one data file using different hashes, e.g.
img.png.sha256 and img.png.sha1.  This allows objects
to be fetched from sources indexed by different hash algorithms.

The ExternalProject module gained the GIT_PROGRESS option to
force Git to show progress when cloning repositories.

The ExternalProject module gained a GIT_CONFIG option
to pass --config options to Git when cloning repositories.

The FeatureSummary module feature_summary() command now
accepts a new QUIET_ON_EMPTY option that suppresses the output when
the list of packages that belong to the selected category is empty.

The FeatureSummary module add_feature_info() command
now accepts lists of dependencies for deciding whether a feature is enabled
or not.

The package types accepted by the FeatureSummary module can now
be tweaked by changing the FeatureSummary_PKG_TYPES,
FeatureSummary_REQUIRED_PKG_TYPES and
FeatureSummary_DEFAULT_PKG_TYPE global properties.

The FindOpenGL module now provides imported targets
OpenGL::GL and OpenGL::GLU when the libraries are found.

The UseSWIG module gained a swig_add_library command
to give more flexibility over the old swig_add_module command.

The UseSWIG module swig_add_source_to_module command
learned a new SWIG_OUTFILE_DIR option to control the output
file location (swig -o).

The WriteCompilerDetectionHeader module gained the
ALLOW_UNKNOWN_COMPILERS and ALLOW_UNKNOWN_COMPILER_VERSIONS options
that allow creation of headers that will work also with unknown or old
compilers by simply assuming they do not support any of the requested
features.

CTest¶

The ctest_memcheck() command gained a DEFECT_COUNT <var>
option to capture the number of memory defects detected.

The ctest_memcheck() command learned to read the location of
suppressions files for sanitizers from the
CTEST_MEMORYCHECK_SUPPRESSIONS_FILE variable.

The ctest_memcheck() command learned to support LeakSanitizer
independently from AddressSanitizer.

The ctest_update() command CDASH_UPLOAD signature was taught
to honor the RETRY_COUNT, RETRY_DELAY, and QUIET options.

CPack¶

The CPackIFWConfigureFile module was added to define a new
cpack_ifw_configure_file() command to configure file templates
prepared in QtIFW/SDK/Creator style.

The CPackIFW module cpack_ifw_configure_component() and
cpack_ifw_configure_component_group() commands gained a new
DEFAULT, VIRTUAL, FORCED_INSTALLATION, REQUIRES_ADMIN_RIGHTS,
DISPLAY_NAME, UPDATE_TEXT, DESCRIPTION, RELEASE_DATE,
AUTO_DEPEND_ON and TRANSLATIONS options to more specific
configuration.

The CPackIFW module cpack_ifw_configure_component()
command gained a new DEPENDENCIES alias for DEPENDS option.

The CPackIFW module cpack_ifw_configure_component_group()
command gained a new DEPENDS option. The DEPENDENCIES alias also
added.

The CPackIFW module cpack_ifw_configure_component() and
cpack_ifw_configure_component_group() commands PRIORITY
option now is deprecated and will be removed in a future version of CMake.
Please use new SORTING_PRIORITY option instead.

The CPack IFW Generator gained new
CPACK_IFW_PACKAGE_WATERMARK,
CPACK_IFW_PACKAGE_BANNER,
CPACK_IFW_PACKAGE_BACKGROUND,
CPACK_IFW_PACKAGE_WIZARD_STYLE,
CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH,
CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT, and
CPACK_IFW_PACKAGE_TITLE_COLOR
variables to customize a QtIFW installer look.

The CPack productbuild Generator gained options to sign packages.
See the variables CPACK_PRODUCTBUILD_IDENTITY_NAME,
CPACK_PRODUCTBUILD_KEYCHAIN_PATH,
CPACK_PKGBUILD_IDENTITY_NAME, and
CPACK_PKGBUILD_KEYCHAIN_PATH.

The CPack RPM Generator learned to omit tags that are not
supported by provided rpmbuild tool. If unsupported tags are set they
are ignored and a developer warning is printed out.

The CPack RPM Generator learned to generate main component
package which forces generation of a rpm for defined component without
component suffix in filename and package name.
See CPACK_RPM_MAIN_COMPONENT variable.

The CPack RPM Generator learned to generate a single
debuginfo package on demand even if components packaging is used.
See CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE variable.

The CPack RPM Generator learned to support
multiple directives per file when using
CPACK_RPM_USER_FILELIST variable.

Other¶

CMake functionality using cryptographic hashes now supports SHA-3 algorithms.

A new generator expression $<IF:cond,true-value,false-value> was added.
It resolves to the true-value if the condition is 1 and resolves to
the false-value if the condition is 0.

Deprecated and Removed Features¶

The FeatureSummary module commands set_package_info(),
set_feature_info(), print_enabled_features(), and
print_disabled_features() are now deprecated.

The UseSWIG module swig_add_module command is now
deprecated in favor of swig_add_library.

Other Changes¶

If a command specified by the <LANG>_CLANG_TIDY target property
returns non-zero at build time this is now treated as an error instead of
silently ignored.

The ctest_memcheck() command no longer automatically adds
leak_check=1 to the options used by AddressSanitizer. The default
behavior of AddressSanitizer is to run LeakSanitizer to check leaks
unless leak_check=0.

The ctest_memcheck() command was fixed to correctly append extra
sanitizer options read from the
CTEST_MEMORYCHECK_SANITIZER_OPTIONS variable to the environment
variables used internally by the sanitizers.

The FeatureSummary module set_package_properties()
command no longer forces the package type to OPTIONAL when the type
is not explicitly set.

The Compile Features functionality
is now aware of features supported by Intel C++ compilers versions 12.1
through 17.0 on UNIX and Windows platforms.

Calls to the FindPkgConfig module pkg_check_modules()
command following a successful call learned to re-evaluate the cached values
for a given prefix after changes to the parameters to the command for that
prefix.

When using AUTOMOC or AUTOUIC, generated
moc_*, *.moc and ui_* are placed in the
<CMAKE_CURRENT_BINARY_DIR>/<TARGETNAME>_autogen/include directory which
is automatically added to the target's INCLUDE_DIRECTORIES.
It is therefore not necessary anymore to have
CMAKE_CURRENT_BINARY_DIR in the target's
INCLUDE_DIRECTORIES.

The Sublime Text 2 generator no longer runs the native
build command (e.g. ninja or make) with verbose build output
enabled.

The try_compile() command source file signature now
honors the CMAKE_WARN_DEPRECATED variable value
in the generated test project.

The Visual Studio Generators for VS 2010 and above now place
per-source file flags after target-wide flags when they are classified
as raw flags with no project file setting (AdditionalOptions).
This behavior is more consistent with the ordering of flags produced
by other generators, and allows flags on more-specific properties
(per-source) to override those on more general ones (per-target).

The precompiled Windows binary MSI package provided on cmake.org now
records the installation directory in the Windows Registry under the key
HKLM\Software\Kitware\CMake with a value named InstallDir.

Table of Contents

CMake 3.8 Release Notes

New Features

Languages

C#

CUDA

C & C++

Platforms

Generators

Commands

Variables

Properties

Modules

CTest

CPack

Other

Deprecated and Removed Features

Other Changes

Previous topic

CMake 3.9 Release Notes

Next topic

CMake 3.7 Release Notes

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

CMake Release Notes »

CMake 3.8 Release Notes

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CMake 3.9 Release Notes — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMake 3.8 Release Notes" href="3.8.html" />
    <link rel="prev" title="CMake 3.10 Release Notes" href="3.10.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

CMake Release Notes »

CMake 3.9 Release Notes

CMake 3.9 Release Notes¶

Contents

CMake 3.9 Release Notes

New Features

Languages

Generators

Commands

Variables

Properties

Modules

CTest

CPack

Other

Deprecated and Removed Features

Other Changes

Updates

3.9.1

3.9.2

Changes made since CMake 3.8 include the following.

New Features¶

Languages¶

CUDA is now supported by the Visual Studio Generators
for VS 2010 and above.  This complements the existing support by the
Makefile Generators and the Ninja generator.
CUDA 8.0.61 or higher is recommended due to known bugs in the VS
integration by earlier versions.

CMake is now aware of the C++ standards and
C standards and their associated meta-features for
the following compiler ids: Cray,
PGI, and XL.

Generators¶

Visual Studio Generators for VS 2010 and above learned to support
the ASM_NASM language when nasm is installed.

The Xcode generator learned to create Xcode schema files.
This is an experimental feature and can be activated by setting the
CMAKE_XCODE_GENERATE_SCHEME variable to a TRUE value.

Commands¶

The add_library() command IMPORTED option learned to support
Object Libraries.

The find_library() command learned to search libx32 paths
when the build targets the x32 ABI.  See the
FIND_LIBRARY_USE_LIBX32_PATHS global property.

The include_external_msproject() command learned to use
the MAP_IMPORTED_CONFIG_<CONFIG> target property
to map current configurations to the external configurations.

The install(TARGETS) command learned a new OBJECTS option to
specify where to install Object Libraries.

The install(EXPORT) command learned how to export
Object Libraries.

The project() command learned an optional DESCRIPTION
parameter to set the PROJECT_DESCRIPTION variable.

The separate_arguments() command gained a NATIVE_COMMAND mode
that performs argument separation depending on the host operating system.

Variables¶

A CMAKE_ANDROID_NDK_DEPRECATED_HEADERS variable was added
for use when Cross Compiling for Android with the NDK to request
use of the deprecated headers even when unified headers are available.
The default is now to use unified headers if available.

A CMAKE_AUTOMOC_DEPEND_FILTERS variable was introduced to
allow CMAKE_AUTOMOC to extract additional dependency file names
for moc from the contents of source files.

A CMAKE_AUTOUIC_SEARCH_PATHS variable was introduced to
allow CMAKE_AUTOUIC to search for foo.ui in more
places than the vicinity of the file including ui_foo.h.

A CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX variable was added to
tell the find_library() command to search in a lib<suffix>
directory before each lib directory that would normally be searched.

A CMAKE_INTERPROCEDURAL_OPTIMIZATION variable was added to
initialize the INTERPROCEDURAL_OPTIMIZATION property on all
targets.

A CMAKE_<LANG>_COMPILER_AR variable was added to hold
the path to the GCC/Clang wrapper of ar.

A CMAKE_<LANG>_COMPILER_RANLIB variable was added to hold
the path to the GCC/Clang wrapper of ranlib.

The CMAKE_SYSROOT_COMPILE and CMAKE_SYSROOT_LINK
variables were added to use separate sysroots for compiling and linking.

Properties¶

A new AUTOGEN_BUILD_DIR target property was introduced to set
a custom output directory for AUTOMOC, AUTOUIC,
and AUTORCC.

A new AUTOMOC_DEPEND_FILTERS target property was introduced to
allow AUTOMOC to extract additional dependency file names
for moc from the contents of source files.

A new AUTOUIC_SEARCH_PATHS target property was introduced to
allow AUTOUIC to search for foo.ui in more
places than the vicinity of the file including ui_foo.h.

Global properties AUTOGEN_SOURCE_GROUP,
AUTOMOC_SOURCE_GROUP and
AUTORCC_SOURCE_GROUP were
introduced to allow files generated by AUTOMOC or
AUTORCC to be placed in a source_group().

A BUILD_WITH_INSTALL_NAME_DIR target property and corresponding
CMAKE_BUILD_WITH_INSTALL_NAME_DIR variable were added to
control whether to use the INSTALL_NAME_DIR target property
value for binaries in the build tree.  This is for macOS install_name
as BUILD_WITH_INSTALL_RPATH is for RPATH.

A CUDA_PTX_COMPILATION target property was added to
Object Libraries to support compiling to .ptx files
instead of host object files.

A GENERATOR_IS_MULTI_CONFIG global property was
added to determine whether the current generator is a multi-configuration
generator (such as Visual Studio Generators or Xcode).

The INTERPROCEDURAL_OPTIMIZATION target property is now enforced
when enabled.  CMake will add IPO flags unconditionally or produce an error
if it does not know the flags for the current compiler.  The project is now
responsible to use the CheckIPOSupported module to check for IPO
support before enabling the target property.  See policy CMP0069.

The WINDOWS_EXPORT_ALL_SYMBOLS target property may now
be used in combination with explicit .def files in order to
export all symbols from the object files within a target plus
an explicit list of symbols that the linker finds in dependencies
(e.g. msvcrt.lib).

Modules¶

A CheckIPOSupported module was added to help projects
check whether interprocedural optimization (IPO) is supported by
the current toolchain and CMake version.

The CMakeFindDependencyMacro module find_dependency macro
now forwards all arguments to the underlying find_package()
call.  Existing uses will continue to function as before, but callers can
now access the full suite of arguments that find_package() accepts.

The FeatureSummary module feature_summary() command now
accepts the new DEFAULT_DESCRIPTION option that will print the default
title for the selected package type.

The FeatureSummary module gained a new
FeatureSummary_<TYPE>_DESCRIPTION variable that can be defined
for each <TYPE> to replace the type name with the specified string
whenever the package type is used in an output string by the module.

The FindDoxygen module learned to control Doxygen behavior using
CMake variables and generate documentation via the newly added
doxygen_add_docs() function. The Doxygen input file (Doxyfile)
is automatically generated and doxygen is run as part of a custom target.
Additional components can be specified to find optional tools: dot,
mscgen and dia.

The FindMPI module now provides imported targets.

The FindProtobuf module protobuf_generate_cpp()
command gained an EXPORT_MACRO option to specify the name of
a DLL export markup macro.

The FindProtobuf module now supports usage of static libraries
for Unix via a new Protobuf_USE_STATIC_LIBS input variable.

The FindProtobuf module now provides imported targets
when the libraries are found.

A new GoogleTest module was added to provide the
gtest_add_tests() function independently of the FindGTest
module. The function was also updated to support keyword arguments, with
functionality expanded to allow a test name prefix and suffix to be
specified, the dependency on the source files to be optional and the list of
discovered test cases to be returned to the caller.

CTest¶

The ctest_submit() command gained a HTTPHEADER option
to specify custom headers to send during submission.

The ctest(1) executable gained new options which allow the
developer to disable automatically adding tests to the test set to satisfy
fixture dependencies. -FS prevents adding setup tests for fixtures
matching the provided regular expression, -FC prevents adding cleanup
tests for matching fixtures and -FA prevents adding any test for matching
fixtures.

A DISABLED test property was added to mark tests that
are configured but explicitly disabled so they do not run.

CPack¶

The CPack Archive Generator learned to modify the filename
per-component.  See the CPACK_ARCHIVE_FILE_NAME variable and
its per-component version CPACK_ARCHIVE_<component>_FILE_NAME.

The CPackComponent module cpack_add_component() command
gained a new PLIST <filename> option to specify the pkgbuild
--component-plist argument when using the
productbuild generator.

The CPackIFW module cpack_ifw_configure_component() and
cpack_ifw_configure_component_group() commands gained
internationalization support for DISPLAY_NAME and DESCRIPTION
options.

The CPack IFW Generator learned the new hint
CPACK_IFW_ROOT variable for finding the QtIFW tool suite
installed in a non-standard place.

The CPack productbuild Generator gained a new
CPACK_PRODUCTBUILD_RESOURCES_DIR variable to
specify resources to be copied into the Resources
directory.

The CPack RPM Generator learned to modify the debuginfo
package name.  See the CPACK_RPM_DEBUGINFO_FILE_NAME variable.

The CPack WIX Generator patching system now has the
ability to set additional attributes.  This can be done by specifying
attributes with the CPackWiXFragment XML tag after the Id attribute.
See the CPACK_WIX_PATCH_FILE variable.

The CPack WIX Generator implemented a new
CPACK_WIX_ROOT_FOLDER_ID variable which allows
using a custom root folder ID instead of the default
ProgramFilesFolder / ProgramFiles64Folder.

Other¶

Interprocedural optimization (IPO) is now supported for GNU and Clang
compilers using link time optimization (LTO) flags.  See the
INTERPROCEDURAL_OPTIMIZATION target property and
CheckIPOSupported module.

The TARGET_OBJECTS
generator expression
is now supported by the add_custom_command() and
file(GENERATE) commands.

Two new informational generator expressions to retrieve Apple Bundle
directories have been added. The first one $<TARGET_BUNDLE_DIR:tgt>
outputs the full path to the Bundle directory, the other one
$<TARGET_BUNDLE_CONTENT_DIR:tgt> outputs the full path to the
Contents directory of macOS Bundles and App Bundles. For all other
bundle types and SDKs it is identical with $<TARGET_BUNDLE_DIR:tgt>.
The new expressions are helpful to query Bundle locations independent of
the different Bundle types and layouts on macOS and iOS.

Deprecated and Removed Features¶

An explicit deprecation diagnostic was added for policies CMP0036
and below.  The cmake-policies(7) manual explains that the
OLD behaviors of all policies are deprecated and that projects should
always port to the NEW behaviors as soon as possible.

The Visual Studio 8 2005 generator is now deprecated
and will be removed in a future version of CMake.

The Visual Studio 7 .NET 2003 generator has been removed.

The Xcode generator dropped support for Xcode versions
older than 3.

The FindDoxygen module has deprecated several variables.

The version of curl bundled with CMake no longer accepts URLs of the form
file://c:/... on Windows due to a change in upstream curl 7.52.  Use
the form file:///c:/... instead to work on all versions.

Other Changes¶

When using AUTOMOC, CMake now scans for the presence of the
Q_PLUGIN_METADATA macro and reruns moc when the file from the
macro's FILE argument changes.

When AUTOMOC detects an include statement of the form
#include "moc_<basename>.cpp" the search for the respective header file
now looks in the INCLUDE_DIRECTORIES of the target as well.

When running tests, CTest learned to treat skipped tests (using the
SKIP_RETURN_CODE property) the same as tests with the new
DISABLED property. Due to this change, CTest will not indicate
failure when all tests are either skipped or pass.

The Ninja generator has loosened the dependencies of object
compilation.  Object compilation now depends only on custom targets
and custom commands associated with libraries on which the object's target
depends and no longer depends on the libraries themselves.  Source files
in dependent targets may now compile without waiting for their targets'
dependencies to link.

On macOS, RPATH settings such as BUILD_WITH_INSTALL_RPATH
no longer affect the install_name field.  See policy CMP0068.

The Visual Studio 14 2015 generator has been taught about
a change to the v140 toolset made by a VS 2015 update.  VS changed
the set of values it understands for the GenerateDebugInformation
linker setting that produces the -DEBUG linker flag variants.

Updates¶

Changes made since CMake 3.9.0 include the following.

3.9.1¶

The find_ command PACKAGE_ROOT search path group added by
CMake 3.9.0 has been removed for the 3.9 series due to regressions
caused by new use of <PackageName>_ROOT variables.  The behavior
may be re-introduced in the future in a more-compatible way.

3.9.2¶

On macOS, the default application bundle Info.plist file no longer
enables Hi-DPI support as it did in 3.9.0 and 3.9.1.  The change had
to be reverted because it broke iOS applications.

The Xcode generator no longer adds "outputPaths" to custom script
build phases as it did in 3.9.0 and 3.9.1.  This was added in an
attempt to support Xcode 9's new build system, but broke incremental
rebuilds for both the old and new Xcode build systems.

Table of Contents

CMake 3.9 Release Notes

New Features

Languages

Generators

Commands

Variables

Properties

Modules

CTest

CPack

Other

Deprecated and Removed Features

Other Changes

Updates

3.9.1

3.9.2

Previous topic

CMake 3.10 Release Notes

Next topic

CMake 3.8 Release Notes

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

CMake Release Notes »

CMake 3.9 Release Notes

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CMake Release Notes — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMake 3.29 Release Notes" href="3.29.html" />
    <link rel="prev" title="IDE Integration Guide" href="../guide/ide-integration/index.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

CMake Release Notes

CMake Release Notes¶

Releases¶

3.29

3.28

3.27

3.26

3.25

3.24

3.23

3.22

3.21

3.20

3.19

3.18

3.17

3.16

3.15

3.14

3.13

3.12

3.11

3.10

3.9

3.8

3.7

3.6

3.5

3.4

3.3

3.2

3.1

3.0

Table of Contents

CMake Release Notes

Releases

Previous topic

IDE Integration Guide

Next topic

CMake 3.29 Release Notes

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

CMake Release Notes

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Search — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="_static/cmake.css" />

    <link rel="icon" href="_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="#" />

Navigation

          index

    CMake »

    3.29.0-rc3 Documentation »

Search

Search

    Please activate JavaScript to enable the search
    functionality.

    Searching for multiple words only shows matches that contain
    all words.

  <form action="" method="get">
    <input type="text" name="q" aria-labelledby="search-documentation" value="" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
    <input type="submit" value="search" />

  </form>

Navigation

          index

    CMake »

    3.29.0-rc3 Documentation »

Search

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>ANDROID — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="APPLE" href="APPLE.html" />
    <link rel="prev" title="<PackageName>_ROOT" href="PackageName_ROOT.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

ANDROID

ANDROID¶

New in version 3.7.

Set to 1 when the target system (CMAKE_SYSTEM_NAME) is
Android.

Previous topic

<PackageName>_ROOT

Next topic

APPLE

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

ANDROID

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>APPLE — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="BORLAND" href="BORLAND.html" />
    <link rel="prev" title="ANDROID" href="ANDROID.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

APPLE

APPLE¶

Set to True when the target system is an Apple platform
(macOS, iOS, tvOS, visionOS or watchOS).

Previous topic

ANDROID

Next topic

BORLAND

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

APPLE

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>BORLAND — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="BSD" href="BSD.html" />
    <link rel="prev" title="APPLE" href="APPLE.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

BORLAND

BORLAND¶

True if the Borland compiler is being used.

This is set to true if the Borland compiler is being used.

Previous topic

APPLE

Next topic

BSD

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

BORLAND

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>BSD — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMAKE_ANDROID_NDK_VERSION" href="CMAKE_ANDROID_NDK_VERSION.html" />
    <link rel="prev" title="BORLAND" href="BORLAND.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

BSD

BSD¶

New in version 3.25.

Set to a string value when the target system is BSD. This value can be one of
the following: DragonFlyBSD, FreeBSD, OpenBSD, or NetBSD.

Previous topic

BORLAND

Next topic

CMAKE_ANDROID_NDK_VERSION

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

BSD

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>BUILD_SHARED_LIBS — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMAKE_ABSOLUTE_DESTINATION_FILES" href="CMAKE_ABSOLUTE_DESTINATION_FILES.html" />
    <link rel="prev" title="PROJECT_VERSION_TWEAK" href="PROJECT_VERSION_TWEAK.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

BUILD_SHARED_LIBS

BUILD_SHARED_LIBS¶

Tell add_library() to default to SHARED libraries,
instead of STATIC libraries, when called with no explicit library type.

Calls to add_library() without any explicit library type check
the current BUILD_SHARED_LIBS variable value.  If it is true, then the
default library type is SHARED.  Otherwise, the default is STATIC.

For example, the code:

add_library(example ${sources})

behaves as if written

if(BUILD_SHARED_LIBS)
  add_library(example SHARED ${sources})
else()
  add_library(example STATIC ${sources})
endif()

CMake does not define BUILD_SHARED_LIBS by default, but projects
often create a cache entry for it using the option() command:

option(BUILD_SHARED_LIBS "Build using shared libraries" ON)

This provides a switch that users can control, e.g., with cmake -D.
If adding such an option to the project, do so in the top level
CMakeLists.txt file, before any add_library() calls.
Note that if bringing external dependencies directly into the build, such as
with FetchContent or a direct call to add_subdirectory(),
and one of those dependencies has such a call to
option(BUILD_SHARED_LIBS ...), the top level project must
also call option(BUILD_SHARED_LIBS ...) before bringing in
its dependencies.  Failure to do so can lead to different behavior between the
first and subsequent CMake runs.

Previous topic

PROJECT_VERSION_TWEAK

Next topic

CMAKE_ABSOLUTE_DESTINATION_FILES

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

BUILD_SHARED_LIBS

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CACHE — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="ENV" href="ENV.html" />
    <link rel="prev" title="CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION" href="CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CACHE

CACHE¶

New in version 3.13.

Operator to read cache variables.

Use the syntax $CACHE{VAR} to read cache entry VAR.
See the cmake-language(7) variables
documentation for more complete documentation of the interaction of
normal variables and cache entries.

When evaluating Variable References of the form ${VAR},
CMake first searches for a normal variable with that name, and if not
found CMake will search for a cache entry with that name.
The $CACHE{VAR} syntax can be used to do direct cache lookup and
ignore any existing normal variable.

See the set() and unset() commands to see how to
write or remove cache variables.

Previous topic

CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION

Next topic

ENV

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CACHE

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CMAKE_ABSOLUTE_DESTINATION_FILES — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY" href="CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY.html" />
    <link rel="prev" title="BUILD_SHARED_LIBS" href="BUILD_SHARED_LIBS.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ABSOLUTE_DESTINATION_FILES

CMAKE_ABSOLUTE_DESTINATION_FILES¶

List of files which have been installed using an ABSOLUTE DESTINATION path.

This variable is defined by CMake-generated cmake_install.cmake
scripts.  It can be used (read-only) by programs or scripts that
source those install scripts.  This is used by some CPack generators
(e.g.  RPM).

Previous topic

BUILD_SHARED_LIBS

Next topic

CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ABSOLUTE_DESTINATION_FILES

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMAKE_APPBUNDLE_PATH" href="CMAKE_APPBUNDLE_PATH.html" />
    <link rel="prev" title="CMAKE_ABSOLUTE_DESTINATION_FILES" href="CMAKE_ABSOLUTE_DESTINATION_FILES.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY

CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY¶

New in version 3.27.

Whether to enable the DEPENDS_EXPLICIT_ONLY option by default in
add_custom_command().

This variable affects the default behavior of the add_custom_command()
command.  Setting this variable to ON is equivalent to using the
DEPENDS_EXPLICIT_ONLY option in all uses of that command.

See also CMAKE_OPTIMIZE_DEPENDENCIES.

Previous topic

CMAKE_ABSOLUTE_DESTINATION_FILES

Next topic

CMAKE_APPBUNDLE_PATH

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CMAKE_ADSP_ROOT — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMAKE_AIX_EXPORT_ALL_SYMBOLS" href="CMAKE_AIX_EXPORT_ALL_SYMBOLS.html" />
    <link rel="prev" title="XCODE_VERSION" href="XCODE_VERSION.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ADSP_ROOT

CMAKE_ADSP_ROOT¶

New in version 3.24.

When Cross Compiling for ADSP SHARC/Blackfin,
this variable holds the absolute path to the latest CCES or VDSP++ install.
The directory is expected to contain the cc21k.exe and ccblkfn.exe compilers.
This will be set automatically if a default install of CCES or VDSP++ can be found.

See also the ADSP_ROOT environment variable.

Previous topic

XCODE_VERSION

Next topic

CMAKE_AIX_EXPORT_ALL_SYMBOLS

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ADSP_ROOT

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CMAKE_AIX_EXPORT_ALL_SYMBOLS — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS" href="CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.html" />
    <link rel="prev" title="CMAKE_ADSP_ROOT" href="CMAKE_ADSP_ROOT.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_AIX_EXPORT_ALL_SYMBOLS

CMAKE_AIX_EXPORT_ALL_SYMBOLS¶

New in version 3.17.

Default value for AIX_EXPORT_ALL_SYMBOLS target property.
This variable is used to initialize the property on each target as it is
created.

Previous topic

CMAKE_ADSP_ROOT

Next topic

CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_AIX_EXPORT_ALL_SYMBOLS

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMAKE_ANDROID_API" href="CMAKE_ANDROID_API.html" />
    <link rel="prev" title="CMAKE_AIX_EXPORT_ALL_SYMBOLS" href="CMAKE_AIX_EXPORT_ALL_SYMBOLS.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS

CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS¶

New in version 3.4.

Default value for the ANDROID_ANT_ADDITIONAL_OPTIONS target property.
See that target property for additional information.

Previous topic

CMAKE_AIX_EXPORT_ALL_SYMBOLS

Next topic

CMAKE_ANDROID_API

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CMAKE_ANDROID_API — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMAKE_ANDROID_API_MIN" href="CMAKE_ANDROID_API_MIN.html" />
    <link rel="prev" title="CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS" href="CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ANDROID_API

CMAKE_ANDROID_API¶

New in version 3.1.

When Cross Compiling for Android with NVIDIA Nsight Tegra Visual Studio Edition, this variable may be set to specify the default value for the
ANDROID_API target property.  See that target property for
additional information.

When Cross Compiling for Android, the CMAKE_SYSTEM_VERSION
variable represents the Android API version number targeted.  For historical
reasons, if a toolchain file sets CMAKE_ANDROID_API, but not
CMAKE_SYSTEM_VERSION, the latter will be initialized using the former.

Previous topic

CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS

Next topic

CMAKE_ANDROID_API_MIN

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ANDROID_API

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CMAKE_ANDROID_API_MIN — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMAKE_ANDROID_ARCH" href="CMAKE_ANDROID_ARCH.html" />
    <link rel="prev" title="CMAKE_ANDROID_API" href="CMAKE_ANDROID_API.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ANDROID_API_MIN

CMAKE_ANDROID_API_MIN¶

New in version 3.2.

Default value for the ANDROID_API_MIN target property.
See that target property for additional information.

Previous topic

CMAKE_ANDROID_API

Next topic

CMAKE_ANDROID_ARCH

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ANDROID_API_MIN

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CMAKE_ANDROID_ARCH — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMAKE_ANDROID_ARCH_ABI" href="CMAKE_ANDROID_ARCH_ABI.html" />
    <link rel="prev" title="CMAKE_ANDROID_API_MIN" href="CMAKE_ANDROID_API_MIN.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ANDROID_ARCH

CMAKE_ANDROID_ARCH¶

New in version 3.4.

When Cross Compiling for Android with NVIDIA Nsight Tegra Visual Studio Edition, this variable may be set to specify the default value for the
ANDROID_ARCH target property.  See that target property for
additional information.

Otherwise, when Cross Compiling for Android, this variable provides
the name of the Android architecture corresponding to the value of the
CMAKE_ANDROID_ARCH_ABI variable.  The architecture name
may be one of:

arm

arm64

mips

mips64

x86

x86_64

Previous topic

CMAKE_ANDROID_API_MIN

Next topic

CMAKE_ANDROID_ARCH_ABI

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ANDROID_ARCH

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CMAKE_ANDROID_ARCH_ABI — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMAKE_ANDROID_ARM_MODE" href="CMAKE_ANDROID_ARM_MODE.html" />
    <link rel="prev" title="CMAKE_ANDROID_ARCH" href="CMAKE_ANDROID_ARCH.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ANDROID_ARCH_ABI

CMAKE_ANDROID_ARCH_ABI¶

New in version 3.7.

When Cross Compiling for Android, this variable specifies the
target architecture and ABI to be used.  Valid values are:

arm64-v8a

armeabi-v7a

armeabi-v6

armeabi

mips

mips64

x86

x86_64

See also the CMAKE_ANDROID_ARM_MODE and
CMAKE_ANDROID_ARM_NEON variables.

Previous topic

CMAKE_ANDROID_ARCH

Next topic

CMAKE_ANDROID_ARM_MODE

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ANDROID_ARCH_ABI

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.


code:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />

  <title>CMAKE_ANDROID_ARM_MODE — CMake 3.29.0-rc3 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css" />

    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMAKE_ANDROID_ARM_NEON" href="CMAKE_ANDROID_ARM_NEON.html" />
    <link rel="prev" title="CMAKE_ANDROID_ARCH_ABI" href="CMAKE_ANDROID_ARCH_ABI.html" />

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ANDROID_ARM_MODE

CMAKE_ANDROID_ARM_MODE¶

New in version 3.7.

When Cross Compiling for Android and CMAKE_ANDROID_ARCH_ABI
is set to one of the armeabi architectures, set CMAKE_ANDROID_ARM_MODE
to ON to target 32-bit ARM processors (-marm).  Otherwise, the
default is to target the 16-bit Thumb processors (-mthumb).

Previous topic

CMAKE_ANDROID_ARCH_ABI

Next topic

CMAKE_ANDROID_ARM_NEON

This Page

Show Source

Quick search

    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>

Navigation

          index

          next |

          previous |

    CMake »

    3.29.0-rc3 Documentation »

cmake-variables(7) »

CMAKE_ANDROID_ARM_MODE

        © Copyright 2000-2024 Kitware, Inc. and Contributors.
      Created using Sphinx 6.2.1.