* 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