* Makefile: Workaround mingw32-make trailing backslash trouble
* Makefile: Fix compilation after parent commit was backported
* InstallRequiredSystemLibraries: Update for VS 2015
* Fix assertion failure on unmatched foreach in function
* ctest_build: Fix regression in GNU make error message matching
* file(LOCK): Close file descriptor/handle when releasing a lock
* FindMFC: Use if(DEFINED) to simplify condition
* curl: Never consider using Windows APIs on Cygwin
* liblzma: Use unaligned access only on Intel and PowerPC archs
* liblzma: Disable XL compiler optimizations
* liblzma: Disable GNU 3.3 compiler optimizations
* KWSys SystemTools: Teach Touch with !create to succeed on missing file
* Makefile: Fix multiple custom command outputs with one missing
* libarchive: Fix string concatentation in Windows mktemp implementation
* CMake learned to support unicode characters *encoded as UTF-8* on
Windows. This was already supported on platforms whose system APIs
accept UTF-8 encoded strings. Unicode characters may now be used in
CMake code, paths to source files, configured files such as ".h.in"
files, and other files read and written by CMake. Note that because
CMake interoperates with many other tools, there may still be some
limitations when using certain unicode characters.
* The "Compile Features" functionality is now aware of features
supported by more compilers, including:
* Apple Clang ("AppleClang") for Xcode versions 4.4 though 6.1.
* GNU compiler versions 4.4 through 5.0 on UNIX and Apple ("GNU").
* Microsoft Visual Studio ("MSVC") for versions 2010 through 2015.
* Oracle SolarisStudio ("SunPro") version 12.4.
* The "add_custom_command()" and "add_custom_target()" commands
learned a new "BYPRODUCTS" option to specify files produced as side
effects of the custom commands. These are not outputs because they
do not always have to be newer than inputs.
* The "file(GENERATE)" command can now generate files which are used
as source files for buildsystem targets. Generated files
automatically get their "GENERATED" property set to "TRUE".
Deprecated and Removed Features:
* Files written in the "cmake-language(7)", such as "CMakeLists.txt"
or "*.cmake" files, are now expected to be encoded as UTF-8. If
files are already ASCII, they will be compatible. If files were in
a different encoding, including Latin 1, they will need to be
converted.
* The "FindOpenGL" module no longer explicitly searches for any
dependency on X11 libraries with the "FindX11" module. Such
dependencies should not need to be explicit. Applications using X11
APIs themselves should find and link to X11 libraries explicitly.
Do not call setlocale() globally in CMake applications
Add setlocale() calls around use of libarchive APIs
Makefile: Fix regression in target-bound custom command COMMENT output
* install: Fix regression in default configuration selection
* CPack: Fix packaging of source tarballs with symbolic links
* KWSys Directory: Check opendir return value before using it
* Help: Clarify status of link_libraries command
* Normalize OBJECT_DEPENDS paths to match custom commands
* MSVC: Fix initialization of RelWithDebInfo shared library link flags
* FeatureSummary: Fix bracket in documentation.
* FindOpenSSL: fix detection of OpenSSL 1.0.2
* ctest_build: Update GNU make error message matching
Changes in 3.1.1 since 3.1.0:
André Klitzing (1):
Eclipse: Add org.eclipse.cdt.core.cnature to CXX projects (#15068)
Ben Boeckel (4):
get_test_property: clarify the documentation
set_tests_properties: fix documentation
tests: add tests for querying properties
Xcode: Sort targets deterministically and with ALL_BUILD first (#15346)
Brad King (14):
bootstrap: Fix syntax for Solaris 10 shell (#15317)
Help: Clarify MinGW v. MSYS Makefiles generators (#15319)
Ninja: Do not crash when CMAKE_<LANG>_COMPILE_OBJECT is empty (#15325)
Ninja: Generate rules only for languages compiled in a target (#15325)
Tests: Test using objects from a language enabled in a subdirectory (#15325)
Help: Add 3.1 release note about '#' escaping in Makefiles (#15322)
Help: Clarify if(<variable>) documentation (#15335)
Help: Document CMAKE_FIND_PACKAGE_NAME variable
Xcode: Do not require code signing for compiler id (#15214)
Copyright.txt: Update year range to end in 2015
XL: Fix link flags for executables on Linux with XL compilers
QNX: Fix detection of QCC compiler id (#15349)
Xcode: Fix early termination on per-config source file error
CMake 3.1.1
Calin Cascaval (1):
CPack: Fix PackageMaker internal versioning for OS X 10.10
Chuck Atkins (1):
Fix compilation with the Oracle / Sun compiler (#15318)
Daniele E. Domenichelli (1):
Help: Small fixes in CPackComponent documentation
David Coppa (1):
FindRuby: fix selection of version x.0 (#15345)
Domen Vrankar (1):
CPack: Avoid crash on invalid CMake generator name (#15308)
Evangelos Foutras (1):
FindRuby: Fix output check in _RUBY_CONFIG_VAR
Gregor Jasny (1):
find_package: Document CMAKE_FIND_PACKAGE_NAME variable
Justin Borodinsky (1):
QtAutoUic: Restore source file AUTOUIC_OPTIONS settings
Mark Abraham (1):
FindCUDA: Do not assume CMAKE_SYSTEM_PROCESSOR is set
Peter Vasil (2):
cmake-mode.el: Fix extracting keyword at point in cmake-help
cmake-mode.el: Re-add explicit call to require thingatpt
Rolf Eike Beer (5):
FindIce: Port to work with CMP0054 NEW behavior
FindSDL: Allow if() to dereference SDL_INCLUDE_DIR for matching
FindQt: fix setting DESIRED_QT_VERSION if "find_package(Qt VVV)" was called
FindQt: fix variable name in error message
FindQt: explicitely mention that it cannot Qt5 or later
Sergey Nikulov (1):
FindBoost: Add latest Boost version 1.57.0 and next milestone 1.58.0
Simon Gomizelj (1):
KWSys Terminal: Add xterm-termite to VT100 color support whitelist
Stephen Kelly (7):
Help: Document valid 14 value for CXX_STANDARD. (#15339)
get_target_property: discern empty from undefined properties (#15333)
QtAutoUic: Add a test for the regression in the parent commit.
cmMakefile: Rename a method to what it really does.
Features: Fix the COMPILE_FEATURES genex for unavailable features.
cmTarget: Compute link language of TARGET_OBJECTS with CMP0026 OLD (#15338)
Help: Link relevant documents for virtual override features (#15311)
Tim Blechmann (1):
Help: Add INTERFACE_LIBRARY to TYPE target property documentation
William Lynch (1):
Help: Update cmake.org links to avoid redirects
* Windows Phone and Windows Store support has been added to Visual Studio 11
(2012) and above Generators.
* NVIDIA Nsight Tegra support has been added to Visual Studio 10 (2010) and
above Generators.
* New "target_compile_features" command allows populating target based compile
features. CMake uses this information to ensure that the compiler in use is
capable of building the target, and to add any necessary compile flags
such as -std=gnu++11 to support language features.
More information on this is found at:
- http://www.cmake.org/cmake/help/v3.1/manual/cmake-compile-features.7.html
* The syntax for *Variable References* and *Escape Sequences* was simplified in
order to allow a much faster implementation. See policy "CMP0053".
* The "if" command no longer automatically dereferences variables named in
quoted or bracket arguments. See policy "CMP0054".
* The target property "SOURCES" now generally supports "Generator Expressions".
The generator expressions may be used in the "add_library" and
"add_executable" commands.
* It is now possible to write and append to the target property "SOURCES".
The variable "CMAKE_DEBUG_TARGET_PROPERTIES" can be used to trace the
origin of sources.
* CPack gained "7Z" and "TXZ" generators supporting lzma-compressed archives.
* The ExternalProject module has learned to support lzma-compressed
source tarballs with ".7z", ".tar.xz", and ".txz" extensions.
* The ExternalProject module ExternalProject_Add command learned a new
BUILD_ALWAYS option to cause the external project build step to run every
time the host project is built.
* The ctest_coverage command learned to support Intel coverage files with the
"codecov" tool.
* The ctest_memcheck command learned to support sanitizer modes, including
"AddressSanitizer", "MemorySanitizer", "ThreadSanitizer", and
"UndefinedBehaviorSanitizer".
We are pleased to announce the release of CMake 3.0.0. In CMake 3.0, the CMake language has been extended with *Bracket Argument* and *Bracket Comment* syntax inspired by Lua long bracket, and the CMake documentation has been converted to reStructuredText.
Furthermore, new "CodeLite" and "Kate" extra generators are available for use with the Makefile or Ninja generators. In addition, the "add_library()" command learned a new "INTERFACE" library type, the "export()" command learned a new "EXPORT" mode that retrieves the list of targets to export from an export set configured by the "install(TARGETS)" command "EXPORT" option, and the "project()" command learned to set some version variables to values specified by the new "VERSION" option or to empty strings.
VS: Map /Fd to ProgramDataBaseFileName for VS 7,8,9
Replace <OBJECT_DIR> rule placeholder consistently
VS: Convert include path to backslashes for VS >= 10
Revert "Ninja: Track configured files so we can regenerate them."
FindOpenMP: fix detecting compilers that do not need any special flag
Xcode: Fix storyboard view
CMakeDetermineCompilerId: Fix compiler line match for Xcode 5.1
* MSVC: Add /FS flag for cl >= 18 to allow parallel compilation
* Genex: Reject $<TARGET_FILE:...> for object libraries
* Check for OBJECT_LIBRARY source files at start of generation
* CMP0022: Plain target_link_libraries must populate link interface
* Do not export INTERFACE_LINK_LIBRARIES from non-linkable targets
* CMP0022: Warn about a given target at most once
* Fix summary documentation of INTERFACE_LINK_LIBRARIES
* file(GENERATE): Clear internal records between configures
* cmake: Validate -E cmake_automoc argument count
* Fix spelling in INTERFACE_LINK_LIBRARIES documentation
* CMP0022: Output link interface mismatch for static library warning
* Don't add invalid content to static lib INTERFACE_LINK_LIBRARIES.
* CMP0022: Add unit test for null pointer check and message.
* CMP0022: Add test for target_link_libraries plain signature
* Automoc: Add directory-level COMPILE_DEFINITIONS to command line
* FindCUDA: Fix NPP library search for CUDA 5.5
NetBSD condition exists since 2.8.11, and current linux condition part
including fenv.h, it does not exist on NetBSD<6 and not usable except
arm, i386, sparc and x86_64 even on NetBSD-current.
Xcode: Fix test architecture selection for Xcode >= 5
Xcode: Teach Tests/BuildDepends to allow LINK_DEPENDS_NO_SHARED failure
Xcode: Drop XCODE_DEPEND_HELPER for Xcode >= 5
Xcode: Fix OBJECT library support for Xcode 5 (#14254)
Genex: Fix processing multiple include directories for relative paths
More...
Chagnelog
Changes in CMake 2.8.11.2 (since 2.8.11.1)
------------------------------------------
Alex Neundorf (1):
asm support: adapt to changes in CMakeDetectCompiler in 2.8.10
Bjoern Thiel (1):
SelectLibraryConfigurations: Fix for cached <base>_LIBRARY
Brad King (5):
cmCryptoHash: Increase alignment of HashFile buffer
cmcurl: Backport curl bug 1192 fix (#14250)
VS12: Add Visual Studio 12 generator (#14251)
VS12: Generate flag tables from MSBuild v120 tool files
FindBoost: Add -vc120 mangling for VS 12
Robert Maynard (1):
VS: Clarify Visual Studio product year for each version
Changes in CMake 2.8.11.1 (since 2.8.11)
----------------------------------------
Brad King (5):
ExternalData: Do not re-stage staged object files
try_compile: Fix quoting of libraries in generated CMakeLists.txt
KWSys: Fix SystemTools::FileIsDirectory with long paths (#14176)
FindBoost: Fix handling of \ in input paths (#14179)
Xcode: Fix framework search paths in STATIC library targets (#14191)
Modestas Vainius (1):
Fix test failures caused by regexp-sensitive characters in the build paths
Stephen Kelly (9):
include_directories: Fix handling of empty or space-only entries
try_compile: Trim whitespace from LINK_LIBRARIES entries
cmTarget: Remove some hardcoding of transitive property names.
GenexEval: Extract a getLinkedTargetsContent from TargetPropertyNode.
GenexEval: Fix evaluation of INCLUDE_DIRECTORIES target property.
GenexEval: Test evaluation of INCLUDE_DIRECTORIES target property.
FindQt4: Don't fail if certain Qt modules are unavailable.
Qt4Macros: Handle Qt ActiveX libraries in qt4_use_modules.
Genex: Fix the HEAD target used for evaluated expressions
This new release of CMake features the introduction of Target Usage Requirements and a Generator Toolset Selection for Visual Studio and XCode, as well as a variety of other improvements.
With the Target Usage Requirements, developers can now specify target usage requirements for their consumers such as include directories and preprocessor definitions, whereas in previous versions only link dependencies were supported. Additionally, with the target_link_libraries(myexe yourlib), developers can now build myexe sources with requirements specified by yourlib. There are also a new target include directory and target compile definitions commands that offer public, private, and interface options. The detailed discussion on this topic is available on the KDE website.
The new Generator Toolset selection for Visual Studio and XCode inform the IDE which compiler toolchain to use. Other improvements include the introduction of the ExternalData Module and the ability to reference data unambiguously from source tree by the content hash.
Generator expressions, which are used to introduce conditional statements at generate time rather than at CMake compile time, are now available in more contexts, notably in the INCLUDE_DIRECTORIES and COMPILE_DEFINITIONS target properties. There are also new generator expressions available in the 2.8.10 release.
The file(DOWNLOAD command can accommodate https URLs. The pre-built binaries for this are available from Kitware and link to OpenSSL. The team has also added uniform compiler "id" and version number variables available for nearly all known compilers and platforms.
* CheckIncludeFiles: Shorten check description message
* CPackNSIS: Rewrite variable documentation to make it more readable.
* OS X: Use correct extra path when searching for applicaton bundles
* OS X: Mark find_program results as advanced
* Fix some doc typo and add an undocumented var.
* OS X: Use OSX_DEVELOPER_ROOT for app search path
* FindBoost: add support for 1.49 and 1.50
This release includes the addition of file(…) and string(…) commands for
computing hash values and more cryptographic hash implementations, such as
SHA1, SHA224, SHA256, SHA384, SHA512. There are new LINK_PUBLIC and LINK_PRIVATE
options for target_link_libraries command as well as a new DeployQt4 module.
With the 2.8.7 release, there are two sets of installers for the Mac. The
"Darwin" versions are for Mac OSX 10.4 and later, and are "ppc;i386" universal
binaries. The "Darwin64" versions are for 10.6 and later, and are "x86_64;i386"
universal binaries.
Kitware is pleased to announce the release of CMake 2.8.6. This release features several notable changes, including a new AUTOMOC target property that helps make it easier to build Qt projects and support for the Intel Fortran compiler in VisualStudio10. Additionally, VisualStudio 9 and 10 generators for Itanium platform have been added, and appear as the “Visual Studio 9 2008 IA64” and “Visual Studio 10 IA64” generators on Windows builds of CMake.
This release also contains an experimental generator in the Windows build targeting VisualStudio 11. It will remain "Experimental" until VisualStudio 11 itself is finalized. If you have the developer preview of VisualStudio 11, we would appreciate any feedback you have. Please keep in mind that this is very new, and has only been tested enough to be useful to include for the community to test drive and provide feedback on.
Other improvements include the movement of many files from KDE's overrides of CMake module files, which have been accepted into upstream CMake thanks to the hard work of Alex Neundorf and Stephen Kelly. There have been many Xcode generator improvements, including support for iOS projects and the ability to switch between simulator and device builds.
* Revert "Add a new function SWIG_GET_WRAPPER_DEPENDENCIES to UseSWIG.cmake"
* Use devenv instead of msbuild for vs2010.
* Revert "With very long file names, VS 2010 was unable to compile files."
* Use relative paths for custom command inputs.
* Look for VCExpress as a possible build tool as well as devenv.
* KWSys: Recognize color TERM=screen-256color-bce
* find_library: Use lib->lib64 conversion in CXX-only projects
* libarchive: Install COPYING with CMake documentation
* FindJNI: Search in Fedora arch-specific JVM location
* FindSWIG: Use NAMES in find_program directives
* Documentation: Fix spelling / formatting errors
* FindBoost: Fixes
* FindBoost: Also search for 1.46.1
* Detect VS 2010 SP1, faster and more robust detection
* Fix a memory leak.
* Fix for bug10798. VS10 did not append -I flags with COMPILE_FLAGS prop.
* Append and do not clobber CMAKE_CXX_FLAGS in the test.
* Use bin tree for inclues to avoid -I with spaces in the path.
* One more try. Use full path by default, and relative on broken compilers.
* Fix for bug11927, external project git clone step always runs vs10.
* XL: Place Fortran modules with -qmoddir= flag
* Teach file(DOWNLOAD|UPLOAD) to timeout after inactivity
* Xcode: Fix parallel build depends with universal binaries
* Fix style errors added by parent and grandparent
* Use cascading-if for per-config test and install code
* CTest: Report tests not run due to unknown configuration
* GNU: Fix CMAKE_INCLUDE_SYSTEM_FLAG_<lang> value
* Teach find_(library|package) about Linux multiarch
* Test find_package multiarch support
* more...
* Fix crash in GraphVizWriter when GRAPHVIZ_TARGET_IGNORE_REGEX is used
* FindPerlLibs: Add notice of copyright
* libarchive: Define major/minor/makedev only where needed
* libarchive: Use OpenSSL only if CMAKE_USE_OPENSSL
* Fix documentation of MSVC_VERSION
* Silence the may be used uninitialized warnings: initialize stuff.
* CPack Tests the different ways of packaging components
* Avoid foreach IN LISTS syntax which is not supported by CMake 2.6
* When processing DartMeasurements use the tests working directory.
* ExternalProject: No svn --username if empty.
* Avoid problem reading jni.h on Macs.
* Fixed appending PATH to dumpbin tool from growing without bounds.
* Switch to CMAKE_PATH when doing PATH comparisons on Windows.
* Remove unecessary TO_CMAKE_PATH for gp_cmd_dir.
* Append the gp_tool path to the system PATH using native slashes.
* Fixes to GetPrerequisites for cygwin.
* CPackDeb Added several optional debian binary package fields.
* ENH: Added case for Python 2.7.
* Fixed parallel build for generators with EXTRA.
* Fix for bug: ctest exit exception incorrectly reported
* CTest: Parse empty Git commits correctly
* Qualify name of extraction location with ExternalProject name.
* For VS10: Really use full path file names.
* Add support for the emulation version of the cudart library.
* Cleanup FindOpenSSL. Add support for win64 installation.
* Parallel CTest hangs if serial test has depends
* Preserve ENV{MAKEFLAGS} in CMake script mode
* Remove "Microsoft Visual Studio .NET" from VS8 and VS9 find modules.
* Use full path file names in generate.stamp.list.
* Use full path file names to express dependencies.
* Look in the ctest ini file for GitCommand.
* Fixed: CUDA_VERSION_MAJOR/MINOR now computed after first run.
* Do not exit if stoptime is passed.
* Document ctest_build() TARGET option
* Make sure libarchive uses cmzlib and not the system libz if found.
* Use forward slashes for objects in response files
* Use platform variable for response file flag
* Use response file for objects on MinGW and MSYS
* Generalize CTest.Update* test dashboard script helpers
* ctest_update: Support custom Git update command
* ctest_update: Support Git upstream branch rewrites
* Fix CMake data and doc paths in Cygwin package
* Document scope of source file properties
* Run CTest.NoNewline test using built CMake
* Tru64: Place cmOStringStream vtable uniquely
* Enable BootstrapTest on MSYS
* Tru64: Use full-path include directives in Makefiles
We are happy to announce the release of CMake 2.8.1. This is a minor release
from 2.8.0. In addition to addressing many issues, this version of CMake adds
some new features as well. The parallel nmake replacement from Nokia jom, now
has its own tested generator in CMake.
CTest can correctly kill process trees when a timeout occurs. The ctest_*
commands have been enhanced to take more options. When using the Intel
compilers CMake can correctly determine 32 bit vs. 64 bit builds. When running
in parallel mode (-j N), CTest can now compute and use a cost value for each
test to ensure the tests are run in an optimal order.