CMake 3.0-rc5 now ready for testing!

May 14, 2014

I am proud to announce the CMake 3.0 fifth release candidate.

Sources and binaries are available at:;O=D

Documentation is available at:

Release notes appear below and are also published at

Some of the more significant features of CMake 3.0 are:

  • Compatibility options supporting code written for CMake versions prior to 2.4 have been removed.
  • The CMake language has been extended with *Bracket Argument* and  *Bracket Comment* syntax inspired by Lua long brackets.
  • The CMake documentation has been converted to reStructuredText and uses Sphinx generation.
  • Generators for Visual Studio 10 (2010) and later were renamed to include the product year like generators for older VS versions:
    • "Visual Studio 10" -> "Visual Studio 10 2010"
    • "Visual Studio 11" -> "Visual Studio 11 2012"
    • "Visual Studio 12" -> "Visual Studio 12 2013"
  •  This clarifies which generator goes with each Visual Studio version. The old names are recognized for compatibility.
  • A new "CodeLite" extra generator is available for use with the Makefile or Ninja generators.
  • A new "Kate" extra generator is available for use with the Makefile or Ninja generators.
  • The "add_library()" command learned a new "INTERFACE" library type. Interface libraries have no build rules but may have properties defining "usage requirements" and may be installed, exported, and imported.  This is useful to create header-only libraries that have concrete link dependencies on other libraries.
  • 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. This makes it easy to export from the build tree the same targets that are exported from the install tree.
  • The "project()" command learned to set some version variables to values specified by the new "VERSION" option or to empty strings. See policy "CMP0048".
  • Several long-outdated commands that should no longer be called have been disallowed in new code by policies:
    • Policy "CMP0029" disallows "subdir_depends()"
    • Policy "CMP0030" disallows "use_mangled_mesa()"
    • Policy "CMP0031" disallows "load_command()"
    • Policy "CMP0032" disallows "output_required_files()"
    • Policy "CMP0033" disallows "export_library_dependencies()"
    • Policy "CMP0034" disallows "utility_source()"
    • Policy "CMP0035" disallows "variable_requires()"
    • Policy "CMP0036" disallows "build_name()"


Changes made since CMake 3.0.0-rc4:

Brad King (10):
      Utilities/Sphinx: Fix cmake domain document removal with python3
      Utilities/Sphinx: Add option to build 'singlehtml' format
      Restore –help-full option to output all help manuals
      ExternalProject: Fix path to cmake in verify script
      KWSys SystemInformation: Include backtrace APIs whenever we use them
      ctest_build: Do not crash on bad generator name
      cmTarget: Drop unused GetProperty signature
      cmTarget: Evaluate CMP0026 in calling context
      Ninja: Fix deptype for Intel compiler on Linux

Eric Berge (1):
      VS: Fix /MANIFESTUAC:NO linker option mapping

Felix Krause (1):
      InstallRequiredSystemLibraries: MBCS MFC is optional on VS 12 (#14903)

Johannes Huber (1):
      cmake-gui: Fix desktop file icon configuration

Mark Wright (2):
      FindCurses: Honor CURSES_NEED_NCURSES when curses is found
      FindCurses: Detect and satisfy ncurses dependency on tinfo

Rolf Eike Beer (3):
      CompileFlags: Test for C++ features after selecting flags
      CompileFlags: Add -AA +hpxstd98 on HP-UX 11.11 with aCC
      CompileFlags: add better selection which aCC version gets -AA +hpxstd98 flags

Tim Blechmann (1):
      OS X: Fix Info.plist placement in a CFBundle

Uwe L. Korn (1):
      Utilities/Sphinx: Port documentation generation to python3 (#14886)

Leave a Reply