CMake 2.8.11-rc2 ready for testing!

The CMake 2.8.11 release candidate stream continues!

You can find the source and binaries here: http://www.cmake.org/files/v2.8/?C=M;O=D

Some of the notable changes in this release are:

  • Introduced Target Usage Requirements
    • Targets can specify usage requirements for their consumers such as include directories and preprocessor definitions; previously only link dependencies were supported
    • target_link_libraries(myexe yourlib) can now build myexe sources with requirements specified by yourlib
    • Added target_include_directories and target_compile_definitions commands with PUBLIC/PRIVATE/INTERFACE options
    • See design and development discussion at                                                                                  http://community.kde.org/Frameworks/Epics/CMake_target_usage_requirements
  • Introduced a Generator Toolset selection for VS >= 10 and Xcode >= 3
    • Tell the IDEs which compiler toolchain to use
    • ex. Use VS 9 tools under VS 10: -G “Visual Studio 10” -T “v90”
  • Introduced ExternalData Module
    • Keep source trees lightweight by storing data separately
    • Reference data unambiguously from source tree by content hash
    • Fetch on-demand during build from local or remote resources
  • CMake: Sublime Text Generator added that supports both Make and Ninja
  • CMake: Added support for Texas Instruments C6 and up compilers
  • CMake: Improve OpenBSD support
  • CMake: Support for Windows CE with VS 8 and 9 generators
  • CPack: Added Support for 64bit NSIS
  • CPack: Added WiX Package Generator
  • ExternalProject: Will run git fetch less often
  • FindBoost: Major overhaul of searching and result caching
  • FindCUDA: Now has support for separable compilation
  • FindQt4: Overall improvements to finding Qt and importing targets
  • FindSquish: Added support for squish 4
  • GetPrerequisites: Port to MinGW with objdump

The bug tracker change log page for this version is at:
http://public.kitware.com/Bug/changelog_page.php?version_id=103

Following is the complete list of changes in this rc since the previous release candiatate. Please try this version of CMake on your projects and report any issues to the list or the bug tracker.

Changes in CMake 2.8.11-rc2 (since 2.8.11-rc1)
———————————————-
Alex Neundorf (6):
      Determine C/CXX/Fortran compiler: minor restructuring
      Determine C/CXX/Fortran compiler: fix indentation
      rename TI_DSP toolchain to TI, since it works also for the ARM compiler
      TI compiler: add automatic detection of prefix and suffixes
      Modules/readme.txt: switch from “XXX” to “Xxx”
      Modules/readme.txt: make lines a bit shorter for easier readability

Ben Boeckel (1):
      Clang: Add -isystem flag support everywhere

Bill Hoffman (1):
      ExternalProject: Retry on a failed git clone

Brad King (8):
      string: Fix regex documentation of ‘^’ and ‘$’ (#14028)
      Rename variable for including current directory in interfaces
      Replace <TARGET> in CMAKE_<LANG>_COMPILE_OBJECT rule variables
      Test evaluation of per-config COMPILE_DEFINITIONS (#14037)
      VS: Fix VS 10/11 .sln headers (#14038)
      add_dependencies: Distinguish target v. file dependencies in error (#14050)
      automoc: Use a pre-build event in VS >= 7
      Handle usr-move without forcing absolute paths (#14041)

Clinton Stimpson (2):
      FindQt4: If Qt5 is in CMAKE_PREFIX_PATH, be sure to find Qt4 includes.
      Qt4: Fix typo setting a variable for FindThreads.

James Bigler (1):
      FindCUDA: Use the PRE_LINK mode only for MSVC >= 10

Matthew Woehlke (4):
      UseJava.cmake: simplify path logic
      UseJava.cmake: fix passing jars to add_jar
      UseJava.cmake: accept jar targets in add_jar
      UseJava.cmake: require explicit request to include jars

Paul Kunysch (1):
      CPack: Avoid “format expects ‘unsigned int'” warnings

Petr Kmoch (1):
      cmSystemTools: Generalize TrimWhitespace to all whitespace

Rex Dieter (1):
      FindImageMagick: Search versioned suffixes (#14012)

Rolf Eike Beer (1):
      FindRuby: improve version selection

Stephen Kelly (13):
      FindQt4: Set the Qt4_FOUND variable if Qt4 is found
      FindQt4: Set the INTERFACE_QT_MAJOR_VERSION for Qt4::QtCore
      Document that CMAKE_AUTOMOC works with Qt 5.
      FPHSA: Fix FOUND_VAR check to work with if() auto-dereference
      Fix cmGeneratorExpression::Preprocess for interleaved inputs.
      cmake-gui: Use the QStandardItemModel workaround until 5.1.0.
      Automoc: append implicit includes after user-specified dirs
      Fix the evaluation of per-config COMPILE_DEFINITIONS (#14037)
      Fix new target commands documentation.
      install(EXPORT): Ensure clean INTERFACE_INCLUDE_DIRECTORIES
      Report an error on IMPORTED targets with a faulty INTERFACE
      Error if linked target has relative paths in INTERFACE_INCLUDE_DIRECTORIES
      Fix the Qt 5 version required to run the IncompatibleQt test.

Questions or comments are always welcome!