[ANNOUNCE] CMake 3.19.2 available for download
We are pleased to announce that CMake 3.19.2 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Starting with CMake 3.19.2 Apple ARM is now supported: * The "CMAKE_HOST_SYSTEM_PROCESSOR" is selected using "uname -m". Since this may vary based on CMake’s own architecture and that of the invoking process tree, the "CMAKE_APPLE_SILICON_PROCESSOR" variable or "CMAKE_APPLE_SILICON_PROCESSOR" environment variable may be set to specify a host architecture explicitly. * If "CMAKE_OSX_ARCHITECTURES" is not set, CMake adds explicit flags to tell the compiler to build for the "CMAKE_HOST_SYSTEM_PROCESSOR" so the toolchain does not have to guess based on the process tree’s architecture. Thanks for your support! - Changes in 3.19.2 since 3.19.1: Adam Weisi (1): Compiler/TI: Fix C standard flags in C-only project Asit Dhal (1): execute_process: Improve COMMAND_ERROR_IS_FATAL error capture scenarios Ben Boeckel (3): FindHDF5: improve error messages when a location variable isn't known FindHDF5: support the hdf5hl_fortran-based variable names FindPython2: avoid doubling the extension in CPython2 SOABI Brad King (28): Tests: Add CMake_TEST_Java option to control Java tests Tests: Teach RunCMake to ignore Xcode install_name_tool signature warnings gitlab-ci: update macOS jobs to use Xcode 12.2 Tests: Fix RunCMake.Check* conditions for enabling Fortran Check*: Tolerate variables set with names of languages Ninja: Clean metadata after regen during build on Windows with 1.10.2+ ci: update to use ninja 1.10.2 Tests: Look for Visual Studio only on Windows hosts CMakeDetermineCompilerId: Filter IAR-AVR format INFO strings earlier CMakeDetermineCompilerId: Add whitespace to clarify logic CMakeDetermineCompilerId: Tolerate stray text around INFO strings Revert "Intel: Add Intel Clang compiler identification" Revert "Intel: Add Intel DPC++ compiler identification" Tests: Add cache entry to control XCTest deployment target Tests: Remove outdated exclusion of tests on OS X 10.3 ci: Hard-code XCTest deployment target to 10.15 Utilities/Release: Add script to build Qt 5.9.9 macOS universal binaries ci: update to pre-built Qt 5.9.9 universal binaries for macOS packages ci: do not use sccache for macOS packaging ci: update macOS package to produce universal binaries macOS: Offer control over host architecture on Apple Silicon hosts Tests: Cover macOS host architecture selection on Apple Silicon hosts cmake: Clear INSTALL file properties between runs macOS: Add /opt/homebrew to CMAKE_SYSTEM_PREFIX_PATH on Apple Silicon Ninja: Remove cleandead on regeneration Utilities/Release: Update macOS Qt 5.9 build for platform versioning cmake-gui: Restore completion during path editing CMake 3.19.2 Craig Scott (4): Help: xref variable that cmake_minimum_required() sets Help: Mention how OPTIMIZE_DEPENDENCIES is initialized Help: Re-sort indexes in the manuals Help: Clarify scope details of deferred call ids for cmake_language() Cristian Adam (1): PCH: Fix compiler errors on iOS multi-arch using Ninja Multi-Config Deniz Bahadir (1): export: Do not fail generation for separate namelink only case Justin LaPolla (1): Cray: Fix Cray compiler detection on new platforms Marc Chevrier (3): FPHSA: ensure it can be used outside 'find_package' Clang on Windows: 'LINKER:' prefix must be honored CMakePackageConfigHelpers: Relax restrictions on version range Raul Tambre (2): CUDA: Fix user-set architectures during detection with Visual Studio macOS: Add architecture flags only for native ASM dialect Robert Maynard (7): Modules: Rename Internal/CMake{CheckCompiler => TryCompilerOrLinker}Flag ISPC: Ninja properly compute ISPC_HEADER_DIRECTORY location ISPC: Handle OBJECT sources in different directories Document CMP0112 covers $ ISPC: Treat system includes as '-I' includes FindGLUT: Handle Mojave and Big Sur 'tbd' framework files ISPC: Generated Headers suffix configurable with a better default Sam Freed (1): Help: Fix presets typo (longDescription to displayName) Stephen Kelly (1): QNX: Do not disable compiler extensions for CMake itself Thomas Bernard (2): llvm-rc: Force C language for the clang gnu frontend llvm-rc: Add CMAKE_VFS_OVERLAY to the preprocessing flags
[ANNOUNCE] CMake 3.19.1 available for download
We are pleased to announce that CMake 3.19.1 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.19.1 since 3.19.0: Brad King (10): ci: update to use CMake 3.19.0 gitlab-ci: update macOS jobs to use Xcode 12.0 Revert "specify language flag when source LANGUAGE property is set" FindGTest: Revert "Allow either "Debug" or "Release" configurations." Makefiles: Fix CMAKE_EXPORT_COMPILE_COMMANDS crash with custom compile rule Xcode: Fix custom command work-dir placeholders in "new build system" Tests: Match RunCMake.CMP0111 stderr more strictly cmTarget: Do not enforce CMP0111 on imported INTERFACE libraries cmVisualStudio10TargetGenerator: Avoid GetFullPath on INTERFACE library CMake 3.19.1 Kyle Edwards (1): cmGlobalGenerator: FindMakeProgram() at a generator-specific time Marc Chevrier (1): cmFileTime: Fix overflow on time computation Nikita Nemkin (1): Help: Fix `.. versionadded` directives for CTEST_CUSTOM_* variables Raul Tambre (2): CUDA: Clang CUDA 11.1 support CUDA: Error if can't determine toolkit library root
[ANNOUNCE] CMake 3.19.0 available for download
I am happy to announce that CMake 3.19.0 is now available for download at: https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.19 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.19/release/3.19.html Some of the more significant changes in CMake 3.19 are: * "cmake(1)" and "cmake-gui(1)" now recognize "CMakePresets.json" and "CMakeUserPresets.json" files (see "cmake-presets(7)"). * The "Xcode" generator now uses the Xcode “new build system” when generating for Xcode 12.0 or higher. See the "CMAKE_XCODE_BUILD_SYSTEM" variable. One may use "-T buildsystem=1" to switch to the legacy build system. * The Visual Studio Generators for VS 2015 and above gained support for the Visual Studio Tools for Android. One may now set "CMAKE_SYSTEM_NAME" to "Android" to generate ".vcxproj" files for the Android tools. * CMake learned to support "ISPC" as a first-class language that can be enabled via the "project()" and "enable_language()" commands. "ISPC" is currently supported by the Makefile Generators and the "Ninja" generator on Linux, macOS, and Windows using the Intel ISPC compiler. * "CUDA" language support for Clang now supports separable compilation ("CUDA_SEPARABLE_COMPILATION") * The "CMake GUI" now has an environment variable editor. * The "file(GENERATE)" command gained a new "TARGET" keyword to support resolving target-dependent generator expressions. * The "CMAKE_OPTIMIZE_DEPENDENCIES" variable was added to initialize the new "OPTIMIZE_DEPENDENCIES" target property and avoid unnecessarily building dependencies for a static library. * The "CheckCompilerFlag" module has been added to generalize "CheckCCompilerFlag" and "CheckCXXCompilerFlag" to more languages. It also supports the "CUDA" and "ISPC" languages. * The "CheckSourceCompiles" module has been added to generalize "CheckCSourceCompiles" and "CheckCXXSourceCompiles" to more languages. It also supports the "CUDA" and "ISPC" languages. * The "CheckSourceRuns" module has been added to generalize "CheckCSourceRuns" and "CheckCXXSourceRuns" to more languages. It also supports the "CUDA" language. * The "FindCUDAToolkit" module gained support for finding CUDA toolkits that do not contain "nvcc", as well as for finding scattered toolkit installations when cross-compiling. * Interface Libraries may now have source files added via "add_library()" or "target_sources()". Those with sources will be generated as part of the build system. * Compatibility with versions of CMake older than 2.8.12 is now deprecated and will be removed from a future version. Calls to "cmake_minimum_required()" or "cmake_policy()" that set the policy version to an older value now issue a deprecation diagnostic. CMake 3.19 Release Notes Changes made since CMake 3.18 include the following. New Features Presets --- * "cmake(1)" and "cmake-gui(1)" now recognize "CMakePresets.json" and "CMakeUserPresets.json" files (see "cmake-presets(7)"). Generators -- * The "Xcode" generator now uses the Xcode “new build system” when generating for Xcode 12.0 or higher. See the "CMAKE_XCODE_BUILD_SYSTEM" variable. One may use "-T buildsystem=1" to switch to the legacy build system. * The "Xcode" generator gained support for linking libraries and frameworks via the *Link Binaries With Libraries* build phase instead of always by embedding linker flags directly. This behavior is controlled by a new "XCODE_LINK_BUILD_PHASE_MODE" target property, which is initialized by a new "CMAKE_XCODE_LINK_BUILD_PHASE_MODE" variable. * The Visual Studio Generators for VS 2015 and above gained support for the Visual Studio Tools for Android. One may now set "CMAKE_SYSTEM_NAME" to "Android" to generate ".vcxproj" files for the Android tools. Languages - * CMake learned to support "ISPC" as a first-class language that can be enabled via the "project()" and "enable_language()" commands. "ISPC" is currently supported by the Makefile Generators and the "Ninja" generator on Linux, macOS, and Windows using the Intel ISPC compiler. * "CUDA" language support for Clang now includes: * separable compilation ("CUDA_SEPARABLE_COMPILATION"), and * finding scattered toolkit installations when cross-compiling. File-Based API -- * The "cmake-file-api(7)" “codemodel” version 2 "version" field has been updated to 2.2. * The "cmake-file-api(7)" “codemodel” version 2 “target” object gained a new "languageStandard" field in the "compileGroups" objects. Command-Line * The "cmake(1)" command-line tool’s "--install" mode gained a "-- default-directory-permissions" option. * "cmake(1)" gained a "-E create_hardlink" command-line tool that can be used to create hardlinks between files. GUI --- * The "CMake GUI" now has an environment variable
[ANNOUNCE] CMake 3.18.5 available for download
We are pleased to announce that CMake 3.18.5 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.18.5 since 3.18.4: Brad King (5): clang-format: Fix include block order in ctest.cxx and cpack.cxx cmConsoleBuf: Factor out cout/cerr console buffer management FindRuby: Restore compatibility variable RUBY_VENDORLIB_DIR Xcode: Extract CMAKE__COMPILER from compiler id with multiple archs CMake 3.18.5 Johnny Jazeix (1): cmake: Fix '-E cat' command for binary files on Windows Kyle Edwards (1): Ninja Multi-Config: Don't try to calculate dependencies for "all" Raul Tambre (1): VS: Don't compute CUDA options unless necessary
[ANNOUNCE] CMake 3.19.0-rc3 now ready for testing!
I am proud to announce the third CMake 3.19 release candidate. https://cmake.org/download/ The first two 3.19.0 release candidates included the "cmake_path()" command. This has been removed in rc3 pending further development. Documentation is available at: https://cmake.org/cmake/help/v3.19 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.19/release/3.19.html Some of the more significant changes in CMake 3.19 are: * "cmake(1)" and "cmake-gui(1)" now recognize "CMakePresets.json" and "CMakeUserPresets.json" files (see "cmake-presets(7)"). * The "Xcode" generator now uses the Xcode “new build system” when generating for Xcode 12.0 or higher. See the "CMAKE_XCODE_BUILD_SYSTEM" variable. One may use "-T buildsystem=1" to switch to the legacy build system. * The Visual Studio Generators for VS 2015 and above gained support for the Visual Studio Tools for Android. One may now set "CMAKE_SYSTEM_NAME" to "Android" to generate ".vcxproj" files for the Android tools. * CMake learned to support "ISPC" as a first-class language that can be enabled via the "project()" and "enable_language()" commands. "ISPC" is currently supported by the Makefile Generators and the "Ninja" generator on Linux, macOS, and Windows using the Intel ISPC compiler. * "CUDA" language support for Clang now supports separable compilation ("CUDA_SEPARABLE_COMPILATION") * The "CMake GUI" now has an environment variable editor. * The "file(GENERATE)" command gained a new "TARGET" keyword to support resolving target-dependent generator expressions. * The "CMAKE_OPTIMIZE_DEPENDENCIES" variable was added to initialize the new "OPTIMIZE_DEPENDENCIES" target property and avoid unnecessarily building dependencies for a static library. * The "CheckCompilerFlag" module has been added to generalize "CheckCCompilerFlag" and "CheckCXXCompilerFlag" to more languages. It also supports the "CUDA" and "ISPC" languages. * The "CheckSourceCompiles" module has been added to generalize "CheckCSourceCompiles" and "CheckCXXSourceCompiles" to more languages. It also supports the "CUDA" and "ISPC" languages. * The "CheckSourceRuns" module has been added to generalize "CheckCSourceRuns" and "CheckCXXSourceRuns" to more languages. It also supports the "CUDA" language. * The "FindCUDAToolkit" module gained support for finding CUDA toolkits that do not contain "nvcc", as well as for finding scattered toolkit installations when cross-compiling. * Interface Libraries may now have source files added via "add_library()" or "target_sources()". Those with sources will be generated as part of the build system. * Compatibility with versions of CMake older than 2.8.12 is now deprecated and will be removed from a future version. Calls to "cmake_minimum_required()" or "cmake_policy()" that set the policy version to an older value now issue a deprecation diagnostic. CMake 3.19 Release Notes Changes made since CMake 3.18 include the following. New Features Presets --- * "cmake(1)" and "cmake-gui(1)" now recognize "CMakePresets.json" and "CMakeUserPresets.json" files (see "cmake-presets(7)"). Generators -- * The "Xcode" generator now uses the Xcode “new build system” when generating for Xcode 12.0 or higher. See the "CMAKE_XCODE_BUILD_SYSTEM" variable. One may use "-T buildsystem=1" to switch to the legacy build system. * The "Xcode" generator gained support for linking libraries and frameworks via the *Link Binaries With Libraries* build phase instead of always by embedding linker flags directly. This behavior is controlled by a new "XCODE_LINK_BUILD_PHASE_MODE" target property, which is initialized by a new "CMAKE_XCODE_LINK_BUILD_PHASE_MODE" variable. * The Visual Studio Generators for VS 2015 and above gained support for the Visual Studio Tools for Android. One may now set "CMAKE_SYSTEM_NAME" to "Android" to generate ".vcxproj" files for the Android tools. Languages - * CMake learned to support "ISPC" as a first-class language that can be enabled via the "project()" and "enable_language()" commands. "ISPC" is currently supported by the Makefile Generators and the "Ninja" generator on Linux, macOS, and Windows using the Intel ISPC compiler. * "CUDA" language support for Clang now includes: * separable compilation ("CUDA_SEPARABLE_COMPILATION"), and * finding scattered toolkit installations when cross-compiling. File-Based API -- * The "cmake-file-api(7)" “codemodel” version 2 "version" field has been updated to 2.2. * The "cmake-file-api(7)" “codemodel” version 2 “target” object gained a new "languageStandard" field in the "compileGroups" objects. Command-Line * The "cmake(1)" command-line tool’s "--install" mode gained a "-- default-directory-permissions" option. * "cmake(1)" gained a "-E create_hardlink"
[ANNOUNCE] CMake 3.19.0-rc2 now ready for testing!
mmand now requires permission to execute but not to read the file found. See policy "CMP0109". * An imported target missing its location property fails during generation if the location is used. See policy "CMP0111". * The following target-based generator expressions that query for directory or file name components no longer add a dependency on the evaluated target. See policy "CMP0112". * "TARGET_FILE_DIR" * "TARGET_LINKER_FILE_BASE_NAME" * "TARGET_LINKER_FILE_NAME" * "TARGET_LINKER_FILE_DIR" * "TARGET_SONAME_FILE_NAME" * "TARGET_SONAME_FILE_DIR" * "TARGET_PDB_FILE_NAME" * "TARGET_PDB_FILE_DIR" * "TARGET_BUNDLE_DIR" * "TARGET_BUNDLE_CONTENT_DIR" * Makefile Generators no longer repeat custom commands from target dependencies. See policy "CMP0113". * The "ExternalProject" module handling of step target dependencies has been revised. See policy "CMP0114". * The "OSX_ARCHITECTURES" target property is now respected for the "ASM" language. * If "CUDA" compiler detection fails with user-specified "CMAKE_CUDA_ARCHITECTURES" or "CMAKE_CUDA_HOST_COMPILER", an error is raised. Changes made since CMake 3.19.0-rc1: Ben Boeckel (3): ci: use a patched sccache on macOS ci: update to use CMake 3.18.4 ci: update to Qt 5.15.1 Ben McMorran (1): Help: Add JSON schema for CMakePresets.json Brad King (12): cmake-gui: Attach icons only to main GUI executables clang-format: Fix include block order in ctest.cxx and cpack.cxx cmConsoleBuf: Factor out cout/cerr console buffer management Tests: Add cases for CheckSource{Compiles,Runs} bad arguments Fix regression in test/install/package configuration selection CMP0111: Clarify that the new error is on a missing property setting find_package: Fix regression in searching root prefix ci: add Python to PATH on Windows FindBoost: Honor Boost_NO_SYSTEM_PATHS when finding upstream BoostConfig FindBoost: Honor BOOST_ROOT when finding upstream BoostConfig FindRuby: Restore compatibility variable RUBY_VENDORLIB_DIR CMake 3.19.0-rc2 Craig Scott (1): Help: Cleanup typos and grammar for the 3.19 release Cristian Adam (1): file(CONFIGURE): Allow angle brackets in content Deniz Bahadir (1): add_custom_command: Properly recognize if sources depend on config Felipe Torrezan (1): IAR: Use .o object file extension with IAR-Ilink toolchains Gusts Kaksis (1): Xcode: Fix regression that automatically links libraries in source list Issam E. Maghni (2): bootstrap: add samu as known ninja processors bootstrap: add smake as known make processors Johnny Jazeix (1): cmake: Fix '-E cat' command for binary files on Windows Kyle Edwards (21): Help: Fix invalid code-block in cmake(1) manual CMake GUI: Disable preset fields instead of hiding them Help: Move CMakePresets.json documentation into a separate file Help: s/unusedVars/unusedCli/ Help: Move vendor field into example Help: Show multiple ways of doing cacheVariables Help: Show environment field Help: Add documentation for debug field Help: Add inheritance to CMakePresets.json example Help: Make architecture and toolset descriptions generic Help: Clarify purpose of warnings and errors Tests: Add JSON schema validation to CMakePresets.json tests CI: Install jsonschema for schema testing CMakePresets.json: Properly report macro expansion errors CMakePresets.json: Allow boolean for cache variable value CMakePresets.json: Add ${sourceDirName} macro CMakePresets.json: Split cmakeGeneratorConfig field CMakePresets.json: Rework how --preset argument is handled Ninja Multi-Config: Don't try to calculate dependencies for "all" ccmake: Don't list --preset in --help CMake GUI: Add --browse-manual argument Marc Chevrier (2): FindPython: Add support of version 3.10 cmake_path: Enhance documentation Michael Hirsch (1): CheckSource{Runs,Compiles}: Fix default Fortran source extension Raul Tambre (1): VS: Don't compute CUDA options unless necessary Robert Bozzetto (1): separate_arguments: Fix crash on *_COMMAND with no arguments Robert Maynard (3): cmake: command arguments which use '=' behave consistently Modules: Do not implicitly add new functions via old Check Modules CUDA: Use MSVC version to determine supported C++ standard levels Volker Jacht (1): VS: Remove flag table entries for Fortran /Z* flags
[ANNOUNCE] CMake 3.19.0-rc1 now ready for testing!
I am proud to announce the first CMake 3.19 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.19 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.19/release/3.19.html Some of the more significant changes in CMake 3.19 are: * "cmake(1)" and "cmake-gui(1)" now recognize "CMakePresets.json" and "CMakeUserPresets.json" files. * The "Xcode" generator now uses the Xcode “new build system” when generating for Xcode 12.0 or higher. See the "CMAKE_XCODE_BUILD_SYSTEM" variable. One may use "-T buildsystem=1" to switch to the legacy build system. * The Visual Studio Generators for VS 2015 and above gained support for the Visual Studio Tools for Android. One may now set "CMAKE_SYSTEM_NAME" to "Android" to generate ".vcxproj" files for the Android tools. * CMake learned to support "ISPC" as a first-class language that can be enabled via the "project()" and "enable_language()" commands. "ISPC" is currently supported by the Makefile Generators and the "Ninja" generator on Linux, macOS, and Windows using the Intel ISPC compiler. * "CUDA" language support for Clang now supports separable compilation ("CUDA_SEPARABLE_COMPILATION") * The "CMake GUI" now has an environment variable editor. * The "cmake_path()" command was added for operations on filesystem paths. * The "file(GENERATE)" command gained a new "TARGET" keyword to support resolving target-dependent generator expressions. * The "CMAKE_OPTIMIZE_DEPENDENCIES" variable was added to initialize the new "OPTIMIZE_DEPENDENCIES" target property and avoid unnecessarily building dependencies for a static library. * The "CheckCompilerFlag" module has been added to generalize "CheckCCompilerFlag" and "CheckCXXCompilerFlag" to more languages. It also supports the "CUDA" and "ISPC" languages. * The "CheckSourceCompiles" module has been added to generalize "CheckCSourceCompiles" and "CheckCXXSourceCompiles" to more languages. It also supports the "CUDA" and "ISPC" languages. * The "CheckSourceRuns" module has been added to generalize "CheckCSourceRuns" and "CheckCXXSourceRuns" to more languages. It also supports the "CUDA" language. * The "FindCUDAToolkit" module gained support for finding CUDA toolkits that do not contain "nvcc", as well as for finding scattered toolkit installations when cross-compiling. * Interface Libraries may now have source files added via "add_library()" or "target_sources()". Those with sources will be generated as part of the build system. * Compatibility with versions of CMake older than 2.8.12 is now deprecated and will be removed from a future version. Calls to "cmake_minimum_required()" or "cmake_policy()" that set the policy version to an older value now issue a deprecation diagnostic. CMake 3.19 Release Notes Changes made since CMake 3.18 include the following. New Features Presets --- * "cmake(1)" and "cmake-gui(1)" now recognize "CMakePresets.json" and "CMakeUserPresets.json" files. Generators -- * The "Xcode" generator now uses the Xcode “new build system” when generating for Xcode 12.0 or higher. See the "CMAKE_XCODE_BUILD_SYSTEM" variable. One may use "-T buildsystem=1" to switch to the legacy build system. * The "Xcode" generator gained support for linking libraries and frameworks via the *Link Binaries With Libraries* build phase instead of always by embedding linker flags directly. This behavior is controlled by a new "XCODE_LINK_BUILD_PHASE_MODE" target property, which is initialized by a new "CMAKE_XCODE_LINK_BUILD_PHASE_MODE" variable. * The Visual Studio Generators for VS 2015 and above gained support for the Visual Studio Tools for Android. One may now set "CMAKE_SYSTEM_NAME" to "Android" to generate ".vcxproj" files for the Android tools. Languages - * CMake learned to support "ISPC" as a first-class language that can be enabled via the "project()" and "enable_language()" commands. "ISPC" is currently supported by the Makefile Generators and the "Ninja" generator on Linux, macOS, and Windows using the Intel ISPC compiler. * "CUDA" language support for Clang now includes: * separable compilation ("CUDA_SEPARABLE_COMPILATION"), and * finding scattered toolkit installations when cross-compiling. File-Based API -- * The "cmake-file-api(7)" “codemodel” version 2 "version" field has been updated to 2.2. * The "cmake-file-api(7)" “codemodel” version 2 “target” object gained a new "languageStandard" field in the "compileGroups" objects. Command-Line * The "cmake(1)" command-line tool’s "--install" mode gained a "-- default-directory-permissions" option. * "cmake(1)" gained a "-E create_hardlink" command-line tool that can be used to create hardlinks between files. GUI --- * The "CMake GUI" now has an
[ANNOUNCE] CMake 3.18.4 available for download
We are pleased to announce that CMake 3.18.4 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.18.4 since 3.18.3: Brad King (3): FindJNI: Add aarch64 support VS: Populate `std:c{11,17}` flag table entries for v142 CMake 3.18.4 Cristian Adam (1): OBJCXX: Fix regression for compiling cpp files as objcxx Kinan Mahdi (1): VS: Fix regression in C# source links Marc Chevrier (1): FindPython: Fix erroneous regex in ABI check Shoaib Meenai (1): Clang: Look for llvm-lib when using MSVC-like front-end zasdfg bnm (1): FindCUDA/select_compute_arch: Add CUDA 11.1 and SM86 support
[ANNOUNCE] CMake 3.18.3 available for download
We are pleased to announce that CMake 3.18.3 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.18.3 since 3.18.2: Alexandru Croitor (1): AutoGen: Fix moc and uic dependencies when building Qt itself Ben McMorran (1): foreach: Fix crash parsing integer out of range Brad King (5): gitlab-ci: Prefer MR rules for any pipeline associated with a MR Help: Update 3.18.2 release notes to mention 3.16.9 and 3.17.5 gitlab-ci: update macOS jobs to use Xcode 11.7 Check*CompilerFlag: Do not set result as a normal variable too CMake 3.18.3 Cristian Adam (2): PCH: Mark CMake PCH source files as -x -header PCH: Fix 30s wait for VS2008 when used via -Tv90 Joerg Bornemann (2): AutoMoc: Restore support for re-running after project file changes AutoMoc: Re-run moc if a dependency is missing Josef Angstenberger (1): file(GENERATE): Create output file structures for all directories first Kyle Edwards (5): Tests: Pass additional Qt information to Ninja and NMC tests Ninja Multi-Config: Fix clean:all target Ninja Multi-Config: Fix cleaning of utility targets with commands Ninja Multi-Config: Fix dependencies of utility targets Ninja Multi-Config: Fix dependencies of custom commands Malcolm Parsons (1): FindJNI: Add arm64 support Marc Chevrier (4): UseSWIG: Update option -interface usage FindPython: enhance ABI checks against include directory FindPython: CMP0012 must be set to NEW ARMClang: Fix link line generation after addition of armlink support Michael Hirsch (1): FindMatlab: add R2020b => 9.9 Raul Tambre (1): MSVC: Record support for c_static_assert Robert Maynard (1): CUDA: Support setting CUDA14/17 when using MSVC Sumit Bhardwaj (1): Implement cm::static_reference_cast by declval
[ANNOUNCE] CMake 3.17.5 available for download
We are pleased to announce that CMake 3.17.5 is now available for download at: https://cmake.org/download/ Thanks for your support! - Changes in 3.17.5 since 3.17.4: Alexandru Croitor (2): AutoGen: Fix over-specified direct dependencies of custom command AutoGen: Add test to check for correct AutoMoc dependencies Brad King (2): Tests: Isolate RunCMake.FindPkgConfig from caller environment CMake 3.17.5 Joerg Bornemann (3): Autogen: Turn off moc path prefix generation by default AutoMoc: Restore support for re-running after project file changes Help: Add 3.17.5 release note about AUTOMOC_PATH_PREFIX default change Kyle Edwards (1): Ninja: Restore shorter path to response files Sumit Bhardwaj (1): Implement cm::static_reference_cast by declval
[ANNOUNCE] CMake 3.16.9 available for download
We are pleased to announce that CMake 3.16.9 is now available for download. You can find the 3.16.9 release at: https://github.com/Kitware/CMake/releases/tag/v3.16.9 Thanks for your support! - Changes in 3.16.9 since 3.16.8: Brad King (2): Tests: Isolate RunCMake.FindPkgConfig from caller environment CMake 3.16.9 Joerg Bornemann (2): Autogen: Turn off moc path prefix generation by default Help: Add 3.16.9 release note about AUTOMOC_PATH_PREFIX default change
ANNOUNCE] CMake 3.18.2 available for download
We are pleased to announce that CMake 3.18.2 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.18.2 since 3.18.1: Alexandru Croitor (2): AutoGen: Fix over-specified direct dependencies of custom command AutoGen: Add test to check for correct AutoMoc dependencies Axel Huebl (1): FindMPI: Fix regression in pthread guard Ben Boeckel (1): FPHSA: detect inclusion between find modules Brad King (8): Tests: Isolate RunCMake.FindPkgConfig from caller environment FindRuby: Restore compatibility variable RUBY_INCLUDE_PATH Xcode: Explicitly turn off signing in try_compile projects PCH: Avoid Apple-specific architecture flags on other platforms gitlab-ci: add 'cmake' tag to all jobs Tests: Fix RunCMake.try_compile test for C standards with MSVC 19.27 gitlab-ci: Update Windows builds to MSVC 19.27 CMake 3.18.2 Craig Scott (2): ExternalProject: Stop patch target from always appearing out-of-date ExternalProject: Stop configure target from always appearing out-of-date Cristian Adam (1): PCH: Avoid unnecessary 30s delay on MSBuild Generator with REUSE_FROM Daniele E. Domenichelli (1): FindRuby: Add documentation for deprecated variables Joerg Bornemann (2): Autogen: Turn off moc path prefix generation by default Help: Add 3.18.2 release note about AUTOMOC_PATH_PREFIX default change Kyle Edwards (1): Ninja: Restore shorter path to response files Laurits Riple (1): GoogleTest: Restore support for list arguments in TEST_EXECUTOR Marc Chevrier (3): FindPython: ensure user's policies are respected FindPython: manage SOABI for all Python versions FindPython: enhance robustness of version extraction from library name Raul Tambre (1): MSVC: Record support for C11 and c_restrict Robert Maynard (1): CMakeFindBinUtils: Always consider plain binutils when not cross-compiling Seth R Johnson (1): FindHDF5: fix compiler detection when HL is disabled Thomas Bernard (1): llvm-rc: Fix quoting of path to cmake in CMAKE_RC_COMPILE_OBJECT
[ANNOUNCE] CMake 3.18.1 available for download
We are pleased to announce that CMake 3.18.1 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.18.1 since 3.18.0: Ben Boeckel (1): gitlab-ci: avoid failing dependent steps Brad King (16): cmGlobalXCodeGenerator: Save CMAKE_SYSTEM_NAME in member Swift: Fix regression in linking to interface libraries Xcode: Explicitly specify default native architecture on macOS bootstrap: Add options to control use of system nghttp2 GHS: Fix crash when GHS_NO_SOURCE_GROUP_FILE property is not defined Auxiliary: Add options to control Vim and Emacs file installation cmake-gui: Fix crash when built with Qt 5.14 or later VS: Restore toleration of target-wide -TP flag with MSVC Xcode: Suppress legacy build system deprecation warning Help: Update file(GET_RUNTIME_DEPENDENCIES) prose to match option names FindXalanC: Fix version parsing for XalanC 1.12 bootstrap: Fix support for Intel compiler with modern GNU system compiler Compilers: Ignore -print-sysroot prefix when it is '/' add_test: Revert "Allow special characters in test name" Clang: Fix fallback compile features when simulating old MSVC versions CMake 3.18.1 Cristian Adam (1): Unity Builds: Do not set SKIP_AUTOGEN to source files Julien Schueller (1): centos5: Fix FTBFS with strdup Kyle Edwards (1): Ninja Multi-Config: Make link response files per-config Mike Gelfand (1): FindCURL: Fix list index check after search Nate Avers (1): ExternalProject: omit --no-checkout from git clone when using git 2.20.x. Stephan Rohmen (2): Graphviz: Restore support for per-target dependency graph options Tests: Cover Graphviz support for per-target dependency graph options
[ANNOUNCE] CMake 3.18.0 available for download
I am happy to announce that CMake 3.18.0 is now available for download at: https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.18 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.18/release/3.18.html Some of the more significant changes in CMake 3.18 are: * The "CUDA" language can now be compiled using Clang on non-Windows platforms. Separable compilation is not yet supported on any platform. * "cmake(1)" gained support for profiling of CMake scripts through the parameters "--profiling-output" and "--profiling-format". * The "add_library()" and "add_executable()" commands learned to create Alias Targets referencing non-"GLOBAL" Imported Targets. * The "cmake_language()" command was added for meta-operations on scripted or built-in commands, starting with a mode to "CALL" other commands, and "EVAL CODE" to inplace evaluate a CMake script. * The "file(CONFIGURE)" subcommand was created in order to replicate the "configure_file()" functionality without resorting to a pre- existing file on disk as input. The content is instead passed as a string. * The "find_program()", "find_library()", "find_path()" and "find_file()" commands gained a new "REQUIRED" option that will stop processing with an error message if nothing is found. * A "CMAKE_CUDA_ARCHITECTURES" variable was added to specify CUDA output architectures. Users are encouraged to use this instead of specifying options manually, as this approach is compiler-agnostic. The variable is initialized automatically when "CMAKE_CUDA_COMPILER_ID" is "NVIDIA". The variable is used to initialize the new "CUDA_ARCHITECTURES" target property. See policy "CMP0104". * The "UNITY_BUILD_MODE" target property was added to tell generators which algorithm ("BATCH", "GROUP") to use for grouping included source files. * The "CheckLinkerFlag" module has been added to provide a facility to check validity of link flags. * The "$" and "$" "generator expressions" were added to manage device and host link steps. * The "$" and "$" "generator expressions" were added. * "ctest(1)" gained a new "CTEST_RESOURCE_SPEC_FILE" variable, which can be used to specify a resource specification file. * "ccmake(1)" learned to read a "CCMAKE_COLORS" environment variable to customize colors. * On Windows, the "Ninja" and "Ninja Multi-Config" generators, when a compiler is not explicitly specified, now select the first compiler (of any name) found in directories listed by the "PATH" environment variable. CMake 3.18 Release Notes Changes made since CMake 3.17 include the following. New Features Languages - * The "CUDA" language can now be compiled using Clang on non-Windows platforms. Separable compilation is not yet supported on any platform. Command-Line * "cmake(1)" gained support for profiling of CMake scripts through the parameters "--profiling-output" and "--profiling-format". * "cmake(1)" gained a "cat" command line option that can be used to concatenate files and print them on standard output. Commands * The "add_library()" and "add_executable()" commands learned to create Alias Targets referencing non-"GLOBAL" Imported Targets. * The "cmake_language()" command was added for meta-operations on scripted or built-in commands, starting with a mode to "CALL" other commands, and "EVAL CODE" to inplace evaluate a CMake script. * The "execute_process()" command gained the "ECHO_OUTPUT_VARIABLE" and "ECHO_ERROR_VARIABLE" options. * The "export()" command now raise an error if used multiple times with same "FILE" without "APPEND". See policy "CMP0103". * The "file()" command gained the "ARCHIVE_CREATE" and "ARCHIVE_EXTRACT" subcommands to expose the "cmake(1)" "-E tar" functionality to CMake scripting code. * The "file(CONFIGURE)" subcommand was created in order to replicate the "configure_file()" functionality without resorting to a pre- existing file on disk as input. The content is instead passed as a string. * The "file(UPLOAD)" command gained "TLS_VERIFY" and "TLS_CAINFO" options to control server certificate verification. * The "find_program()", "find_library()", "find_path()" and "find_file()" commands gained a new "REQUIRED" option that will stop processing with an error message if nothing is found. * The "get_property()" command with "SOURCE" scope gained the "DIRECTORY" and "TARGET_DIRECTORY" options to get a property from the provided directory scope. * The "get_source_file_property()" command gained the "DIRECTORY" and "TARGET_DIRECTORY" options to get a property from the provided directory scope. * The "list()" operation "SORT" gained the "NATURAL" sort option to sort using natural order (see "strverscmp(3)" manual). * The "set_property()" command with the "SOURCE" scope gained the "DIRECTORY" and
[ANNOUNCE] CMake 3.18.0-rc4 is ready for testing
error. See policy "CMP0107". * Linking a target to itself through an alias now raises an error. See policy "CMP0108". * The "FindPackageHandleStandardArgs" module option "REQUIRED_VARS" is now optional if "HANDLE_COMPONENTS" is specified. * The "source_group()" command now also recognizes forward slashes as subgroup delimiters, not just backslashes. * "ctest(1)" now logs environment variables that it sets for each test, either due to the "ENVIRONMENT" property or the resource allocation feature, and submits this log to CDash. It does not log environment variables that were set outside of CTest. * When building CMake itself from source and not using a system- provided libcurl, HTTP/2 support is now enabled for commands supporting network communication via "http(s)", such as "file(DOWNLOAD)", "file(UPLOAD)", and "ctest_submit()". The precompiled binaries provided on "cmake.org" now support HTTP/2. * The "cmake-file-api(7)" “codemodel” version 2 "version" field has been updated to 2.1. * The "cmake-file-api(7)" “codemodel” version 2 “target” object gained a new "precompileHeaders" field in the "compileGroups" objects. Changes made since CMake 3.18.0-rc3: Alexandru Croitor (3): set_property: Fix name of TARGET_DIRECTORY option in error messages set_property: Allow both DIRECTORY and TARGET_DIRECTORY together Help: Update get_property and get_source_file_property docs Axel Huebl (1): FindMPI: Deny -fexceptions from NVCC Brad King (7): curl: Update script to get curl 7.71.1 cmake: Tolerate nullptr from uv_default_loop Restore handling of build directory inside a symlinked path cmake-gui: Fix compilation as C++14 with Qt 5.14 FindJava: Update check to avoid accepting macOS stub 'java' as Java FindOpenMP: Set version variables every time CMake runs CMake 3.18.0-rc4 Craig Scott (2): Help: FRAMEWORK_MULTI_CONFIG_POSTFIX example should use actual config Help: Update file(ARCHIVE...) synopsis for renamed options Curl Upstream (1): curl 2020-06-30 (5a1fc8d3) Felix Yan (1): FindLua: Add support for Lua 5.4 Joachim Wuttke (h) (1): Help: Fix CPack module docs on config file for source package Kyle Edwards (1): Help: Clarify search order for resource spec file Michael Hirsch (2): FindBLAS: Handle Windows Intel MKLROOT with backslash FindLAPACK: Handle Windows Intel MKLROOT with backslash Robert Maynard (1): FindMPI: Pass -pthread to NVCC through -Xlinker for device linking Sumit Bhardwaj (1): cmext: Implement cm::static_reference_cast by declval Torgeir Rusten (1): IRSL: Fix path to Intel 32-bit redist libraries zasdfg bnm (2): FindCUDA/select_compute_arch: Add CUDA 11 and Ampere support FindCUDA/select_compute_arch: generate PTX for the latest architecture
[ANNOUNCE] CMake 3.18.0-rc3 is ready for testing
error. See policy "CMP0107". * Linking a target to itself through an alias now raises an error. See policy "CMP0108". * The "FindPackageHandleStandardArgs" module option "REQUIRED_VARS" is now optional if "HANDLE_COMPONENTS" is specified. * The "source_group()" command now also recognizes forward slashes as subgroup delimiters, not just backslashes. * "ctest(1)" now logs environment variables that it sets for each test, either due to the "ENVIRONMENT" property or the resource allocation feature, and submits this log to CDash. It does not log environment variables that were set outside of CTest. * When building CMake itself from source and not using a system- provided libcurl, HTTP/2 support is now enabled for commands supporting network communication via "http(s)", such as "file(DOWNLOAD)", "file(UPLOAD)", and "ctest_submit()". The precompiled binaries provided on "cmake.org" now support HTTP/2. * The "cmake-file-api(7)" “codemodel” version 2 "version" field has been updated to 2.1. * The "cmake-file-api(7)" “codemodel” version 2 “target” object gained a new "precompileHeaders" field in the "compileGroups" objects. ------------ Changes made since CMake 3.18.0-rc2: Brad King (15): Tests: Shorten case names in RunCMake.target_link_libraries-* tests Help: Fix order of FindCUDAToolkit entry in 3.18 release notes try_compile: Do not try to remove '.nfs*' files CUDA: Skip the entire search for nvcc when it is CMAKE_CUDA_COMPILER CUDA: Simplify CMAKE_CUDA_COMPILER_TOOLKIT_ROOT computation CUDA: Remove unused variables while determining compiler CUDA: Re-order some logic for determining the compiler CUDA: Fix CMAKE_CUDA_COMPILER_TOOLKIT_ROOT detection in Visual Studio Tests: Drop redundant FindModulesExecuteAll test curl: Update script to get curl 7.71.0 curl: Set build options the way we need for CMake Intel: Add flags for C++20 find_library: Check that library files are readable file: Fix CONFIGURE output relative path CMake 3.18.0-rc3 Christopher Tetreault (1): Help: Update docs for failure result of get_target_property Craig Scott (12): Help: Fix formatting error and consistency for gtest_discover_tests() Help: Add missing PCH_WARN_INVALID docs and related cleanups Help: Formatting, crossref for FRAMEWORK_MULTI_CONFIG_POSTFIX_ Help: Add missing cross-referencing for generator expressions Help: Correct and condense examples for VS_SOLUTION_DEPLOY Help: Explicitly say transaction, don't abbreviate to trans Tests: Don't ask for things not required for GoogleTest GoogleTest: Replace SEND_ERROR with FATAL_ERROR Help: Add CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE to release notes Help: Fix contents indenting for file(ARCHIVE_...) subcommands file(ARCHIVE_CREATE): Rename TYPE option to COMPRESSION file(ARCHIVE*): Collapse FILES and DIRECTORY options Curl Upstream (1): curl 2020-06-23 (e9db32a0) Daniel Colascione (1): Makefile: Fix regression in .SILENT rule Kyle Edwards (1): Help: Update FileAPI codemodel version to 2.1, add release notes Lihua Zhao (1): VxWorks: Add Platform ID for Modules/CMakePlatformId.h.in Marc Chevrier (1): Tests: Split RunCMake.target_link_libraries test Osama Moharam (1): ARMClang: Fix typo in -Xlinker flag Raul Tambre (1): CUDA: Fix NVCC executable search during compiler detection Robert Maynard (3): CudaToolkit: Update for new/removed libraries in CUDA 11 Help: Better document that CMP0105 controls DEVICE_LINK parsing FindCUDA: Do not search for the deprecated nppicom when CUDA >= 11 Stefan Floeren (1): GoogleTest: Fix name generation for XML_OUTPUT_DIR Yan (1): Find{FLEX,BISON}: Add 'win-' executable names
[ANNOUNCE] CMake 3.18.0-rc1 is ready for testing
I am proud to announce the first CMake 3.18 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.18 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.18/release/3.18.html Some of the more significant changes in CMake 3.18 are: * The "CUDA" language can now be compiled using Clang. This is experimental and still under development. * "cmake(1)" gained support for profiling of CMake scripts through the parameters "--profiling-output" and "--profiling-format". * The "add_library()" and "add_executable()" commands learned to create Alias Targets referencing non-"GLOBAL" Imported Targets. * The "cmake_language()" command was added for meta-operations on scripted or built-in commands, starting with a mode to "CALL" other commands, and "EVAL CODE" to inplace evaluate a CMake script. * The "file(CONFIGURE)" subcommand was created in order to replicate the "configure_file()" functionality without resorting to a pre- existing file on disk as input. The content is instead passed as a string. * The "find_program()", "find_library()", "find_path()" and "find_file()" commands gained a new "REQUIRED" option that will stop processing with an error message if nothing is found. * A "CMAKE_CUDA_ARCHITECTURES" variable was added to specify CUDA output architectures. Users are encouraged to use this instead of specifying options manually, as this approach is compiler-agnostic. The variable is initialized automatically when "CMAKE_CUDA_COMPILER_ID" is "NVIDIA". The variable is used to initialize the new "CUDA_ARCHITECTURES" target property. See policy "CMP0104". * The "UNITY_BUILD_MODE" target property was added to tell generators which algorithm ("BATCH", "GROUP") to use for grouping included source files. * The "CheckLinkerFlag" module has been added to provide a facility to check validity of link flags. * The "$" and "$" "generator expressions" were added to manage device and host link steps. * The "$" and "$" "generator expressions" were added. * "ctest(1)" gained a new "CTEST_RESOURCE_SPEC_FILE" variable, which can be used to specify a resource specification file. * "ccmake(1)" learned to read a "CCMAKE_COLORS" environment variable to customize colors. * On Windows, the "Ninja" and "Ninja Multi-Config" generators, when a compiler is not explicitly specified, now select the first compiler (of any name) found in directories listed by the "PATH" environment variable. CMake 3.18 Release Notes Changes made since CMake 3.17 include the following. New Features Languages - * The "CUDA" language can now be compiled using Clang. This is experimental and still under development. Command-Line * "cmake(1)" gained support for profiling of CMake scripts through the parameters "--profiling-output" and "--profiling-format". * "cmake(1)" gained a "cat" command line option that can be used to concatenate files and print them on standard output. Commands * The "add_library()" and "add_executable()" commands learned to create Alias Targets referencing non-"GLOBAL" Imported Targets. * The "cmake_language()" command was added for meta-operations on scripted or built-in commands, starting with a mode to "CALL" other commands, and "EVAL CODE" to inplace evaluate a CMake script. * The "execute_process()" command gained the "ECHO_OUTPUT_VARIABLE" and "ECHO_ERROR_VARIABLE" options. * The "export()" command now raise an error if used multiple times with same "FILE" without "APPEND". See policy "CMP0103". * The "file()" command gained the "ARCHIVE_CREATE" and "ARCHIVE_EXTRACT" subcommands to expose the "cmake(1)" "-E tar" functionality to CMake scripting code. * The "file(CONFIGURE)" subcommand was created in order to replicate the "configure_file()" functionality without resorting to a pre- existing file on disk as input. The content is instead passed as a string. * The "file(UPLOAD)" command gained "TLS_VERIFY" and "TLS_CAINFO" options to control server certificate verification. * The "find_program()", "find_library()", "find_path()" and "find_file()" commands gained a new "REQUIRED" option that will stop processing with an error message if nothing is found. * The "get_property()" command with "SOURCE" scope gained the "DIRECTORY" and "TARGET_DIRECTORY" options to get a property from the provided directory scope. * The "get_source_file_property()" command gained the "DIRECTORY" and "TARGET_DIRECTORY" options to get a property from the provided directory scope. * The "list()" operation "SORT" gained the "NATURAL" sort option to sort using natural order (see "strverscmp(3)" manual). * The "set_property()" command with the "SOURCE" scope gained the "DIRECTORY" and "TARGET_DIRECTORY" options to set properties in the provided directory scopes. * The
[ANNOUNCE] CMake 3.16.8 available for download
We are pleased to announce that CMake 3.16.8 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.16.8 since 3.16.7: Brad King (2): PCH: Fix logic error that incorrectly clears sources during VS generation CMake 3.16.8
[ANNOUNCE] CMake 3.17.3 available for download
We are pleased to announce that CMake 3.17.3 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.17.3 since 3.17.2: Andreas Schönle (1): PCH: Fix REUSE_FROM in multi-config generators Ben Boeckel (1): ExternalProject: expose _ep_cache_args_script to the caller Boris Basic (1): FindBoost: Add 1.73 to known versions Brad King (14): bootstrap: Use 'tr' more portably FindBoost: Update MinGW compiler tag for Boost 1.73 CheckLanguage: Fix forwarding of CMAKE_CUDA_HOST_COMPILER Help: Add 3.17 release note for FindPkgConfig '-isystem' fix FindGTK2: Add harfbuzz target for dependency from pango VS: Fix using PCH from source with COMPILE_OPTIONS XL: Install our Fortran 'cpp' helper script with execute permission MSVC: Use 'pragma system_header' in PCH only on cl 19.13 and above Help: Document OBJC and OBJCXX env vars for Objective C/C++ compilers Objective C/C++: Honor CC and CXX env vars to select compiler Help: Add 3.17.3 release note for Objective C/C++ compiler selection cmGeneratorTarget: Clear AllConfigSources in ClearSourcesCache VS: Restore .sln support for VS Version Selector CMake 3.17.3 Jennifer Green (2): cm_cxx_features: Filter out libhugetlbfs warnings cm_cxx_features: Filter out 'icpc: command line warning #10121' Jonathan Verner (1): CPack-deb: don't add a line with a dot to pkg desc Kyle Edwards (1): Ninja Multi-Config: Make "install" targets depend on default configs Marc Chevrier (4): FindPython: fix error on FPHSA call FindPython: ensure any specified version is correctly handled FindPython: use CMAKE specific variables to look-up debug library Help: clarify add_definitions() and add_compile_definitions() behavior Robert Maynard (5): Help: Correct CMAKE_CUDA_RUNTIME_LIBRARY applicability CUDA: Propagate CMAKE_CUDA_RUNTIME_LIBRARY state to try_compile CUDA: Compute CMAKE_CUDA_RUNTIME_LIBRARY default from toolchain Tests: Add coverage of ctest_test RETURN_VALUE and REPEAT CTest: Make sure NOT_RUN tests show up in the failed test log Rolf Eike Beer (1): FindPkgConfig: also handle "-isystem" prefixes for include directories Vitezslav Cizek (1): FindOpenSSL: Detect OpenSSL 3.0.0
Re: [ANNOUNCE] CMake 3.16.6 available for download
The subject should have been 3.16.7 has been released :( On Wed, May 27, 2020 at 11:15 AM Robert Maynard wrote: > > We are pleased to announce that CMake 3.16.7 is now available for download. > > Please use the latest release from our download page: > https://cmake.org/download/ > > Thanks for your support! > > - > Changes in 3.16.7 since 3.16.6: > > Brad King (14): > AIX: Activate symbol export/import IBM i (OS400) > target_precompile_headers: Fix documented example using genex > Makefiles: Scan Objective C/C++ preprocessor dependencies > Makefiles: Add Objective C/C++ compilations to compile_commands.json > CheckLanguage: Fix forwarding of CMAKE_CUDA_HOST_COMPILER > FindGTK2: Add harfbuzz target for dependency from pango > VS: Fix using PCH from source with COMPILE_OPTIONS > MSVC: Use 'pragma system_header' in PCH only on cl 19.13 and above > Help: Document OBJC and OBJCXX env vars for Objective C/C++ compilers > Objective C/C++: Honor CC and CXX env vars to select compiler > cmGeneratorTarget: Clear AllConfigSources in ClearSourcesCache > Help: Add 3.16.7 release note for FindPkgConfig '-isystem' fix > VS: Restore .sln support for VS Version Selector > CMake 3.16.7 > > Chuck Atkins (1): > FindMPI: Add the pgi compiler wrapper names used by IBM Spectrum MPI > > Rolf Eike Beer (1): > FindPkgConfig: also handle "-isystem" prefixes for include directories
[ANNOUNCE] CMake 3.16.6 available for download
We are pleased to announce that CMake 3.16.7 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.16.7 since 3.16.6: Brad King (14): AIX: Activate symbol export/import IBM i (OS400) target_precompile_headers: Fix documented example using genex Makefiles: Scan Objective C/C++ preprocessor dependencies Makefiles: Add Objective C/C++ compilations to compile_commands.json CheckLanguage: Fix forwarding of CMAKE_CUDA_HOST_COMPILER FindGTK2: Add harfbuzz target for dependency from pango VS: Fix using PCH from source with COMPILE_OPTIONS MSVC: Use 'pragma system_header' in PCH only on cl 19.13 and above Help: Document OBJC and OBJCXX env vars for Objective C/C++ compilers Objective C/C++: Honor CC and CXX env vars to select compiler cmGeneratorTarget: Clear AllConfigSources in ClearSourcesCache Help: Add 3.16.7 release note for FindPkgConfig '-isystem' fix VS: Restore .sln support for VS Version Selector CMake 3.16.7 Chuck Atkins (1): FindMPI: Add the pgi compiler wrapper names used by IBM Spectrum MPI Rolf Eike Beer (1): FindPkgConfig: also handle "-isystem" prefixes for include directories
[ANNOUNCE] CMake 3.17.2 available for download
We are pleased to announce that CMake 3.17.2 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.17.2 since 3.17.1: Alexander Grund (3): BoostScanDeps: Fix typo in numpy handling FindBoost: Simplify Boost_VERSION_STRING comparisons FindBoost: Add support for Boost 1.73 Alexandru Croitor (1): iOS: Fix detection of supported SDK architectures Ben Boeckel (2): FindPython: avoid autoderef in version comparisons FindPython: remove extra dereference Brad King (7): AIX: Activate symbol export/import IBM i (OS400) Ninja: Document that Fortran support is available with Ninja 1.10+ CPack: Do not recurse through directory symlinks target_precompile_headers: Fix documented example using genex Makefiles: Scan Objective C/C++ preprocessor dependencies Makefiles: Add Objective C/C++ compilations to compile_commands.json CMake 3.17.2 Chuck Atkins (1): FindMPI: Add the pgi compiler wrapper names used by IBM Spectrum MPI Craig Scott (4): Help: Fix unescaped asterisks in docs for SKIP_PRECOMPILE_HEADERS Help: Minor grammar cleanups of CMAKE_CURRENT_FUNCTION* docs Help: Add cross-references for CMAKE_CURRENT_FUNCTION* docs Help: Improve wording of CMAKE_CURRENT_FUNCTION_LIST_DIR docs Gregor Jasny (1): Apple: Merge per-arch sysroot parameters if all are the same Harry Mallon (1): file(UPLOAD): Add default ca_certs Kyle Edwards (1): Ninja: Remove config suffix from order-only target Marc Chevrier (2): FindPython: fix python compiler validation FindPython: fix reason failure propagation Orgad Shaneh (1): FindBoost: Prevent warning with boost 1.73 Robert Maynard (1): FindCUDAToolkit searches stub location last
[ANNOUNCE] CMake 3.16.6 available for download
We are pleased to announce that CMake 3.16.6 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.16.6 since 3.16.5: Brad King (4): Makefiles: Fix silencing of nested calls for GNU make 4.3 target_link_libraries: Fix regression in case of $ genex AIX: Install ExportImportList script with execute permission CMake 3.16.6 Err0rC0deX (1): GetPrerequisites: Classify vcruntime libraries as system Jesse Gorzinski (1): libuv: Add support for building on IBM i (OS400) Marc Chevrier (1): FindPython: fix handling when FIND_VIRTUALENV == FIRST Saleem Abdulrasool (1): Swift: Fix quoting of library search paths with spaces ThePrez (1): cmstd: Remove -isystem option for IBM i (OS400)
[ANNOUNCE] CMake 3.17.1 available for download
We are pleased to announce that CMake 3.17.1 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.17.1 since 3.17.0: Ben Boeckel (1): ExternalProject: allow `DOWNLOAD_NO_EXTRACT OFF` Brad King (15): Makefiles: Fix silencing of nested calls for GNU make 4.3 VS: Fix ClangCL toolset compiler path detection Ninja Multi-Config: Fix MSVC showincludes prefix detection CheckIPOSupported: Avoid polluting cache with common name 'result' CTest: Fix reported duration on timeout when grindchild keeps pipes open target_link_libraries: Fix regression in case of $ genex AIX: Install ExportImportList script with execute permission XL: C++14 language level flags are only available on Linux XL: Add comment clarifying why we pretend it has full C++11/14 support CPack/NSIS: Document and check requirement of at least NSIS 3.0 Utilities/Release: Update to openssl 1.1.1f Apple: Improve handling of missing SDKs in CMAKE_APPLE_ARCH_SYSROOTS Apple: Fix mapping CMAKE_APPLE_ARCH_SYSROOTS to custom OSX_ARCHITECTURES cmCursesLongMessageForm: Factor out helper to draw message to form CMake 3.17.1 Craig Scott (5): Help: Minor typos and formatting for XCODE_SCHEME_WORKING_DIRECTORY Help: Add missing XCODE_SCHEME_WORKING_DIRECTORY Help: Fix inaccuracies and omissions in MACHO_* property docs Help: Fix CMAKE_FIND_DEBUG_MODE list formatting Help: Improve discoverability of CMAKE_FIND_DEBUG_MODE Francisco Facioni (1): cmake-gui: Fix use-after-free in Open-possible check Jaak Ristioja (1): Help: Fixed typo in CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst Kyle Edwards (2): Help: Move Ninja Multi-Config variable details into their respective pages Ninja: Make config uppercase in object order target Lucas Wang (1): llvm-rc: Enable preprocessing if CMAKE_RC_COMPILER_INIT is an absolute path Marc Chevrier (3): FindPython: misc. fixes FindPython: fix variable spelling error FindPython: fix handling when FIND_VIRTUALENV == FIRST Sylvain Joubert (1): ccmake: Use incremental rendering for the logs Thomas Bernard (4): llvm-rc: Select preprocessor from active languages llvm-rc: Write depfile to location specified by the generator llvm-rc: Print stderr output when calling tools through cmake_llvm_rc llvm-rc: Restore include path for data after explicit preprocessing
[ANNOUNCE] CMake 3.17.0 available for download
I am happy to announce that CMake 3.17.0 is now available for download at: https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.17 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.17/release/3.17.html Some of the more significant changes in CMake 3.17 are: * "cmake(1)" gained a "Ninja Multi-Config" generator, which is similar to the "Ninja" generator but can be used to build multiple configurations at once. * Visual Studio Generators learned to support per-config sources. Previously only Command-Line Build Tool Generators supported them. * The "Compile Features" functionality now offers meta-features for the CUDA language standard levels (e.g. "cuda_std_03", "cuda_std_14"). See "CMAKE_CUDA_KNOWN_FEATURES". * The "CMAKE_CUDA_RUNTIME_LIBRARY" variable and "CUDA_RUNTIME_LIBRARY" target property were introduced to select the CUDA runtime library used when linking targets that use CUDA. * The "FindCUDAToolkit" module was added to find the CUDA Toolkit without enabling CUDA as a language. * "cmake(1)" gained a "--debug-find" command-line option to enable additional human-readable output on where "find_*" commands search. * The "CMAKE_FIND_DEBUG_MODE" variable was introduced to print extra "find_*" call information during the cmake run to standard error. Output is designed for human consumption and not for parsing. * The "FindCURL" module learned to find CURL using the "CURLConfig.cmake" package configuration file generated by CURL’s cmake buildsystem. It also gained a new "CURL_NO_CURL_CMAKE" option to disable this behavior. * The "FindPython" module has learned to find Python components in active virtual environments managed by "conda". * The "ctest(1)" tool gained a "--no-tests=<[error|ignore]>" option to explicitly set and unify the behavior between direct invocation and script mode if no tests were found. * The "ctest(1)" tool gained a "--repeat :" option to specify conditions in which to repeat tests. This generalizes the existing "--repeat-until-fail " option to add modes for "until-pass" and "after-timeout". * Target link properties "INTERFACE_LINK_OPTIONS", "INTERFACE_LINK_DIRECTORIES" and "INTERFACE_LINK_DEPENDS" are now transitive over private dependencies on static libraries. See policy "CMP0099". * When using MinGW tools, the "find_library()" command no longer finds ".dll" files by default. Instead, it expects ".dll.a" import libraries to be available. * The "Ninja" generator now prefers the first ninja build tool to appear in the "PATH" no matter whether it is called "ninja-build", "ninja", or "samu". Previously the first of those names to appear anywhere in the "PATH" would be preferred. * "cmake(1)" gained a "-E rm" command-line tool that can be used to remove directories and files. This supersedes the existing "-E remove" and "-E remove_directory" tools and has better semantics. CMake 3.17 Release Notes Changes made since CMake 3.16 include the following. New Features Generators -- * "cmake(1)" gained a "Ninja Multi-Config" generator, which is similar to the "Ninja" generator but can be used to build multiple configurations at once. * Visual Studio Generators learned to support per-config sources. Previously only Command-Line Build Tool Generators supported them. * Visual Studio Generators for VS 2010 and above now support specifying the "VCTargetsPath" value for project files in "CMAKE_GENERATOR_TOOLSET" setting. * Visual Studio Generators for VS 2010 and above learned to support .NET Standard and .NET Core. See the "DOTNET_TARGET_FRAMEWORK" target property and associated "CMAKE_DOTNET_TARGET_FRAMEWORK" variable. Languages - * The "Compile Features" functionality now offers meta-features for the CUDA language standard levels (e.g. "cuda_std_03", "cuda_std_14"). See "CMAKE_CUDA_KNOWN_FEATURES". Compilers - * The IBM XL Fortran compiler is now supported by the "Ninja" generator. Command-Line * "cmake(1)" gained a "--debug-find" command-line option to enable additional human-readable output on where "find_*" commands search. * "cmake(1)" gained a "--trace-format" command-line option that can be used to set the "--trace" output format. Currently, the old human readable and the new JSON format are supported. The new JSON format is easier to parse automatically than the existing format. * "cmake(1)" gained a "-E rm" command-line tool that can be used to remove directories and files. This supersedes the existing "-E remove" and "-E remove_directory" tools and has better semantics. Commands * The "add_custom_command()" command learned to interpret paths in "DEPENDS" arguments that are specified relative to the current binary directory. * The "foreach()" command learned a new "ZIP_LISTS" option
[ANNOUNCE] CMake 3.17.0-rc3 is ready for testing
not be fixed without breaking compatibility, and so have been superseded. Other Changes = * The "file API" index file now emits a "multiConfig" flag specifying whether or not the generator supports multiple output configurations. * Target link properties "INTERFACE_LINK_OPTIONS", "INTERFACE_LINK_DIRECTORIES" and "INTERFACE_LINK_DEPENDS" are now transitive over private dependencies on static libraries. See policy "CMP0099". * When using MinGW tools, the "find_library()" command no longer finds ".dll" files by default. Instead, it expects ".dll.a" import libraries to be available. * The "MinGW Makefiles" generator no longer issues an error if "sh.exe" is present in the environment’s "PATH". * The "Ninja" generator now prefers the first ninja build tool to appear in the "PATH" no matter whether it is called "ninja-build", "ninja", or "samu". Previously the first of those names to appear anywhere in the "PATH" would be preferred. * With SDCC the "sdar" tool is now preferred over "sdcclib" as librarian. The latter was deprecated by SDCC 3.2.0 and removed in SDCC 3.8.6. * With SDCC the default flags no longer include any target-specific flags. Previously the default flags were hard-coded for 8051. * The "CMAKE_VS_GLOBALS" variable value now applies during compiler identification and in targets created by the "add_custom_target()" command. * The "Xcode" generator no longer hard-codes "-Wmost", "-Wno-four- char-constants", and "-Wno-unknown-pragmas" warning flags. Changes made since CMake 3.17.0-rc2: Betsy McPhail (1): CTest: Fix our internal CURL_DEBUGFUNCTION to conform to CURL docs Bo Anderson (1): FindPython: Convert env CMAKE_FRAMEWORK_PATH to CMake path Brad King (5): Help: Clarify add_custom_command DEPENDS conversion to file paths Help: Fix toctree order of Xcode scheme variable and property Help: Fix 3.17 release notes for Xcode scheme settings macOS: Rename OSX_*_VERSION properties to MACHO_*_VERSION CMake 3.17.0-rc3 Craig Scott (1): Help: Cleanup minor typos and grammar in 3.17 release notes Jesse Gorzinski (1): libuv: Add support for building on IBM i (OS400) Kyle Edwards (2): Ninja Multi-Config: Don't build target dependencies for custom commands Ninja Multi-Config: Fix spurious unused variable warning Marc Chevrier (2): FindPython: python_add_library can now manage SOABI suffix. Apple Clang: add flags for C++17 standard Raul Tambre (2): cm_cxx_features: Filter out CUDA installation warnings cmAlgorithms: Fix -Wnon-c-typedef-for-linkage warnings Robert Maynard (1): CUDAToolkit: Mark find queries as advanced variables Saleem Abdulrasool (3): Swift: support Ninja Multi-Config Swift: repair RPATH handling for macOS Swift: Fix quoting of library search paths with spaces ThePrez (1): cmstd: Remove -isystem option for IBM i (OS400) Thomas Bernard (1): llvm-rc: Forward DEFINES instead of FLAGS
[ANNOUNCE] CMake 3.16.5 available for download
We are pleased to announce that CMake 3.16.5 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.16.5 since 3.16.4: Brad King (5): libarchive: Fix WideCharToMultiByte output buffer size libarchive: Add support for UTF-8 locale on Windows Propagate backtraces from LINK_LIBRARIES through to link line items Help: Update CMake 3.16 release notes for 3.16.5 CMake 3.16.5 Francisco Facioni (1): Ninja: Do not use nvcc response files with non-nvcc tools Kyle Edwards (1): install: Fix regression when using default destinations Marc Chevrier (2): FindPython: Mark non-public cache entries INTERNAL in CMake 3.16 FindPython: Do not cache computed result variables in CMake 3.16 Rolf Eike Beer (1): FindPkgConfig: set policies CMP0054 and CMP0057 to new
[ANNOUNCE] CMake 3.17.0-rc2 is ready for testing
IES" and "INTERFACE_LINK_DEPENDS" are now transitive over private dependencies on static libraries. See policy "CMP0099". * When using MinGW tools, the "find_library()" command no longer finds ".dll" files by default. Instead it expects ".dll.a" import libraries to be available. * The "MinGW Makefiles" generator no longer issues an error if "sh.exe" is present in the environment’s "PATH". * The "Ninja" generator now prefers the first ninja build tool to appear in the "PATH" no matter whether it is called "ninja-build", "ninja", or "samu". Previously the first of those names to appear anywhere in the "PATH" would be preferred. * With SDCC the "sdar" tool is now preferred over "sdcclib" as librarian. The latter was deprecated by SDCC 3.2.0 and removed in SDCC 3.8.6. * With SDCC the default flags no longer include any target-specific flags. Previously the default flags were hard-coded for 8051. * The "CMAKE_VS_GLOBALS" variable value now applies during compiler identification and in targets created by the "add_custom_target()" command. * The "Xcode" generator no longer hard-codes "-Wmost", "-Wno-four- char-constants", and "-Wno-unknown-pragmas" warning flags. Changes made since CMake 3.17.0-rc1: Brad King (4): Help: Replace UTF-8 apostrophe with ascii apostrophe KWSys: SystemTools: CopyFileIfDifferent: Fix endless recursion KWSys: Terminal: Add st-256color to VT100 color support whitelist CMake 3.17.0-rc2 Craig Scott (3): Tests: Fix test_clean target missing some test directories Tests: Add missing ExternalProject smoke tests ExternalProject: Quote each git --config option to handle spaces Cristian Adam (1): PCH: Copy the timestamp from an absolute header file Francisco Facioni (1): Ninja: Do not use nvcc response files with non-nvcc tools Kyle Edwards (14): Ninja Multi-Config: Fix issue with framework dependencies and Autogen Refactor: Require detail when calling cmCTestRunTest::StartFailure() CTest: Improve error reporting with bad working directory for tests Refactor: Provide more detailed error information from TryAllocateResources() CTest: Provide more detailed information on resource allocation error Tests: Fix CustComDepend test for Ninja Multi-Config Tests: Fix CFBundleTest for Ninja Multi-Config Help: Note that CMAKE_CFG_INTDIR is not fully supported on Ninja Multi-Config Help: Clarify that the CTest resource allocation feature doesn't oversubscribe Ninja Multi-Config: Remove "NMC" from variable names Generator: Don't allow Ninja Multi-Config variables on other generators Ninja Multi-Config: Always generate build.ninja foreach: Fix crash when parsing invalid integer foreach: Set fatal error on invalid range Marc Chevrier (2): FindPython: Mark non-public cache entries INTERNAL FindPython: Do not cache computed result variables Richard (1): Autogen: Recognize the new Q_NAMESPACE_EXPORT macro in AUTOMOC Robert Maynard (1): FindCUDA: Only depend on Threads::Threads on platforms that need it Rolf Eike Beer (2): FindPkgConfig: set policies CMP0054 and CMP0057 to new Tests: fix RunCMake.Make test when run on systems with non-english locale Saleem Abdulrasool (1): Swift: support `-rpath` for executables Sergey Larin (1): PCH: Clang: Update PCH usage flags to include original header
[ANNOUNCE] CMake 3.17.0-rc1 is ready for testing
I am proud to announce the first CMake 3.17 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.17 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.17/release/3.17.html Some of the more significant changes in CMake 3.17 are: * "cmake(1)" gained a "Ninja Multi-Config" generator, which is similar to the "Ninja" generator but can be used to build multiple configurations at once. * Visual Studio Generators learned to support per-config sources. Previously only Command-Line Build Tool Generators supported them. * The "Compile Features" functionality now offers meta-features for the CUDA language standard levels (e.g. "cuda_std_03", "cuda_std_14"). See "CMAKE_CUDA_KNOWN_FEATURES". * The "CMAKE_CUDA_RUNTIME_LIBRARY" variable and "CUDA_RUNTIME_LIBRARY" target property were introduced to select the CUDA runtime library used when linking targets that use CUDA. * The "FindCUDAToolkit" module was added to find the CUDA Toolkit without enabling CUDA as a language. * "cmake(1)" gained a "--debug-find" command-line option to enable additional human-readable output on where find commands search. * The "CMAKE_FIND_DEBUG_MODE" variable was introduced to print extra find call information during the cmake run to standard error. Output is designed for human consumption and not for parsing. * The "FindCURL" module learned to find CURL using the "CURLConfig.cmake" package configuration file generated by CURL’s cmake buildsystem. It also gained a new "CURL_NO_CURL_CMAKE" option to disable this behavior. * The "FindPython" module has learned to find Python components in active virtual environments managed by "conda". * The "ctest(1)" tool gained a "--no-tests=<[error|ignore]>" option to explicitly set and unify the behavior between direct invocation and script mode if no tests were found. * The "ctest(1)" tool gained a "--repeat :" option to specify conditions in which to repeat tests. This generalizes the existing "--repeat-until-fail " option to add modes for "until-pass" and "after-timeout". * Target link properties "INTERFACE_LINK_OPTIONS", "INTERFACE_LINK_DIRECTORIES" and "INTERFACE_LINK_DEPENDS" are now transitive over private dependencies on static libraries. See policy "CMP0099". * When using MinGW tools, the "find_library()" command no longer finds ".dll" files by default. Instead it expects ".dll.a" import libraries to be available. * The "Ninja" generator now prefers the first ninja build tool to appear in the "PATH" no matter whether it is called "ninja-build", "ninja", or "samu". Previously the first of those names to appear anywhere in the "PATH" would be preferred. * "cmake(1)" gained a "-E rm" command-line tool that can be used to remove directories and files. This supersedes the existing "-E remove" and "-E remove_directory" tools and has better semantics. CMake 3.17 Release Notes Changes made since CMake 3.16 include the following. New Features Generators -- * "cmake(1)" gained a "Ninja Multi-Config" generator, which is similar to the "Ninja" generator but can be used to build multiple configurations at once. * Visual Studio Generators learned to support per-config sources. Previously only Command-Line Build Tool Generators supported them. * Visual Studio Generators for VS 2010 and above now support specifying the "VCTargetsPath" value for project files in "CMAKE_GENERATOR_TOOLSET" setting. * Visual Studio Generators for VS 2010 and above learned to support .NET Standard and .NET Core. See the "DOTNET_TARGET_FRAMEWORK" target property and associated "CMAKE_DOTNET_TARGET_FRAMEWORK" variable. Languages - * The "Compile Features" functionality now offers meta-features for the CUDA language standard levels (e.g. "cuda_std_03", "cuda_std_14"). See "CMAKE_CUDA_KNOWN_FEATURES". Compilers - * The IBM XL Fortran compiler is now supported by the "Ninja" generator. Command-Line * "cmake(1)" gained a "--debug-find" command-line option to enable additional human-readable output on where find commands search. * "cmake(1)" gained a "--trace-format" command-line option that can be used to set the "--trace" output format. Currently, the old human readable and the new JSON format are supported. The new JSON format is easier to parse automatically, than the existing format. * "cmake(1)" gained a "-E rm" command-line tool that can be used to remove directories and files. This supersedes the existing "-E remove" and "-E remove_directory" tools and has better semantics. Commands * The "add_custom_command()" command learned to interpret paths in "DEPENDS" arguments that are specified relative to the current binary directory. * The "foreach()" learned a new option "ZIP_LISTS" to iterate over multiple
[ANNOUNCE] CMake 3.16.4 available for download
We are pleased to announce that CMake 3.16.4 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.16.4 since 3.16.3: Brad King (6): ASM_MASM: Populate MSVC runtime library abstraction table VS: Tell VS 16.4 not to verify SYMBOLIC custom command inputs AIX: Restore pre-3.16 undocumented method to suppress exports with XL Android: Fix binutils selection with NDK r19+ unified toolchain VS: Do not use native unity builds on VS 2017 versions less than 15.8 CMake 3.16.4 Kyle Edwards (3): file(GET_RUNTIME_DEPENDENCIES): Tolerate empty list arguments Help: Add more variable documentation to FindMPI CPack: Fix regression in Deb description
[ANNOUNCE] CMake 3.15.7 available for download
We are pleased to announce that CMake 3.15.7 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.15.7 since 3.15.6: Brad King (4): IRSL: Install msvcp140_{1,2,codecvt_ids}.dll if available ASM_MASM: Populate MSVC runtime library abstraction table VS: Tell VS 16.4 not to verify SYMBOLIC custom command inputs CMake 3.15.7 Robert Maynard (1): CUDA: Do not device link if target has no CUDA usage
[ANNOUNCE] CMake 3.16.3 available for download
We are pleased to announce that CMake 3.16.3 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.16.3 since 3.16.2: Ashley Whetter (1): FindOpenSSL: Fix ordering of dependency link flags Brad King (3): GNUtoMS: Add search path for VS 2019 environment scripts IRSL: Install msvcp140_{1,2,codecvt_ids}.dll if available CMake 3.16.3 Cristian Adam (4): ObjC: Add _COMPILE_LAUNCHER support ObjC: Add VISIBLITY_INLINES_HIDDEN support Unity Build: include language in generated source file name PCH: No repeated path for internal generated PCH files (MSVC case) Kyle Edwards (2): CTest: Improve error handling when reading resource spec file CPack: Fix regression in DEB generator description Marc Chevrier (3): FindPython*: Fix erroneous target properties setting macOS: Add support for new Xcode 11 frameworks directory FindPython: ensure new Xcode framework for Python3 is detected Miro Hrončok (1): FindPython: Add support for version 3.9 Neil Carlson (1): Fortran: Add support for NAG Fortran submodules Pavel Liavonau (1): VS: Add Fortran link flag table entries for /OPT:* Robert Maynard (1): CUDA: Do not device link if target has no CUDA usage Sebastian Holtermann (1): Autogen: Enable SKIP_UNITY_BUILD_INCLUSION on AUTORCC generated files Silvio Traversaro (2): FindMatlab: add R2019a and R2019b MATLAB_VERSIONS_MAPPING FindMatlab: in matlab_add_mex use the correct version file
[ANNOUNCE] CMake 3.16.2 available for download
We are pleased to announce that CMake 3.16.2 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.16.2 since 3.16.1: Brad King (6): VS: Fix support for v142 toolset minor versions in VS 16.5+ FindBLAS: Consider OpenBLAS with thread libraries only with C or CXX FindBoost: Add support for Boost 1.72 Autogen: Revert processing of .hh files for compatibility FindLAPACK: Fix support for LAPACK symbols inside BLAS libraries CMake 3.16.2 Cristian Adam (1): PCH: Append pch header file to list of forced include files Michael Dickens (1): Tests: Fix testCTestResourceSpec struct initialization for some compilers
[ANNOUNCE] CMake 3.15.6 available for download
We are pleased to announce that CMake 3.15.6 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.15.6 since 3.15.5: Alexander Grund (1): Check for support before adding bigtoc linker flag Ben Boeckel (1): FindPostgreSQL: support version encoding used in pre-10 releases Brad King (4): CMakeParseImplicitIncludeInfo: Remove all CR chars from compiler output VS: Fix support for v142 toolset minor versions in VS 16.5+ FindBLAS: Consider OpenBLAS with thread libraries only with C or CXX CMake 3.15.6 Deniz Bahadir (1): FindBoost: Prevent warning due to new meta-component "ALL" of Boost 1.73 Markus Mittendrein (1): FindGTK2: Add harfbuzz to GTK2_INCLUDE_DIRS
ANNOUNCE] CMake 3.16.1 available for download
We are pleased to announce that CMake 3.16.1 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.16.1 since 3.16.0: Alexander Grund (2): bootstrap: Add target_link_options command Check for support before adding bigtoc linker flag Ben Boeckel (1): TestDriver: ignore strcpy call Brad King (2): FindThreads: Restore hard-coded '-l' flag on library name CMake 3.16.1 Cristian Adam (5): PCH: Do not add #pragma system_header for Xcode generator Unity/PCH: Skip more target types when adding automatic sources Unity: Generic source file handling for all generators Unity: Proper handling of object libraries PCH: Use the target's PREFIX for building the pdb file name Kyle Edwards (1): CTest Resource Allocation: Add test for spec file with no version Tobias Taschner (1): FindwxWidgets: Add support for 3.1.3 on macOS
[ANNOUNCE] CMake 3.16.0 available for download
I am happy to announce that CMake 3.16.0 is now available for download at: https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.16 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.16/release/3.16.html Some of the more significant changes in CMake 3.16 are: * CMake learned to support the Objective C ("OBJC") and Objective C++ ("OBJCXX") languages. They may be enabled via the "project()" and "enable_language()" commands. When "OBJC" or "OBJCXX" is enabled, source files with the ".m" or ".mm", respectively, will be compiled as Objective C or C++. Otherwise they will be treated as plain C++ sources as they were before. * The "target_precompile_headers()" command was added to specify a list of headers to precompile for faster compilation times. * The "UNITY_BUILD" target property was added to tell generators to batch include source files for faster compilation times. * The "find_file()", "find_library()", "find_path()", "find_package()", and "find_program()" commands have learned to check the following variables to control searching * "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH" - Controls the searching the cmake-specific environment variables. * "CMAKE_FIND_USE_CMAKE_PATH" - Controls the searching the cmake- specific cache variables. * "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH" - Controls the searching cmake platform specific variables. * "CMAKE_FIND_USE_PACKAGE_ROOT_PATH" - Controls the searching of "_ROOT" variables. * "CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH" - Controls the searching the standard system environment variables. * The "file()" command learned a new sub-command, "GET_RUNTIME_DEPENDENCIES", which allows you to recursively get the list of libraries linked by an executable or library. This sub- command is intended as a replacement for "GetPrerequisites". * "ctest(1)" now has the ability to serialize tests based on resource requirements for each test. See Resource Allocation for details. * On AIX, executables using the "ENABLE_EXPORTS" target property now produce a linker import file with a ".imp" extension in addition to the executable file. Plugins (created via "add_library()" with the "MODULE" option) that use "target_link_libraries()" to link to the executable for its symbols are now linked using the import file. The "install(TARGETS)" command now installs the import file as an "ARCHIVE" artifact. * On AIX, runtime linking is no longer enabled by default. CMake provides the linker enough information to resolve all symbols up front. One may manually enable runtime linking for shared libraries and/or loadable modules by adding "-Wl,-G" to their link flags (e.g. in the "CMAKE_SHARED_LINKER_FLAGS" or "CMAKE_MODULE_LINKER_FLAGS" variable). One may manually enable runtime linking for executables by adding "-Wl,-brtl" to their link flags (e.g. in the "CMAKE_EXE_LINKER_FLAGS" variable). * "cmake(1)" "-E" now supports "true" and "false" commands, which do nothing while returning exit codes of 0 and 1, respectively. * "cmake(1)" gained a "--trace-redirect=" command line option that can be used to redirect "--trace" output to a file instead of "stderr". * The "cmake(1)" "--loglevel" command line option has been renamed to "--log-level" to make it consistent with the naming of other command line options. The "--loglevel" option is still supported to preserve backward compatibility. * The "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" variable has been deprecated. Use the "CMAKE_FIND_USE_PACKAGE_REGISTRY" variable instead. * The "GetPrerequisites" module has been deprecated, as it has been superceded by "file(GET_RUNTIME_DEPENDENCIES)". CMake 3.16 Release Notes Changes made since CMake 3.15 include the following. New Features Languages - * CMake learned to support the Objective C ("OBJC") and Objective C++ ("OBJCXX") languages. They may be enabled via the "project()" and "enable_language()" commands. When "OBJC" or "OBJCXX" is enabled, source files with the ".m" or ".mm", respectively, will be compiled as Objective C or C++. Otherwise they will be treated as plain C++ sources as they were before. Compilers - * The "Clang" compiler is now supported on "Solaris". Platforms - * On AIX, executables using the "ENABLE_EXPORTS" target property now produce a linker import file with a ".imp" extension in addition to the executable file. Plugins (created via "add_library()" with the "MODULE" option) that use "target_link_libraries()" to link to the executable for its symbols are now linked using the import file. The "install(TARGETS)" command now installs the import file as an "ARCHIVE" artifact. * On AIX, runtime linking is no longer enabled by default. CMake provides the linker enough information to resolve all symbols up
[ANNOUNCE] CMake 3.16.0-rc4 is ready for testing
ted by GTest 1.8.1. * The "project()" command no longer strips leading zeros in version components. See policy "CMP0096". * The Qt Compressed Help file is now named "CMake.qch", which no longer contains the release version in the file name. When CMake is upgraded in-place, the name and location of this file will remain constant. Tools such as IDEs, help viewers, etc. should now be able to refer to this file at a fixed location that remains valid across CMake upgrades. * "RPATH" entries are properly escaped in the generated CMake scripts used for installation. See policy "CMP0095". * When using "CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS" on Windows the auto- generated exports are now updated only when the object files providing the symbols are updated. Changes made since CMake 3.16.0-rc3: Alex Turbov (1): CPack: Remove CPACK_INSTALL_CMAKE_CONFIGURATIONS Arkadiusz Drabczyk (1): Tutorial: replace Unicode EN DASH with ASCII dash Ben Boeckel (3): Help: drop confusing reference to `if()` from `$` FindPostgreSQL: support version encoding used in pre-10 releases FindPostgreSQL: also search for libraries in the MacPorts suffix Brad King (20): CTest: Rename PROCESSES test property to RESOURCE_GROUPS CTest: Rename "Processes" lexer to "ResourceGroups" Help/dev: Update maintainer guide for Discourse transition cmGlobalXCodeGenerator: Mark known source locations Xcode: Fix generated references to CMakeLists.txt files CMakeCPack: Update Debian package contact email Help: Replace links to mailing lists with links to our Discourse Forum README: Update links to cmake.org pages README: Replace link to mailing list the CMake Discourse Forum CMakeSystemSpecificInformation: Replace mailing list with Discourse Forum FindBinUtils: Revert "Use the compiler to get the path to compiler tools" Help: Document target_precompile_headers genex with angle brackets CTestCoverageCollectGCOV: Fix typo in ctest_coverage_collect_gcov docs expat: Update script to get Expat 2.2.9 expat: Update CMake build for 2.2.9 Tests: Fix ExportImport PCH expectation on Cray Classic compiler Tests: Add RunCMake.CPackCommandLine case for multi-config package Tests: Organize Objective C/C++ test directories CPack: Restore support for custom package configuration templates CMake 3.16.0-rc4 Charles Barto (1): Help: Clarify load_cache documentation of first parameter Craig Scott (14): ForceToRelativePath: Fix spurious assertion when local path is root dir Help: list(REMOVE_ITEM) removes all instances, not just the first found Help: Typo and grammar fixes for file(GET_RUNTIME_DEPENDENCIES) Tutorial: clean up typos, grammar and formatting RPATH: Remove stray indent in generated file(RPATH_CHANGE) command Help: Fix inaccuracies in INSTALL_REMOVE_ENVIRONMENT_RPATH docs CTest: Rename hardware -> resources for CMake variables, command options cmCTestMultiProcessHandler: Rename resource locking functions CTest: Rename hardware -> resources for source code CTest: Rename hardware -> resources for RunCMake tests Help: Improve readability and fix inaccuracies in unity build docs Help: Reorganise target_precompile_headers() docs for readability Help: Provide guidance on INTERFACE for target_precompile_headers() Help: Clarify compile features handling for OBJC and OBJCXX Craig Sturdy (1): FindwxWidgets: Add support for wxQt Cristian Adam (13): PCH: Add support for OBJC/OBJCXX languages CMakeVersion.rc: Fix build with llvm-rc ObjC: Mark explicitly the language for compilation Unity build: Include GENERATED files into unity build ObjC: Set same settings for all languages supported on Darwin ObjC: Add try_compile support PCH: No repeated path for internal generated PCH files Unity: Don't include sources with HEADER_FILE_ONLY property set ObjC: Document ObjC/ObjCXX standard properties / variables ObjC: Add OBJC/OBJCXX flags to Xcode projects ObjC: Initialize ObjC/XX standard properties from C/C++ counterparts ObjC: Proper initialization of ObjC/XX standard properties PCH: Do not issue an error on duplicate target_precompile_headers call Daniel Eiband (2): cmFileAPI: Resolve full path in PCH source comparison UnityBuild: Resolve full paths of unity source includes Deniz Bahadir (1): FindBoost: Prevent warning due to new meta-component "ALL" of Boost 1.73 Expat Upstream (1): expat 2019-09-25 (a7bc26b6) Grant Kim (1): FindwxWidgets: Add link dependencies for MinGW Kyle Edwards (2): Help: Fix error in resource allocation example Tests: Fix reliance on undefined behavior of cm::optional Marc Aldorasi (2): Help: Reference IMPORTED_IMPLIB from the IMPORTED_LOCATION documentation Help: Both add_custom_command signatures support COMMAND_EXPAND_LISTS Mateusz Janek (1): source_group: ensure that passed file is not a directory Robert Maynard (3): Help: Remove out of date bounds on compile feature supported versions find_package: Add support for CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY Help: Clarify what 'aware' means as it relates to C++ standards Saleem Abdulrasool (3): Swift: Allow build and installed RPATHs to differ Swift: support `INSTALL_NAME_DIR` on Darwin Swift: support `-rpath` on Darwin Tomasz Słodkowicz (1): FindwxWidgets: Add support for 3.1.3 VS binaries
[ANNOUNCE] CMake 3.16.0-rc3 is ready for testing
I am proud to announce the third CMake 3.16 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.16 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.16/release/3.16.html Some of the more significant changes in CMake 3.16 are: * CMake learned to support the Objective C ("OBJC") and Objective C++ ("OBJCXX") languages. They may be enabled via the "project()" and "enable_language()" commands. When "OBJC" or "OBJCXX" is enabled, source files with the ".m" or ".mm", respectively, will be compiled as Objective C or C++. Otherwise they will be treated as plain C++ sources as they were before. * The "target_precompile_headers()" command was added to specify a list of headers to precompile for faster compilation times. * The "UNITY_BUILD" target property was added to tell generators to batch include source files for faster compilation times. * The "find_file()", "find_library()", "find_path()", "find_package()", and "find_program()" commands have learned to check the following variables to control searching * "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH" - Controls the searching the cmake-specific environment variables. * "CMAKE_FIND_USE_CMAKE_PATH" - Controls the searching the cmake- specific cache variables. * "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH" - Controls the searching cmake platform specific variables. * "CMAKE_FIND_USE_PACKAGE_ROOT_PATH" - Controls the searching of "_ROOT" variables. * "CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH" - Controls the searching the standard system environment variables. * The "file()" command learned a new sub-command, "GET_RUNTIME_DEPENDENCIES", which allows you to recursively get the list of libraries linked by an executable or library. This sub- command is intended as a replacement for "GetPrerequisites". * "ctest(1)" now has the ability to serialize tests based on hardware requirements for each test. See Hardware Allocation for details. * On AIX, executables using the "ENABLE_EXPORTS" target property now produce a linker import file with a ".imp" extension in addition to the executable file. Plugins (created via "add_library()" with the "MODULE" option) that use "target_link_libraries()" to link to the executable for its symbols are now linked using the import file. The "install(TARGETS)" command now installs the import file as an "ARCHIVE" artifact. * On AIX, runtime linking is no longer enabled by default. CMake provides the linker enough information to resolve all symbols up front. One may manually enable runtime linking for shared libraries and/or loadable modules by adding "-Wl,-G" to their link flags (e.g. in the "CMAKE_SHARED_LINKER_FLAGS" or "CMAKE_MODULE_LINKER_FLAGS" variable). One may manually enable runtime linking for executables by adding "-Wl,-brtl" to their link flags (e.g. in the "CMAKE_EXE_LINKER_FLAGS" variable). * "cmake(1)" "-E" now supports "true" and "false" commands, which do nothing while returning exit codes of 0 and 1, respectively. * "cmake(1)" gained a "--trace-redirect=" command line option that can be used to redirect "--trace" output to a file instead of "stderr". * The "cmake(1)" "--loglevel" command line option has been renamed to "--log-level" to make it consistent with the naming of other command line options. The "--loglevel" option is still supported to preserve backward compatibility. * The "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" variable has been deprecated. Use the "CMAKE_FIND_USE_PACKAGE_REGISTRY" variable instead. * The "GetPrerequisites" module has been deprecated, as it has been superceded by "file(GET_RUNTIME_DEPENDENCIES)". CMake 3.16 Release Notes Changes made since CMake 3.15 include the following. New Features Languages - * CMake learned to support the Objective C ("OBJC") and Objective C++ ("OBJCXX") languages. They may be enabled via the "project()" and "enable_language()" commands. When "OBJC" or "OBJCXX" is enabled, source files with the ".m" or ".mm", respectively, will be compiled as Objective C or C++. Otherwise they will be treated as plain C++ sources as they were before. Compilers - * The "Clang" compiler is now supported on "Solaris". Platforms - * On AIX, executables using the "ENABLE_EXPORTS" target property now produce a linker import file with a ".imp" extension in addition to the executable file. Plugins (created via "add_library()" with the "MODULE" option) that use "target_link_libraries()" to link to the executable for its symbols are now linked using the import file. The "install(TARGETS)" command now installs the import file as an "ARCHIVE" artifact. * On AIX, runtime linking is no longer enabled by default. CMake provides the linker enough information to resolve all symbols up front. One
[ANNOUNCE] CMake 3.16.0-rc2 is ready for testing
I am proud to announce the second CMake 3.16 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.16 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.16/release/3.16.html Some of the more significant changes in CMake 3.16 are: * CMake learned to support the Objective C ("OBJC") and Objective C++ ("OBJCXX") languages. They may be enabled via the "project()" and "enable_language()" commands. When "OBJC" or "OBJCXX" is enabled, source files with the ".m" or ".mm", respectively, will be compiled as Objective C or C++. Otherwise they will be treated as plain C++ sources as they were before. * The "target_precompile_headers()" command was added to specify a list of headers to precompile for faster compilation times. * The "UNITY_BUILD" target property was added to tell generators to batch include source files for faster compilation times. * The "find_file()", "find_library()", "find_path()", "find_package()", and "find_program()" commands have learned to check the following variables to control searching * "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH" - Controls the searching the cmake-specific environment variables. * "CMAKE_FIND_USE_CMAKE_PATH" - Controls the searching the cmake- specific cache variables. * "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH" - Controls the searching cmake platform specific variables. * "CMAKE_FIND_USE_PACKAGE_ROOT_PATH" - Controls the searching of "_ROOT" variables. * "CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH" - Controls the searching the standard system environment variables. * The "file()" command learned a new sub-command, "GET_RUNTIME_DEPENDENCIES", which allows you to recursively get the list of libraries linked by an executable or library. This sub- command is intended as a replacement for "GetPrerequisites". * "ctest(1)" now has the ability to serialize tests based on hardware requirements for each test. See Hardware Allocation for details. * On AIX, executables using the "ENABLE_EXPORTS" target property now produce a linker import file with a ".imp" extension in addition to the executable file. Plugins (created via "add_library()" with the "MODULE" option) that use "target_link_libraries()" to link to the executable for its symbols are now linked using the import file. The "install(TARGETS)" command now installs the import file as an "ARCHIVE" artifact. * On AIX, runtime linking is no longer enabled by default. CMake provides the linker enough information to resolve all symbols up front. One may manually enable runtime linking for shared libraries and/or loadable modules by adding "-Wl,-G" to their link flags (e.g. in the "CMAKE_SHARED_LINKER_FLAGS" or "CMAKE_MODULE_LINKER_FLAGS" variable). One may manually enable runtime linking for executables by adding "-Wl,-brtl" to their link flags (e.g. in the "CMAKE_EXE_LINKER_FLAGS" variable). * "cmake(1)" "-E" now supports "true" and "false" commands, which do nothing while returning exit codes of 0 and 1, respectively. * "cmake(1)" gained a "--trace-redirect=" command line option that can be used to redirect "--trace" output to a file instead of "stderr". * The "cmake(1)" "--loglevel" command line option has been renamed to "--log-level" to make it consistent with the naming of other command line options. The "--loglevel" option is still supported to preserve backward compatibility. * The "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" variable has been deprecated. Use the "CMAKE_FIND_USE_PACKAGE_REGISTRY" variable instead. * The "GetPrerequisites" module has been deprecated, as it has been superceded by "file(GET_RUNTIME_DEPENDENCIES)". CMake 3.16 Release Notes Changes made since CMake 3.15 include the following. New Features Languages - * CMake learned to support the Objective C ("OBJC") and Objective C++ ("OBJCXX") languages. They may be enabled via the "project()" and "enable_language()" commands. When "OBJC" or "OBJCXX" is enabled, source files with the ".m" or ".mm", respectively, will be compiled as Objective C or C++. Otherwise they will be treated as plain C++ sources as they were before. Compilers - * The "Clang" compiler is now supported on "Solaris". Platforms - * On AIX, executables using the "ENABLE_EXPORTS" target property now produce a linker import file with a ".imp" extension in addition to the executable file. Plugins (created via "add_library()" with the "MODULE" option) that use "target_link_libraries()" to link to the executable for its symbols are now linked using the import file. The "install(TARGETS)" command now installs the import file as an "ARCHIVE" artifact. * On AIX, runtime linking is no longer enabled by default. CMake provides the linker enough information to resolve all symbols up front. One
[ANNOUNCE] CMake 3.16.0-rc1 is ready for testing
I am proud to announce the first CMake 3.16 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.16 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.16/release/3.16.html Some of the more significant changes in CMake 3.16 are: * CMake learned to support the Objective C ("OBJC") and Objective C++ ("OBJCXX") languages. They may be enabled via the "project()" and "enable_language()" commands. When "OBJC" or "OBJCXX" is enabled, source files with the ".m" or ".mm", respectively, will be compiled as Objective C or C++. Otherwise they will be treated as plain C++ sources as they were before. * The "target_precompile_headers()" command was added to specify a list of headers to precompile for faster compilation times. * The "UNITY_BUILD" target property was added to tell generators to batch include source files for faster compilation times. * The "find_file()", "find_library()", "find_path()", "find_package()", and "find_program()" commands have learned to check the following variables to control searching * "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH" - Controls the searching the cmake-specific environment variables. * "CMAKE_FIND_USE_CMAKE_PATH" - Controls the searching the cmake- specific cache variables. * "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH" - Controls the searching cmake platform specific variables. * "CMAKE_FIND_USE_PACKAGE_ROOT_PATH" - Controls the searching of "_ROOT" variables. * "CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH" - Controls the searching the standard system environment variables. * The "file()" command learned a new sub-command, "GET_RUNTIME_DEPENDENCIES", which allows you to recursively get the list of libraries linked by an executable or library. This sub- command is intended as a replacement for "GetPrerequisites". * "ctest(1)" now has the ability to serialize tests based on hardware requirements for each test. See Hardware Allocation for details. * On AIX, executables using the "ENABLE_EXPORTS" target property now produce a linker import file with a ".imp" extension in addition to the executable file. Plugins (created via "add_library()" with the "MODULE" option) that use "target_link_libraries()" to link to the executable for its symbols are now linked using the import file. The "install(TARGETS)" command now installs the import file as an "ARCHIVE" artifact. * On AIX, runtime linking is no longer enabled by default. CMake provides the linker enough information to resolve all symbols up front. One may manually enable runtime linking for shared libraries and/or loadable modules by adding "-Wl,-G" to their link flags (e.g. in the "CMAKE_SHARED_LINKER_FLAGS" or "CMAKE_MODULE_LINKER_FLAGS" variable). One may manually enable runtime linking for executables by adding "-Wl,-brtl" to their link flags (e.g. in the "CMAKE_EXE_LINKER_FLAGS" variable). * "cmake(1)" "-E" now supports "true" and "false" commands, which do nothing while returning exit codes of 0 and 1, respectively. * "cmake(1)" gained a "--trace-redirect=" command line option that can be used to redirect "--trace" output to a file instead of "stderr". * The "cmake(1)" "--loglevel" command line option has been renamed to "--log-level" to make it consistent with the naming of other command line options. The "--loglevel" option is still supported to preserve backward compatibility. * The "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" variable has been deprecated. Use the "CMAKE_FIND_USE_PACKAGE_REGISTRY" variable instead. * The "GetPrerequisites" module has been deprecated, as it has been superceded by "file(GET_RUNTIME_DEPENDENCIES)". CMake 3.16 Release Notes Changes made since CMake 3.15 include the following. New Features Languages - * CMake learned to support the Objective C ("OBJC") and Objective C++ ("OBJCXX") languages. They may be enabled via the "project()" and "enable_language()" commands. When "OBJC" or "OBJCXX" is enabled, source files with the ".m" or ".mm", respectively, will be compiled as Objective C or C++. Otherwise they will be treated as plain C++ sources as they were before. Compilers - * The "Clang" compiler is now supported on "Solaris". Platforms - * On AIX, executables using the "ENABLE_EXPORTS" target property now produce a linker import file with a ".imp" extension in addition to the executable file. Plugins (created via "add_library()" with the "MODULE" option) that use "target_link_libraries()" to link to the executable for its symbols are now linked using the import file. The "install(TARGETS)" command now installs the import file as an "ARCHIVE" artifact. * On AIX, runtime linking is no longer enabled by default. CMake provides the linker enough information to resolve all symbols up front. One
[ANNOUNCE] CMake 3.15.4 available for download
We are pleased to announce that CMake 3.15.4 is now available for download. This release fixes a regression in EXCLUDE_FROM_ALL. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.15.4 since 3.15.3: Brad King (10): VS: Tell VS 16.4 not to verify SYMBOLIC custom command outputs Tests: Teach RunCMake to support a custom working directory Tests: Revise RunCMake.add_subdirectory ExcludeFromAll to avoid globbing Tests: Clarify target names in RunCMake.add_subdirectory ExcludeFromAll Makefiles: Revert "Make build root targets ... recursive" Restore "all" target in subdirectories marked EXCLUDE_FROM_ALL Help: Add release note for EXCLUDE_FROM_ALL fix in 3.14.7 Help: Add release note for EXCLUDE_FROM_ALL fix in 3.15.4 Help: Mention 3.14.7 EXCLUDE_FROM_ALL fix in 3.15.4 release note CMake 3.15.4 LE GARREC Vincent (1): Help: Document VS 2019 toolset in MSVC_TOOLSET_VERSION
[ANNOUNCE] CMake 3.14.7 available for download
We are pleased to announce that CMake 3.14.7 is now available for download. This release fixes a regression in EXCLUDE_FROM_ALL. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.14.7 since 3.14.6: Brad King (6): Tests: Teach RunCMake to support a custom working directory Tests: Revise RunCMake.add_subdirectory ExcludeFromAll to avoid globbing Tests: Clarify target names in RunCMake.add_subdirectory ExcludeFromAll Restore "all" target in subdirectories marked EXCLUDE_FROM_ALL Help: Add release note for EXCLUDE_FROM_ALL fix in 3.14.7 CMake 3.14.7
[ANNOUNCE] CMake 3.15.3 available for download
We are pleased to announce that CMake 3.15.3 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.15.3 since 3.15.2: Brad King (13): Flang: Implement MSVC runtime library abstraction CTest: Fix --show-only=json-v1 output with REQUIRED_FILES property cmGlobalGenerator: Fix CheckCompilerIdCompatibility local var lifetime cmAffinity: Add include for CPU_ZERO on Alpine Linux find_path: Fix crash on empty old-style list of names fileapi: Fix codemodel v2 target file name for CMP0037 OLD behavior FindBoost: Simplify conditional block for last known version FindBoost: Remove incorrect 1.70 timer dependency FindBoost: Unwrap compatibility INTERFACE targets for legacy variables FindBoost: Add support for Boost 1.71 FindBoost: Clarify role of legacy variables in warning message FindBoost: Tolerate future Boost INTERFACE libraries CMake 3.15.3 Chuck Atkins (1): CrayPrgEnv: Change default linking mode based on PE version M Furkan USLU (1): ccmake: handle cache entries with empty STRINGS property Marvin Schmidt (1): libarchive: We now require at least version 3.3.3 Robert Maynard (1): FindMPI: Restore MPI__COMPILE_FLAGS and MPI__COMPILE_OPTIONS Sebastian Holtermann (3): Ninja: Add support for ADDITIONAL_CLEAN_FILES in custom targets Tests: Extend MakeClean test to test various target types Autogen: Fix AUTOUIC segfault, when file includes colliding ui_*.h file
[ANNOUNCE] CMake 3.15.2 available for download
We are pleased to announce that CMake 3.15.2 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.15.2 since 3.15.1: Brad King (8): Swift: Restore support for enabling with INTERFACE libraries VS: Fix mapping of `-Qspectre-` flag source_group: Fix regression in relative FILES clang: Restore support for clang-cl on non-Windows hosts fileapi: Fix codemodel target install destination for cross-dir rules clang: Work around toolchain file use of internal CMake variables Help: Add 3.15.2 release notes CMake 3.15.2 Claudio Fantacci (3): FindGLEW: Fix macOS library suffix selection FindGLEW: Add required OpenGL dependency in macOS FindGLEW: Fix typo in verbose log message Cristian Adam (1): find_package: Fix prefer-config mode to not fail on missing optional package
[ANNOUNCE] CMake 3.15.1 available for download
We are pleased to announce that CMake 3.15.1 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.15.1 since 3.15.0: Betsy McPhail (1): CTest: Generate Done.xml before calculating its hash Brad King (7): VS: Place intermediate files in the "ASM List Location" next to objects MSVC: Document behavior when MSVC_RUNTIME_LIBRARY is not set Clang: For MSVC ABI do not use modes older than C++14 Tests: Revert "require C++14 for the Tutorial" Makefile: Fix regression in dependencies on relative includes Help: Add 3.15.1 release notes CMake 3.15.1 James Butler (2): IRSL: Fix typo in v143 toolset version check IRSL: Fix discovery of VS 2019 v141 toolset redistributables Marc Chevrier (1): FindPython: ensure interpreter is founded when cross-compiling Marek Antoniak (1): Fix allocation in CROSSCOMPILING_EMULATOR evaluation Robert Maynard (2): FindMPI: Updated to use INTERFACE_LINK_OPTIONS FindMPI: make sure computed link flags are not de-duplicated Saleem Abdulrasool (5): Support per-language library link flags Swift: Add library search paths for dependencies Swift: add rules for static linking Swift: support multithreaded compilation Swift: support SONAME on ELFish targets
[ANNOUNCE] CMake 3.15.0 available for download
I am happy to announce that CMake 3.15.0 is now available for download at: https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.15 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.15/release/3.15.html Some of the more significant changes in CMake 3.15 are: * The "CMAKE_MSVC_RUNTIME_LIBRARY" variable and "MSVC_RUNTIME_LIBRARY" target property were introduced to select the runtime library used by compilers targeting the MSVC ABI. See policy "CMP0091". * With MSVC-like compilers the value of "CMAKE__FLAGS" no longer contains warning flags like "/W3" by default. See policy "CMP0092". * The "Clang" compiler variant on Windows that targets the MSVC ABI but has a GNU-like command line is now supported. * Preliminary support for the "Swift" language was added to the "Ninja" generator. * The "$" generator expression was introduced to allow specification of compile options for target files based on the "CMAKE__COMPILER_ID" and "LANGUAGE" of each source file. * The "generator expressions" "C_COMPILER_ID", "CXX_COMPILER_ID", "CUDA_COMPILER_ID", "Fortran_COMPILER_ID", "COMPILE_LANGUAGE", "COMPILE_LANG_AND_ID", and "PLATFORM_ID" learned to support matching one value from a comma-separated list. * The "CMAKE_FIND_PACKAGE_PREFER_CONFIG" variable was added to tell "find_package()" calls to look for a package configuration file first even if a find module is available. * The "PUBLIC_HEADER" and "PRIVATE_HEADER" properties may now be set on Interface Libraries. The headers specified by those properties can be installed using the "install(TARGETS)" command by passing the "PUBLIC_HEADER" and "PRIVATE_HEADER" arguments respectively. * The "CMAKE_VS_JUST_MY_CODE_DEBUGGING" variable and "VS_JUST_MY_CODE_DEBUGGING" target property were added to enable the Just My Code feature of the Visual Studio Debugger when compiling with MSVC cl 19.05 and higher. * The "FindBoost" module was reworked to expose a more consistent user experience between its “Config” and “Module” modes and with other find modules in general. * The "message()" command learned new types: "NOTICE", "VERBOSE", "DEBUG" and "TRACE". * The "export(PACKAGE)" command now does nothing unless enabled via "CMAKE_EXPORT_PACKAGE_REGISTRY". See policy "CMP0090". * The "CMAKE_GENERATOR" environment variable was added to specify a default generator to use when "cmake(1)" is run without a "-G" option. Additionally, environment variables "CMAKE_GENERATOR_PLATFORM", "CMAKE_GENERATOR_TOOLSET", and "CMAKE_GENERATOR_INSTANCE" were created to configure the generator. * The "cmake(1)" command gained a new "--install" option. This may be used after building a project to run installation without using the generated build system or the native build tool. * The "cmake(1)" command learned a new CLI option "--loglevel". * The "cmake-server(7)" mode has been deprecated and will be removed from a future version of CMake. Please port clients to use the "cmake-file-api(7)" instead. CMake 3.15 Release Notes Changes made since CMake 3.14 include the following. New Features Generators -- * The "Xcode" generator now supports per-target schemes. See the "CMAKE_XCODE_GENERATE_SCHEME" variable and "XCODE_GENERATE_SCHEME" target property. * The "Green Hills MULTI" generator has been updated: * It now supports the "add_custom_command()" and "add_custom_target()" commands. * It is now available on Linux. Languages - * Preliminary support for the "Swift" language was added to the "Ninja" generator: * Use the "SWIFTC" environment variable to specify a compiler. * The "Swift_DEPENDENCIES_FILE" target property and "Swift_DEPENDENCIES_FILE" source file property were added to customize dependency files. * The "Swift_MODULE_NAME" target property was added to customize the Swift module name. * The "Swift_DIAGNOSTICS_FILE" source property was added to indicate where to write the serialised Swift diagnostics. The Swift support is experimental, not considered stable, and may change in future releases of CMake. Compilers - * The "Clang" compiler variant on Windows that targets the MSVC ABI but has a GNU-like command line is now supported. * Support for the Clang-based ARM compiler was added with compiler id "ARMClang". * Support was added for the IAR compiler architectures Renesas RX, RL78, RH850 and Texas Instruments MSP430. * Support was added for the IAR compilers built for Linux (IAR BuildLx). Command-Line * The "CMAKE_GENERATOR" environment variable was added to specify a default generator to use when "cmake(1)" is run without a "-G" option. Additionally, environment variables "CMAKE_GENERATOR_PLATFORM", "CMAKE_GENERATOR_TOOLSET", and "CMAKE_GENERATOR_INSTANCE" were created to configure
[ANNOUNCE] CMake 3.14.6 available for download
We are pleased to announce that CMake 3.14.6 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.14.6 since 3.14.5: Brad King (1): CMake 3.14.6 Brian Carlson (1): FindBISON: Fix CMP0088 NEW behavior for non-absolute input paths Chuck Atkins (1): Cray: Fix include parsing when the -hlist= flag is present Marc Chevrier (1): Android: ensure PIE behavior is consistent regardless CMP0083 policy
[ANNOUNCE] CMake 3.15.0-rc4 is ready for testing
_OVERRIDE". This can be used to specify the current version of your source tree rather than using the update command to discover the current version that is checked out. CPack - * The "CPack IFW Generator" gained a new "CPACK_IFW_PACKAGE_STYLE_SHEET" variable to customize the installer stylesheet. Deprecated and Removed Features === * The "cmake-server(7)" mode has been deprecated and will be removed from a future version of CMake. Please port clients to use the "cmake-file-api(7)" instead. * The "ADDITIONAL_MAKE_CLEAN_FILES" directory property is now deprecated. Use the "ADDITIONAL_CLEAN_FILES" directory property instead. * The variable "CMAKE_AUTOMOC_RELAXED_MODE" is considered deprecated. Support still exists but will be removed in future versions. * The "export(PACKAGE)" command now does nothing unless enabled via "CMAKE_EXPORT_PACKAGE_REGISTRY". See policy "CMP0090". * The "Xcode" generator now requires at least Xcode 5. * An explicit deprecation diagnostic was added for policy "CMP0066" ("CMP0065" and below were already deprecated). The "cmake- policies(7)" manual explains that the OLD behaviors of all policies are deprecated and that projects should port to the NEW behaviors. Other Changes = * CMake learned how to compile C++14 with the IBM AIX XL compiler and the SunPro compiler and to compile C++20 with the AppleClang compiler. * With MSVC-like compilers the value of "CMAKE__FLAGS" no longer contains warning flags like "/W3" by default. See policy "CMP0092". * IBM Clang-based XL compilers that define "__ibmxl__" now use the compiler id "XLClang" instead of "XL". See policy "CMP0089". * The "file(REMOVE)" and "file(REMOVE_RECURSE)" commands were changed to ignore empty arguments with a warning instead of treating them as a relative path and removing the contents of the current directory. Changes made since CMake 3.15.0-rc3: Alex Turbov (1): list(POP_FRONT): Fix always assigning first item to output vars Brad King (4): expat: Update script to get Expat 2.2.7 FindPostgreSQL: Fix regression in computation of library directory cmGlobalGenerator: Do not persist alias targets across configures CMake 3.15.0-rc4 Chuck Atkins (1): Cray: Fix include parsing when the -hlist= flag is present Craig Scott (8): Help: Remove self-references from project() docs Help: move code injection vars to their own section Help: Clean up trivial typos and grammar Help: Improve formatting of list(TRANSFORM) sub-options Help: Add missing xref for CMAKE_EXECUTE_PROCESS_COMMAND_ECHO Help: Clarify how to provide multiple targets with cmake --target Help: Remove mention of CMAKE_INSTALL_DO_STRIP Help: Use consistent levels for cmake --loglevel and message() Expat Upstream (1): expat 2019-06-19 (d3b78b42) Frank Dana (1): message() help: Clarify how logs are displayed in various tools Oleg Chernovskiy (1): Help: Discourage using CMAKE_SOURCE_DIR in toolchain files Robert Maynard (2): CUDA: Do not device link if CUDA is not an enabled language CUDA: Restore device linking to imported static library targets Sebastian Holtermann (2): Tests: Autogen: Use valid rcc compression levels QtDialog: Use QPalette::WindowText instead of QPalette::Foreground Stefan Andersson (1): IAR: Add support for the RISC-V compiler
[ANNOUNCE] CMake 3.15.0-rc3 is ready for testing
I am proud to announce the third CMake 3.15 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.15 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.15/release/3.15.html Some of the more significant changes in CMake 3.15 are: * The "CMAKE_MSVC_RUNTIME_LIBRARY" variable and "MSVC_RUNTIME_LIBRARY" target property were introduced to select the runtime library used by compilers targeting the MSVC ABI. See policy "CMP0091". * With MSVC-like compilers the value of "CMAKE__FLAGS" no longer contains warning flags like "/W3" by default. See policy "CMP0092". * The "Clang" compiler variant on Windows that targets the MSVC ABI but has a GNU-like command line is now supported. * Preliminary support for the "Swift" language was added to the "Ninja" generator. * The "$" generator expression was introduced to allow specification of compile options for target files based on the "CMAKE__COMPILER_ID" and "LANGUAGE" of each source file. * The "generator expressions" "C_COMPILER_ID", "CXX_COMPILER_ID", "CUDA_COMPILER_ID", "Fortran_COMPILER_ID", "COMPILE_LANGUAGE", "COMPILE_LANG_AND_ID", and "PLATFORM_ID" learned to support matching one value from a comma-separated list. * The "CMAKE_FIND_PACKAGE_PREFER_CONFIG" variable was added to tell "find_package()" calls to look for a package configuration file first even if a find module is available. * The "PUBLIC_HEADER" and "PRIVATE_HEADER" properties may now be set on Interface Libraries. The headers specified by those properties can be installed using the "install(TARGETS)" command by passing the "PUBLIC_HEADER" and "PRIVATE_HEADER" arguments respectively. * The "CMAKE_VS_JUST_MY_CODE_DEBUGGING" variable and "VS_JUST_MY_CODE_DEBUGGING" target property were added to enable the Just My Code feature of the Visual Studio Debugger when compiling with MSVC cl 19.05 and higher. * The "FindBoost" module was reworked to expose a more consistent user experience between its “Config” and “Module” modes and with other find modules in general. * The "message()" command learned new types: "NOTICE", "VERBOSE", "DEBUG" and "TRACE". * The "export(PACKAGE)" command now does nothing unless enabled via "CMAKE_EXPORT_PACKAGE_REGISTRY". See policy "CMP0090". * The "CMAKE_GENERATOR" environment variable was added to specify a default generator to use when "cmake(1)" is run without a "-G" option. Additionally, environment variables "CMAKE_GENERATOR_PLATFORM", "CMAKE_GENERATOR_TOOLSET", and "CMAKE_GENERATOR_INSTANCE" were created to configure the generator. * The "cmake(1)" command gained a new "--install" option. This may be used after building a project to run installation without using the generated build system or the native build tool. * The "cmake(1)" command learned a new CLI option "--loglevel". * The "cmake-server(7)" mode has been deprecated and will be removed from a future version of CMake. Please port clients to use the "cmake-file-api(7)" instead. CMake 3.15 Release Notes Changes made since CMake 3.14 include the following. New Features Generators -- * The "Xcode" generator now supports per-target schemes. See the "CMAKE_XCODE_GENERATE_SCHEME" variable and "XCODE_GENERATE_SCHEME" target property. * The "Green Hills MULTI" generator has been updated: * It now supports the "add_custom_command()" and "add_custom_target()" commands. * It is now available on Linux. Languages - * Preliminary support for the "Swift" language was added to the "Ninja" generator: * Use the "SWIFTC" environment variable to specify a compiler. * The "Swift_DEPENDENCIES_FILE" target property and "Swift_DEPENDENCIES_FILE" source file property were added to customize dependency files. * The "Swift_MODULE_NAME" target property was added to customize the Swift module name. * The "Swift_DIAGNOSTICS_FILE" source property was added to indicate where to write the serialised Swift diagnostics. The Swift support is experimental, not considered stable, and may change in future releases of CMake. Compilers - * The "Clang" compiler variant on Windows that targets the MSVC ABI but has a GNU-like command line is now supported. * Support for the Clang-based ARM compiler was added with compiler id "ARMClang". * Support was added for the IAR compiler architectures Renesas RX, RL78, RH850 and Texas Instruments MSP430. * Support was added for the IAR compilers built for Linux (IAR BuildLx). Command-Line * The "CMAKE_GENERATOR" environment variable was added to specify a default generator to use when "cmake(1)" is run without a "-G" option. Additionally, environment variables "CMAKE_GENERATOR_PLATFORM", "CMAKE_GENERATOR_TOOLSET", and "CMAKE_GENERATOR_INSTANCE" were created to configure the generator.
[ANNOUNCE] CMake 3.15.0-rc2 is ready for testing
RIDE". This can be used to specify the current version of your source tree rather than using the update command to discover the current version that is checked out. CPack - * The "CPack IFW Generator" gained a new "CPACK_IFW_PACKAGE_STYLE_SHEET" variable to customize the installer stylesheet. Deprecated and Removed Features === * The "cmake-server(7)" mode has been deprecated and will be removed from a future version of CMake. Please port clients to use the "cmake-file-api(7)" instead. * The "ADDITIONAL_MAKE_CLEAN_FILES" directory property is now deprecated. Use the "ADDITIONAL_CLEAN_FILES" directory property instead. * The variable "CMAKE_AUTOMOC_RELAXED_MODE" is considered deprecated. Support still exists but will be removed in future versions. * The "export(PACKAGE)" command now does nothing unless enabled via "CMAKE_EXPORT_PACKAGE_REGISTRY". See policy "CMP0090". * The "Xcode" generator now requires at least Xcode 5. * An explicit deprecation diagnostic was added for policy "CMP0066" ("CMP0065" and below were already deprecated). The "cmake- policies(7)" manual explains that the OLD behaviors of all policies are deprecated and that projects should port to the NEW behaviors. Other Changes = * CMake learned how to compile C++14 with the IBM AIX XL compiler and the SunPro compiler and to compile C++20 with the AppleClang compiler. * With MSVC-like compilers the value of "CMAKE__FLAGS" no longer contains warning flags like "/W3" by default. See policy "CMP0092". * IBM Clang-based XL compilers that define "__ibmxl__" now use the compiler id "XLClang" instead of "XL". See policy "CMP0089". * The "file(REMOVE)" and "file(REMOVE_RECURSE)" commands were changed to ignore empty arguments with a warning instead of treating them as a relative path and removing the contents of the current directory. Changes made since CMake 3.15.0-rc1: Alexander Grund (5): Tests.FindBoost: Don't use BoostConfig in MODULE test Tests.RunCMake.FindBoost: Fix example BoostConfig FindBoost: Don't overwrite Boost_${_comp}_FOUND FindBoost: Add legacy variables and targets for compatibility FindBoost: Add tests for legacy variables Alexander Neumann (1): FindBLAS: Add second try for OpenBLAS with thread libraries. Brad King (8): Help: Document XLClang compiler id fileapi: Factor out helper to construct a version object cmake: Simplify implementation of -E capabilities cmake: Teach -E capabilities to report supported fileapi requests cmake-gui: Update Qt copyright holder in About dialog fileapi: Suppress lint warning about non-move with old jsoncpp Help: Document what project() calls use CMAKE_PROJECT_INCLUDE and friends CMake 3.15.0-rc2 Craig Scott (2): Help: Trivial typo and grammar fixes for FindEnvModules Help: Move ADDITIONAL_MAKE_CLEAN_FILES dir prop to deprecated section Cristian Adam (1): find_package: Fixed CMAKE_FIND_PACKAGE_PREFER_CONFIG Module fallback Marc Chevrier (1): Android: ensure PIE behavior is consistent regardless CMP0083 policy Mathieu Malaterre (1): CPack/NuGet: Find nuget tool on case sensitive file system Robert Maynard (1): FindMPI: Store imported target link flags as a list instead of a string Rolf Eike Beer (1): CheckCXXSymbolExists: reference to CheckCXXSourceCompiles instead of C version Sebastian Holtermann (2): Autogen: Fix header detection for paths with symbolic links Help: Improve ADDITIONAL_CLEAN_FILES documentation
[ANNOUNCE] CMake 3.15.0-rc1 is ready for testing
I am proud to announce the first CMake 3.15 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.15 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.15/release/3.15.html Some of the more significant changes in CMake 3.15 are: * The "CMAKE_MSVC_RUNTIME_LIBRARY" variable and "MSVC_RUNTIME_LIBRARY" target property were introduced to select the runtime library used by compilers targeting the MSVC ABI. See policy "CMP0091". * With MSVC-like compilers the value of "CMAKE__FLAGS" no longer contains warning flags like "/W3" by default. See policy "CMP0092". * The "Clang" compiler variant on Windows that targets the MSVC ABI but has a GNU-like command line is now supported. * Preliminary support for the "Swift" language was added to the "Ninja" generator. * The "$" generator expression was introduced to allow specification of compile options for target files based on the "CMAKE__COMPILER_ID" and "LANGUAGE" of each source file. * The "generator expressions" "C_COMPILER_ID", "CXX_COMPILER_ID", "CUDA_COMPILER_ID", "Fortran_COMPILER_ID", "COMPILE_LANGUAGE", "COMPILE_LANG_AND_ID", and "PLATFORM_ID" learned to support matching one value from a comma-separated list. * The "CMAKE_FIND_PACKAGE_PREFER_CONFIG" variable was added to tell "find_package()" calls to look for a package configuration file first even if a find module is available. * The "PUBLIC_HEADER" and "PRIVATE_HEADER" properties may now be set on Interface Libraries. The headers specified by those properties can be installed using the "install(TARGETS)" command by passing the "PUBLIC_HEADER" and "PRIVATE_HEADER" arguments respectively. * The "CMAKE_VS_JUST_MY_CODE_DEBUGGING" variable and "VS_JUST_MY_CODE_DEBUGGING" target property were added to enable the Just My Code feature of the Visual Studio Debugger when compiling with MSVC cl 19.05 and higher. * The "FindBoost" module was reworked to expose a more consistent user experience between its “Config” and “Module” modes and with other find modules in general. * The "message()" command learned new types: "NOTICE", "VERBOSE", "DEBUG" and "TRACE". * The "export(PACKAGE)" command now does nothing unless enabled via "CMAKE_EXPORT_PACKAGE_REGISTRY". See policy "CMP0090". * The "CMAKE_GENERATOR" environment variable was added to specify a default generator to use when "cmake(1)" is run without a "-G" option. Additionally, environment variables "CMAKE_GENERATOR_PLATFORM", "CMAKE_GENERATOR_TOOLSET", and "CMAKE_GENERATOR_INSTANCE" were created to configure the generator. * The "cmake(1)" command gained a new "--install" option. This may be used after building a project to run installation without using the generated build system or the native build tool. * The "cmake(1)" command learned a new CLI option "--loglevel". * The "cmake-server(7)" mode has been deprecated and will be removed from a future version of CMake. Please port clients to use the "cmake-file-api(7)" instead. CMake 3.15 Release Notes Changes made since CMake 3.14 include the following. New Features Generators -- * The "Xcode" generator now supports per-target schemes. See the "CMAKE_XCODE_GENERATE_SCHEME" variable and "XCODE_GENERATE_SCHEME" target property. * The "Green Hills MULTI" generator has been updated: * It now supports the "add_custom_command()" and "add_custom_target()" commands. * It is now available on Linux. Languages - * Preliminary support for the "Swift" language was added to the "Ninja" generator: * Use the "SWIFTC" environment variable to specify a compiler. * The "Swift_DEPENDENCIES_FILE" target property and "Swift_DEPENDENCIES_FILE" source file property were added to customize dependency files. * The "Swift_MODULE_NAME" target property was added to customize the Swift module name. * The "Swift_DIAGNOSTICS_FILE" source property was added to indicate where to write the serialised Swift diagnostics. The Swift support is experimental, not considered stable, and may change in future releases of CMake. Compilers - * The "Clang" compiler variant on Windows that targets the MSVC ABI but has a GNU-like command line is now supported. * Support for the Clang-based ARM compiler was added with compiler id "ARMClang". * Support was added for the IAR compiler architectures Renesas RX, RL78, RH850 and Texas Instruments MSP430. * Support was added for the IAR compilers built for Linux (IAR BuildLx). Command-Line * The "CMAKE_GENERATOR" environment variable was added to specify a default generator to use when "cmake(1)" is run without a "-G" option. Additionally, environment variables "CMAKE_GENERATOR_PLATFORM", "CMAKE_GENERATOR_TOOLSET", and "CMAKE_GENERATOR_INSTANCE" were created to configure the generator.
[ANNOUNCE] CMake 3.14.5 available for download
We are pleased to announce that CMake 3.14.5 is now available for download. The Visual Studio 2019 16.1 update introduced a regression in MSBuild's evaluation of custom command dependencies causing them to re-run on every build. CMake 3.14.5 includes a workaround, for more details on the issue see: https://gitlab.kitware.com/cmake/cmake/issues/19303 Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.14.5 since 3.14.4: Alex Turbov (1): FindBoost: Add compiler features for Boost Contract library Brad King (5): libarchive: avoid b64_encode name conflict with Solaris built-in function FindThreads: Drop incorrect docs about usage with C++ Do not exclude include directories made implicit by CPATH VS: Isolate custom command input/output generation scopes CMake 3.14.5 Frans van Dorsselaer (2): VS: Clarify name of custom commands AdditionalInputs variable VS: De-duplicate custom command dependencies
[ANNOUNCE] CMake 3.14.4 available for download
We are pleased to announce that CMake 3.14.4 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.14.4 since 3.14.3: Alex Turbov (2): FindBoost: Record compiler features for Boost 1.67 and above FindBoost: Fix compiler features for `fiber` and `context` Alexandru Croitor (1): iOS: Fix try_compile FILE_COPY not to fail Brad King (3): target_link_libraries: Fix static library private deps in other dirs Help: Add 3.14.4 release notes CMake 3.14.4 Daniele E. Domenichelli (1): FindSWIG: Support swig4.0 Gregor Jasny (2): Apple: Preserve high resolution mtime for static libraries Apple: Properly lookup XCTest for iOS and tvOS Marc Chevrier (2): FindPython: NumPy: fix erroneous dependencies management FindPython: ensure variable Python_RUNTIME_LIBRARY_DIRS is set correctly
[ANNOUNCE] CMake 3.13.5 available for download
We are pleased to announce that CMake 3.13.5 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.13.5 since 3.13.4: Brad King (3): target_link_libraries: Fix static library private deps in other dirs Help: Add 3.13.5 release notes CMake 3.13.5 Nils Gladitz (1): CMake: Fix WiX installer downgrades with versioned binaries
[ANNOUNCE] CMake 3.14.3 available for download
We are pleased to announce that CMake 3.14.3 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.14.3 since 3.14.2: Ben Boeckel (1): FindOpenGL: look for GLVND libraries with a libglvnd suffix Brad King (4): FindBoost: Add support for MSVC toolset version 14.2 IRSL: Update redist directory for VS 2019 update 1 VS: Provide the default platform name to project code CMake 3.14.3 Christian Pfeiffer (1): FindQt3: Restore missing lib and bin path suffixes Rolf Eike Beer (1): FindBoost: Fix detection with version suffixes on Gentoo
[ANNOUNCE] CMake 3.14.2 available for download
We are pleased to announce that CMake 3.14.2 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.14.2 since 3.14.1: Brad King (9): MSVC: Fix MSVC_TOOLSET_VERSION for VS 2019 v142 toolset ARMCC: Do not identify ARMClang as ARMCC IRSL: Fix discovery of VS 2019 v142 toolset redistributables Tests: Clarify hand-written cases in RunCMake.ParseImplicitIncludeInfo Tests: Teach RunCMake.ParseImplicitIncludeInfo to match output by regex Fix implicit include directory extraction for adaptive relative paths Xcode: Factor out duplicate source group code into lambda Xcode: Avoid mutating App Bundle targets during generation CMake 3.14.2 Julien Jomier (1): cmake-gui: Fix icon overlay on windows Regina Pfeifer (1): Modules/CTest: Fix SubmitURL mistersandman (1): cmake-gui: Fix theme on Windows with Qt >= 5.10
[ANNOUNCE] CMake 3.14.1 available for download
We are pleased to announce that CMake 3.14.1 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.14.1 since 3.14.0: Brad King (11): VS: Fix x64 host recognition by x86 cmake process find_program: Restore leading double slash on Windows network path Eclipse: Fix extra generator to not crash on interface libraries ARMCC: Fix identification of ARM compiler when it defines GNU macros Help: Clarify policy CMP0082 documentation Restore support for include_directories() in toolchain files CUDA: Tolerate square brackets in PROMPT environment variable cmake: Fix '-E copy foo .' to avoid clobbering file FindFontconfig: Convert module variables to camel case ParseImplicitIncludeInfo: Canonicalize implicit include dirs CMake 3.14.1 Clément Rezvoy (1): CPackIFW: Add missing cpack_ifw_configure_component_group option processing Marc Chevrier (1): FindPython*: ensure correct architecture is selected. Sebastian Holtermann (1): Autogen: Do not treat hard-coded -I/usr/include exclusion as implicit include Sylvain Joubert (1): ctest_coverage: fix out-of-bounds index in Jacoco parser
[ANNOUNCE] CMake 3.14.0 available for download
I am happy to announce that CMake 3.14.0 is now available for download at: https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.14 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.14/release/3.14.html Some of the more significant changes in CMake 3.14 are: * Support for running CMake on Windows XP and Windows Vista has been dropped. The precompiled Windows binaries provided on "cmake.org" now require Windows 7 or higher. * CMake now supports Cross Compiling for iOS, tvOS, or watchOS using simple toolchain files. * The "Visual Studio 16 2019" generator was added. This is experimental and based on "Visual Studio 2019 Preview 4" because this version of VS has not been released. The VS 2019 generator differs from generators for earlier versions in that it does not provide variants that specify the target platform in the generator name. Instead "CMAKE_GENERATOR_PLATFORM" must be used, e.g. through the "-A" command-line option. Furthermore, the default target platform (architecture) is now based on the *host* platform. The VS host toolset selection is now based on the host architecture as well. * The "Green Hills MULTI" generator has been updated to include Object Library support, support for target renaming and destination output control properties, and other improvements. * A "CMAKE_BUILD_RPATH_USE_ORIGIN" variable and corresponding "BUILD_RPATH_USE_ORIGIN" target property were added to enable use of relative runtime paths (RPATHs). This helps achieving relocatable and reproducible builds that are invariant of the build directory. * The "install(TARGETS)" command learned how to install to an appropriate default directory for a given target type, based on variables from the "GNUInstallDirs" module and built-in defaults, in lieu of a "DESTINATION" argument. * The "install(FILES)" and "install(DIRECTORY)" commands learned a new set of parameters for installing files as a file type, setting the destination based on the appropriate variables from "GNUInstallDirs" and built-in defaults, in lieu of a "DESTINATION" argument. * The "install(CODE)" and "install(SCRIPT)" commands learned to support generator expressions. See policy "CMP0087". * The "if()" command gained support for checking if cache variables are defined with the "DEFINED CACHE{VAR}" syntax. * A file-based api for clients to get semantic buildsystem information has been added. See the "cmake-file-api(7)" manual. This is intended to replace the "cmake-server(7)" mode for IDEs. * The "cmake(1)" Build Tool Mode ("cmake --build") gained "-- verbose" and "-v" options to specify verbose build output. Some generators such as Xcode don't support this option currently. * The "cmake(1)" "-E compare_files" command learned a new "--ignore- eol" option to specify that end-of-line differences (e.g. LF vs CRLF) should be ignored when comparing files. CMake 3.14 Release Notes Changes made since CMake 3.13 include the following. New Features Generators -- * The "Visual Studio 16 2019" generator was added. This is experimental and based on "Visual Studio 2019 Preview 4" because this version of VS has not been released. The VS 2019 generator differs from generators for earlier versions in that it does not provide variants that specify the target platform in the generator name. Instead "CMAKE_GENERATOR_PLATFORM" must be used, e.g. through the "-A" command-line option. Furthermore, the default target platform (architecture) is now based on the *host* platform. The VS host toolset selection is now based on the host architecture as well. * The "Green Hills MULTI" generator has been updated: * Now supports Object Libraries. * Now warns on unsupported project types such as shared libraries. * Now generates a top-level ".top.gpj" for each directory calling the "project()" command. The top-level project file "default.gpj" is no longer created. * Now honors target renaming and destination output control properties such as "RUNTIME_OUTPUT_DIRECTORY" and "OUTPUT_NAME". This also fixes support for installation rules generated by "install()". * Now honors source file properties "INCLUDE_DIRECTORIES", "COMPILE_DEFINITIONS", and "COMPILE_OPTIONS". * Now supports Dynamic Download Integrity Applications which did not include Integrate Files via "GHS_INTEGRITY_APP" and setting a target link flag of "-dynamic". * The contents of project files now sorts sources groups and files by name. Set the "GHS_NO_SOURCE_GROUP_FILE" target property to "ON" to generate a single project file for the target instead of a project file for each source group. Set the "CMAKE_GHS_NO_SOURCE_GROUP_FILE" variable to enable this for all targets. File-Based API -- * A file-based api for
[ANNOUNCE] CMake 3.14.0-rc4 is ready for testing
I am proud to announce the fourth CMake 3.14 release candidate. https://cmake.org/download/ The first two 3.14.0 release candidates included the FindOcatave module. This has been removed in rc3, and rc4 pending further development. Documentation is available at: https://cmake.org/cmake/help/v3.14 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.14/release/3.14.html Some of the more significant changes in CMake 3.14 are: * Support for running CMake on Windows XP and Windows Vista has been dropped. The precompiled Windows binaries provided on "cmake.org" now require Windows 7 or higher. * CMake now supports Cross Compiling for iOS, tvOS, or watchOS using simple toolchain files. * The "Visual Studio 16 2019" generator was added. This is experimental and based on "Visual Studio 2019 Preview 4" because this version of VS has not been released. The VS 2019 generator differs from generators for earlier versions in that it does not provide variants that specify the target platform in the generator name. Instead "CMAKE_GENERATOR_PLATFORM" must be used, e.g. through the "-A" command-line option. Furthermore, the default target platform (architecture) is now based on the *host* platform. The VS host toolset selection is now based on the host architecture as well. * The "Green Hills MULTI" generator has been updated to include Object Library support, support for target renaming and destination output control properties, and other improvements. * A "CMAKE_BUILD_RPATH_USE_ORIGIN" variable and corresponding "BUILD_RPATH_USE_ORIGIN" target property were added to enable use of relative runtime paths (RPATHs). This helps achieving relocatable and reproducible builds that are invariant of the build directory. * The "install(TARGETS)" command learned how to install to an appropriate default directory for a given target type, based on variables from the "GNUInstallDirs" module and built-in defaults, in lieu of a "DESTINATION" argument. * The "install(FILES)" and "install(DIRECTORY)" commands learned a new set of parameters for installing files as a file type, setting the destination based on the appropriate variables from "GNUInstallDirs" and built-in defaults, in lieu of a "DESTINATION" argument. * The "install(CODE)" and "install(SCRIPT)" commands learned to support generator expressions. See policy "CMP0087". * The "if()" command gained support for checking if cache variables are defined with the "DEFINED CACHE{VAR}" syntax. * A file-based api for clients to get semantic buildsystem information has been added. See the "cmake-file-api(7)" manual. This is intended to replace the "cmake-server(7)" mode for IDEs. * The "cmake(1)" Build Tool Mode ("cmake --build") gained "-- verbose" and "-v" options to specify verbose build output. Some generators such as Xcode don't support this option currently. * The "cmake(1)" "-E compare_files" command learned a new "--ignore- eol" option to specify that end-of-line differences (e.g. LF vs CRLF) should be ignored when comparing files. CMake 3.14 Release Notes Changes made since CMake 3.13 include the following. New Features Generators -- * The "Visual Studio 16 2019" generator was added. This is experimental and based on "Visual Studio 2019 Preview 4" because this version of VS has not been released. The VS 2019 generator differs from generators for earlier versions in that it does not provide variants that specify the target platform in the generator name. Instead "CMAKE_GENERATOR_PLATFORM" must be used, e.g. through the "-A" command-line option. Furthermore, the default target platform (architecture) is now based on the *host* platform. The VS host toolset selection is now based on the host architecture as well. * The "Green Hills MULTI" generator has been updated: * Now supports Object Libraries. * Now warns on unsupported project types such as shared libraries. * Now generates a top-level ".top.gpj" for each directory calling the "project()" command. The top-level project file "default.gpj" is no longer created. * Now honors target renaming and destination output control properties such as "RUNTIME_OUTPUT_DIRECTORY" and "OUTPUT_NAME". This also fixes support for installation rules generated by "install()". * Now honors source file properties "INCLUDE_DIRECTORIES", "COMPILE_DEFINITIONS", and "COMPILE_OPTIONS". * Now supports Dynamic Download Integrity Applications which did not include Integrate Files via "GHS_INTEGRITY_APP" and setting a target link flag of "-dynamic". * The contents of project files now sorts sources groups and files by name. Set the "GHS_NO_SOURCE_GROUP_FILE" target property to "ON" to generate a single project file for the target instead of a project file for each source group. Set the
[ANNOUNCE] CMake 3.14.0-rc3 is ready for testing
t. The "paxr" value will be mapped to "gnutar" and a deprecation message emitted. * CMake no longer issues a warning if a target listed in an "install(TARGETS)" command has its "EXCLUDE_FROM_ALL" property set to true. Changes made since CMake 3.14.0-rc2: Brad King (17): Prefix implicit include directories with sysroot on construction Restore unconditional use of "standard" include directories Do not explicitly report "standard" include directories as implicit Use -? instead of /? to test compiler for MSVC-like command-line support VS: Factor out a method to set the Windows SDK version internally VS: Tell VS 2019 to use Windows SDK 8.1 explicitly when needed Fortran: Do not suppress explicit use of implicit include directories Tests: Restore support for CMake 3.1 through 3.6 with MSVC FindThreads: Fix libc check to use proper header for pthread_kill VS: Fix detection of clang-cl with -T llvm include_external_msproject: Restore support for EXCLUDE_FROM_ALL FindOctave: Remove module pending further work FindThreads: Revert libc symbol check to pthread_create VS: Drop workaround needed only for VS 2019 preview 2 and 3 Help: Update VS 2019 generator release note for preview 4 ExternalProject: Restore default log dir with custom stamp dir CMake 3.14.0-rc3 Christian Pfeiffer (1): FindJNI: Unify path search, fix support for Java 9 Craig Scott (12): Help: Remove outdated statement about get_filename_component() Help: Clarify and improve readability of link-related file subcommands Release notes: Make ExternalProject dot points consistent Help: Clarify ExternalProject_Add()'s LOG_MERGED_STDOUTERR behavior EXCLUDE_FROM_ALL: Don't warn if installing target excluded from all CheckLangSourceRuns: Capture run output to log files Help: User-provided variable names for try_* commands Help: try_compile() readability and grammar improvements Help: Consistency in try_compile() docs for target type Help: Caveat for try_compile() and CMAKE_TRY_COMPILE_PLATFORM_VARIABLES Help: Add release note for new ARCH_INDEPENDENT option Help: Fix minor inaccuracies of what BUILD_RPATH_USE_ORIGIN affects Kyle Edwards (1): CMAKE_ROLE: Fix value in --build for Visual Studio generators Maikel van den Hurk (1): Add ASM Compiler detection for QCC Marc Chevrier (1): PIE link options: No warning when policy CMP0083 is not set. Mathieu Garaud (1): Extend C++17/C++14 feature checks to cover more standard library APIs Paul Seyfert (1): Help: Fix --build-and-test synopsis in ctest(1) Robert Maynard (1): CUDA: Filter out -framework arguments during device linking Sebastian Holtermann (2): Autogen: Add output caching GetExecutableTestOutput Autogen: Use output caching GetExecutableTestOutput Yves Frederix (1): FindBoost: Find boost libraries built with --layout=tagged
[ANNOUNCE] CMake 3.14.0-rc2 is ready for testing
I am proud to announce the second CMake 3.14 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.14 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.14/release/3.14.html Some of the more significant changes in CMake 3.14 are: * Support for running CMake on Windows XP and Windows Vista has been dropped. The precompiled Windows binaries provided on "cmake.org" now require Windows 7 or higher. * CMake now supports Cross Compiling for iOS, tvOS, or watchOS using simple toolchain files. * The "Visual Studio 16 2019" generator was added. This is experimental and based on "Visual Studio 2019 Preview 2" because this version of VS has not been released. The VS 2019 generator differs from generators for earlier versions in that it does not provide variants that specify the target platform in the generator name. Instead "CMAKE_GENERATOR_PLATFORM" must be used, e.g. through the "-A" command-line option. Furthermore, the default target platform (architecture) is now based on the *host* platform. The VS host toolset selection is now based on the host architecture as well. * The "Green Hills MULTI" generator has been updated to include Object Library support, support for target renaming and destination output control properties, and other improvements. * A "CMAKE_BUILD_RPATH_USE_ORIGIN" variable and corresponding "BUILD_RPATH_USE_ORIGIN" target property were added to enable use of relative runtime paths (RPATHs). This helps achieving relocatable and reproducible builds that are invariant of the build directory. * The "install(TARGETS)" command learned how to install to an appropriate default directory for a given target type, based on variables from the "GNUInstallDirs" module and built-in defaults, in lieu of a "DESTINATION" argument. * The "install(FILES)" and "install(DIRECTORY)" commands learned a new set of parameters for installing files as a file type, setting the destination based on the appropriate variables from "GNUInstallDirs" and built-in defaults, in lieu of a "DESTINATION" argument. * The "install(CODE)" and "install(SCRIPT)" commands learned to support generator expressions. See policy "CMP0087". * The "if()" command gained support for checking if cache variables are defined with the "DEFINED CACHE{VAR}" syntax. * A file-based api for clients to get semantic buildsystem information has been added. See the "cmake-file-api(7)" manual. This is intended to replace the "cmake-server(7)" mode for IDEs. * The "cmake(1)" Build Tool Mode ("cmake --build") gained "-- verbose" and "-v" options to specify verbose build output. Some generators such as Xcode don't support this option currently. * The "cmake(1)" "-E compare_files" command learned a new "--ignore- eol" option to specify that end-of-line differences (e.g. LF vs CRLF) should be ignored when comparing files. CMake 3.14 Release Notes Changes made since CMake 3.13 include the following. New Features Generators -- * The "Visual Studio 16 2019" generator was added. This is experimental and based on "Visual Studio 2019 Preview 2" because this version of VS has not been released. The VS 2019 generator differs from generators for earlier versions in that it does not provide variants that specify the target platform in the generator name. Instead "CMAKE_GENERATOR_PLATFORM" must be used, e.g. through the "-A" command-line option. Furthermore, the default target platform (architecture) is now based on the *host* platform. The VS host toolset selection is now based on the host architecture as well. * The "Green Hills MULTI" generator has been updated: * Now supports Object Libraries. * Now warns on unsupported project types such as shared libraries. * Now generates a top-level ".top.gpj" for each directory calling the "project()" command. The top-level project file "default.gpj" is no longer created. * Now honors target renaming and destination output control properties such as "RUNTIME_OUTPUT_DIRECTORY" and "OUTPUT_NAME". This also fixes support for installation rules generated by "install()". * Now honors source file properties "INCLUDE_DIRECTORIES", "COMPILE_DEFINITIONS", and "COMPILE_OPTIONS". * Now supports Dynamic Download Integrity Applications which did not include Integrate Files via "GHS_INTEGRITY_APP" and setting a target link flag of "-dynamic". * The contents of project files now sorts sources groups and files by name. Set the "GHS_NO_SOURCE_GROUP_FILE" target property to "ON" to generate a single project file for the target instead of a project file for each source group. Set the "CMAKE_GHS_NO_SOURCE_GROUP_FILE" variable to enable this for all targets. File-Based API -- * A file-based api for clients to get
[ANNOUNCE] CMake 3.14.0-rc1 is ready for testing
I am proud to announce the first CMake 3.14 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.14 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.14/release/3.14.html Some of the more significant changes in CMake 3.14 are: * Support for running CMake on Windows XP and Windows Vista has been dropped. The precompiled Windows binaries provided on "cmake.org" now require Windows 7 or higher. * CMake now supports Cross Compiling for iOS, tvOS, or watchOS using simple toolchain files. * The "Visual Studio 16 2019" generator was added. This is experimental and based on "Visual Studio 2019 Preview 2" because this version of VS has not been released. The VS 2019 generator differs from generators for earlier versions in that it does not provide variants that specify the target platform in the generator name. Instead "CMAKE_GENERATOR_PLATFORM" must be used, e.g. through the "-A" command-line option. Furthermore, the default target platform (architecture) is now based on the *host* platform. The VS host toolset selection is now based on the host architecture as well. * A "CMAKE_BUILD_RPATH_USE_ORIGIN" variable and corresponding "BUILD_RPATH_USE_ORIGIN" target property were added to enable use of relative runtime paths (RPATHs). This helps achieving relocatable and reproducible builds that are invariant of the build directory. * The "install(TARGETS)" command learned how to install to an appropriate default directory for a given target type, based on variables from the "GNUInstallDirs" module and built-in defaults, in lieu of a "DESTINATION" argument. * The "install(FILES)" and "install(DIRECTORY)" commands learned a new set of parameters for installing files as a file type, setting the destination based on the appropriate variables from "GNUInstallDirs" and built-in defaults, in lieu of a "DESTINATION" argument. * The "install(CODE)" and "install(SCRIPT)" commands learned to support generator expressions. See policy "CMP0087". * The "if()" command gained support for checking if cache variables are defined with the "DEFINED CACHE{VAR}" syntax. * A file-based api for clients to get semantic buildsystem information has been added. See the "cmake-file-api(7)" manual. This is intended to replace the "cmake-server(7)" mode for IDEs. * The "cmake(1)" Build Tool Mode ("cmake --build") gained "-- verbose" and "-v" options to specify verbose build output. Some generators such as Xcode don't support this option currently. * The "cmake(1)" "-E compare_files" command learned a new "--ignore- eol" option to specify that end-of-line differences (e.g. LF vs CRLF) should be ignored when comparing files. CMake 3.14 Release Notes Changes made since CMake 3.13 include the following. New Features Generators -- * The "Visual Studio 16 2019" generator was added. This is experimental and based on "Visual Studio 2019 Preview 2" because this version of VS has not been released. The VS 2019 generator differs from generators for earlier versions in that it does not provide variants that specify the target platform in the generator name. Instead "CMAKE_GENERATOR_PLATFORM" must be used, e.g. through the "-A" command-line option. Furthermore, the default target platform (architecture) is now based on the *host* platform. The VS host toolset selection is now based on the host architecture as well. File-Based API -- * A file-based api for clients to get semantic buildsystem information has been added. See the "cmake-file-api(7)" manual. This is intended to replace the "cmake-server(7)" mode for IDEs. Platforms - * CMake now supports Cross Compiling for iOS, tvOS, or watchOS using simple toolchain files. Command-Line * The "cmake(1)" Build Tool Mode ("cmake --build") gained "-- verbose" and "-v" options to specify verbose build output. Some generators such as Xcode don't support this option currently. * The "cmake(1)" "-E compare_files" command learned a new "--ignore- eol" option to specify that end-of-line differences (e.g. LF vs CRLF) should be ignored when comparing files. * The "cmake-gui(1)" dialog gained new "-S" and "-B" arguments to explicitly specify source and build directories. Commands * The "file()" command learned a new sub-command, "READ_SYMLINK", which can be used to determine the path that a symlink points to. * The "file()" command gained a "SIZE" mode to get the size of a file on disk. * The "find_package()" command learned to optionally resolve symbolic links in the paths to package configuration files. See the "CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS" variable. * The "get_filename_component()" command gained new "LAST_EXT" and "NAME_WLE" variants to work with the extension after the last "." in
[ANNOUNCE] CMake 3.13.4 available for download
We are pleased to announce that CMake 3.13.4 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.13.4 since 3.13.3: Ben Boeckel (2): Tests: add cases for providing Qt5Core_VERSION manually AutoGen: query Qt5 version from directory properties Brad King (5): Revert "file: Allow DOWNLOAD/UPLOAD using alternate authentication methods" Intel: Record support for relaxed constexpr by version 18.0.5 macOS: Restore compatibility for setting FRAMEWORK after install() FindLAPACK: Distinguish check result variable name from FindBLAS CMake 3.13.4 Chuck Atkins (1): macOS: Add missing explicit dependency on CoreServices framework Craig Scott (3): cmake: Convert no source/build dir error to warning Help: Add 3.13.4 release note for no source/build dir error/warning FindDoxygen: Escape backslashes in default values
[ANNOUNCE] CMake 3.13.3 available for download
We are pleased to announce that CMake 3.13.3 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! * The VS 2017 generator has been fixed to work when VS 2019 is installed. - Changes in 3.13.3 since 3.13.2: Brad King (4): VS: Exclude VS 2019 instances when using VS 2017 generator Tests: Add cases for -{C,D,U} without a source tree Tests: Add case for warning when AUTOMOC/UIC/RCC gets disabled CMake 3.13.3 Craig Scott (2): cmake: Stop processing if -P option lacks file name cmake: Ensure source and binary dirs are set Paul Seyfert (1): cmake: distinguish '-Cpath' from '-C path' in source dir parsing Sebastian Holtermann (1): Autogen: Issue a warning when AUTOMOC/UIC/RCC gets disabled. Tim Blechmann (1): BundleUtilities: Ensure target dir exists when creating symlinks
[ANNOUNCE] CMake 3.13.2 available for download
We are pleased to announce that CMake 3.13.2 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ * CMake 3.13.0 included a change to pass compiler implicit include directories to the "moc" tool for "AUTOMOC". This has been reverted due to regressing existing builds and will need further investigation before being re-introduced in a later release. Thanks for your support! - Changes in 3.13.2 since 3.13.1: Anton Chernov (1): CUDA: Add CUDA 10 (Turing) detection Brad King (2): CUDA: Fix crash on linking to a CUDA target without CUDA enabled CMake 3.13.2 Nils Gladitz (1): CPack/External: Fix status messages of staging scripts Sebastian Holtermann (1): Autogen: Revert passing compiler implicit includes to moc
[ANNOUNCE] CMake 3.13.1 available for download
We are pleased to announce that CMake 3.13.1 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.13.1 since 3.13.0: Brad King (3): Fortran: Fix module dependency scanning with upper-case SUBMODULE FindBoost: Restore finding without CXX language enabled CMake 3.13.1 Harry Mallon (1): VS: Avoid crash with VS 2015 when all SDKs are higher than 10.0.14393.0 Sebastian Holtermann (1): Autogen: Fix empty uic executable string
[ANNOUNCE] CMake 3.13.0 available for download
I am happy to announce that CMake 3.13.0 is now available for download at: https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.13 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.13/release/3.13.html Some of the more significant changes in CMake 3.13 are: * The Visual Studio Generators for VS 2010 and above learned to support the "INTERPROCEDURAL_OPTIMIZATION" target property and supporting "CheckIPOSupported" module. * The "Green Hills MULTI" generator has been updated to include support for platform, architecture, and toolset selection. * The "cmake" command gained the "-S " command line option to specify the location of the source directory. This option can be used independently of "-B". * The "cmake" command gained the "-B " command line option to specify the location of the build directory. This option can be used independently of "-S". * The "cmake" "-E create_symlink" command can now be used on Windows. * The "target_link_directories()" command was created to specify link directories for targets and their dependents. * The "target_link_options()" command was created to specify link options for targets and their dependents. * The "target_link_libraries()" command may now be called to modify targets created outside the current directory. See policy "CMP0079". * The "install(TARGETS)" command learned to install targets created outside the current directory. * A "VS_DEBUGGER_COMMAND_ARGUMENTS" target property was created to set the debugging command line arguments with Visual Studio Generators for VS 2010 and above. * A "VS_DEBUGGER_ENVIRONMENT" target property was created to set the debugging environment with Visual Studio Generators for VS 2010 and above. * The "option()" command now honors an existing normal variable of the same name and does nothing instead of possibly creating a cache entry (or setting its type) and removing the normal variable. See policy "CMP0077". * The "target_sources()" command now interprets relative source file paths as relative to the current source directory. This simplifies incrementally building up a target's sources from subdirectories. The "CMP0076" policy was added to provide backward compatibility with the old behavior where required. CMake 3.13 Release Notes Changes made since CMake 3.12 include the following. New Features Generators -- * The Visual Studio Generators for VS 2010 and above learned to support the "INTERPROCEDURAL_OPTIMIZATION" target property and supporting "CheckIPOSupported" module. * The "Xcode" generator learned to configure more Xcode Scheme fields. See the "CMAKE_XCODE_GENERATE_SCHEME" variable. * The "Green Hills MULTI" generator has been updated: * Added support for architecture selection through "CMAKE_GENERATOR_PLATFORM": e.g. "arm", "ppc", and "86". * Added support for toolset selection through "CMAKE_GENERATOR_TOOLSET", e.g. "comp_201205", "comp_201510", "comp_201722_beta". * Added support for platform selection through "GHS_TARGET_PLATFORM", e.g. "integrity", "linux", "standalone", etc. * No longer checks that "arm" based compilers are installed but ensures that the correct "gbuild.exe" exists. * No longer hard-codes ARM files, BSP, toolset, or OS locations. Command-Line * The "cmake(1)" command gained the "-S " command line option to specify the location of the source directory. This option can be used independently of "-B". * The "cmake(1)" command gained the "-B " command line option to specify the location of the build directory. This option can be used independently of "-S". * The "cmake(1)" "-E create_symlink" command can now be used on Windows. Commands * The "add_custom_command()" and "add_custom_target()" commands learned to support generator expressions in "WORKING_DIRECTORY" options. * The "add_link_options()" command was created to add link options in the current directory. * The "install(TARGETS)" command learned to install targets created outside the current directory. * The "link_directories()" command gained options to control insertion position. * The "list(SORT)" command gained options to control the comparison operation used to order the entries. * The "math()" command gained options for hexadecimal. * The "target_link_directories()" command was created to specify link directories for targets and their dependents. * The "target_link_options()" command was created to specify link options for targets and their dependents. * The "target_link_libraries()" command may now be called to modify targets created outside the current directory. See policy "CMP0079". Variables - * A "CMAKE_AUTOGEN_VERBOSE" variable was added to optionally increase the verbosity of "AUTOMOC", "AUTOUIC" and "AUTORCC" from within
[ANNOUNCE] CMake 3.13.0-rc3 is ready for testing
understand. The intention of this generator is to allow external packaging software to take advantage of CPack's features when it may not be possible to use CPack for the entire packaging process. Deprecated and Removed Features === * An explicit deprecation diagnostic was added for policies "CMP0055" through "CMP0063" ("CMP0054" and below were already deprecated). The "cmake-policies(7)" manual explains that the OLD behaviors of all policies are deprecated and that projects should port to the NEW behaviors. Other Changes = * The precompiled binaries provided on "cmake.org" now include qthelp- format documentation. * The "option()" command now honors an existing normal variable of the same name and does nothing instead of possibly creating a cache entry (or setting its type) and removing the normal variable. See policy "CMP0077". * The Makefile Generators learned to remove custom command and custom target byproducts during "make clean". * The "target_sources()" command now interprets relative source file paths as relative to the current source directory. This simplifies incrementally building up a target's sources from subdirectories. The "CMP0076" policy was added to provide backward compatibility with the old behavior where required. * The "BundleUtilities" module may no longer be included at configure time. This was always a bug anyway. See policy "CMP0080". * The "UseSWIG" module has changed strategy for target naming. See policy "CMP0078". * The "LINK_DIRECTORIES" target property now expects absolute paths. See policy "CMP0081". * The CPack generators have been moved into their own separate section in the documentation, rather than having the documentation in their internal implementation modules. These internal implementation modules are also no longer available to scripts that may have been incorrectly including them, because they should never have been available in the first place. Changes made since CMake 3.13.0-rc2: Brad King (12): FindMPI: Pass -pthread to CUDA compiler through -Xcompiler set_directory_properties: Restore in script mode Flang: Fix command-line used to preprocess sources CSharp: Fix regression in VS project type selection for custom target curl: Update script to get curl 7.62.0 curl: Update build within CMake to account for 7.62 changes FindProtobuf: Add missing link dependencies on threads curl: Modernize tiny test code used for build inside CMake curl: backport upstream fix to 7.62.0 regression add_custom_{command,target}: Fix WORKING_DIRECTORY leading genex FindBoost: Add explicit Boost_ARCHITECTURE option CMake 3.13.0-rc3 Craig Scott (3): Help: Fix generators link in cpack(1) manual CPack: Rename Ext generator to External Help: Use correct CPack generator names Curl Upstream (1): curl 2018-10-30 (19667715) Ivan Pozdeev (2): FindOpenMP: Fix warnings with -Wstrict-prototypes FindOpenMP: Log error output Jakub Benda (2): FindBLAS: Correct symbol searched in BLAS95 wrapper FindLAPACK: Correct library name and symbol searched in LAPACK95 wrapper Maikel van den Hurk (1): QNX: Update qcc depfile flags to be compliant with ccache Marc Chevrier (2): Help: clarify "LINKER:" prefix usage UseSWIG: multiple input files must be supported in version 2 Martin Quinson (1): FindBoost: Add support for stacktrace components Robert Maynard (1): CUDA: Filter out non-static libraries during device linking Sylvain Joubert (3): UseSWIG: Typo, add missing letter UseSWIG: Add target language and input file in command description FindPostgreSQL: Search for version 11 Vladimir Penev (1): server: Fix assertion failure on directory paths in file monitor
[ANNOUNCE] CMake 3.12.4 available for download
We are pleased to announce that CMake 3.12.4 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.12.4 since 3.12.3: Brad King (4): cmake: Distinguish '-E tar' warnings from errors copying data set_directory_properties: Restore in script mode CSharp: Fix regression in VS project type selection for custom target CMake 3.12.4 Chuck Atkins (1): FindMatlab: Guard against nonexistent installation Marc Chevrier (1): UseSWIG: fix regression for PHP language Robert Maynard (2): CUDA: Filter out host link flags during device linking CUDA: Filter out non-static libraries during device linking Vladimir Penev (1): server: Fix assertion failure on directory paths in file monitor
[ANNOUNCE] CMake 3.13.0-rc2 is ready for testing
e to use CPack for the entire packaging process. Deprecated and Removed Features === * An explicit deprecation diagnostic was added for policies "CMP0055" through "CMP0063" ("CMP0054" and below were already deprecated). The "cmake-policies(7)" manual explains that the OLD behaviors of all policies are deprecated and that projects should port to the NEW behaviors. Other Changes = * The precompiled binaries provided on "cmake.org" now include qthelp- format documentation. * The "option()" command now honors an existing normal variable of the same name and does nothing instead of possibly creating a cache entry (or setting its type) and removing the normal variable. See policy "CMP0077". * The Makefile Generators learned to remove custom command and custom target byproducts during "make clean". * The "target_sources()" command now interprets relative source file paths as relative to the current source directory. This simplifies incrementally building up a target's sources from subdirectories. The "CMP0076" policy was added to provide backward compatibility with the old behavior where required. * The "BundleUtilities" module may no longer be included at configure time. This was always a bug anyway. See policy "CMP0080". * The "UseSWIG" module has changed strategy for target naming. See policy "CMP0078". * The "LINK_DIRECTORIES" target property now expects absolute paths. See policy "CMP0081". * The CPack generators have been moved into their own separate section in the documentation, rather than having the documentation in their internal implementation modules. These internal implementation modules are also no longer available to scripts that may have been incorrectly including them, because they should never have been available in the first place. Changes made since CMake 3.13.0-rc1: Ben Boeckel (1): CMP0053: document that `$` is a valid literal variable character Brad King (17): Tests: Fix Cuda test project names VS: Drop workaround for CUDA compiler PDB location on CUDA 9.2+ VS: Add workaround for CUDA compiler PDB location with space install: Revert CODE,SCRIPT support for generator expressions cmake-server: Revert "Support codemodel filegroups for INTERFACE_SOURCES" Utilities/Release: Add qthelp docs to binary archives Help: Clarify command-line encoding of target_link_libraries items curl: Update script to get curl 7.61.1 curl: Backport to work with CMake 3.1 again curl: Update build within CMake to account for 7.61 changes curl: add missing type sizes for 'long long' and '__int64' VS: Fix crash on CSharp sources in a custom target VS: Fix CSharp support for win32res: and win32icon: flags cmake: Distinguish '-E tar' warnings from errors copying data Tests: Add missing BUILD_TESTING conditions cmake-gui: Fix "Open Project" for VS IDE with space in path CMake 3.13.0-rc2 Craig Scott (1): FindPkgConfig: Document support for > and < operators Curl Upstream (1): curl 2018-09-04 (432eb5f5) James Clarke (1): GNUInstallDirs: Don't use BSD info and man paths on GNU/kFreeBSD KWSys Upstream (1): KWSys 2018-10-19 (c2f29d2e) Kyle Edwards (3): Help: Convert DeployQt4 to block-style comment DeployQt4: Convert to 2-space indentation DeployQt4: Do not include BundleUtilities at configure time Marc Chevrier (1): FindPython*: Add missing registry paths Mario Bielert (1): FindBoost: Search for -mt variant of release libs Mateusz Łoskot (1): FindBoost: Add support for upcoming Boost 1.69 Robert Maynard (3): Help: document CMAKE_DEBUG_TARGET_PROPERTIES support for LINK properties CUDA: Filter out host link flags during device linking CUDA: Add test for device linking when host linking uses threads Rolf Eike Beer (1): FindThreads: Pass -pthread to CUDA compiler through -Xcompiler vim-cmake-syntax upstream (2): vim-cmake-syntax 2018-10-10 (ac1957fb) vim-cmake-syntax 2018-10-18 (64ff4bd7)
[ANNOUNCE] CMake 3.13.0-rc1 is ready for testing
I am proud to announce the first CMake 3.13 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.13 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.13/release/3.13.html Some of the more significant changes in CMake 3.13 are: * The Visual Studio Generators for VS 2010 and above learned to support the "INTERPROCEDURAL_OPTIMIZATION" target property and supporting "CheckIPOSupported" module. * The "Green Hills MULTI" generator has been updated to include support for platform, architecture, and toolset selection. * The "cmake" command gained the "-S " command line option to specify the location of the source directory. This option can be used independently of "-B". * The "cmake" command gained the "-B " command line option to specify the location of the build directory. This option can be used independently of "-S". * The "cmake" "-E create_symlink" command can now be used on Windows. * The "target_link_directories()" command was created to specify link directories for targets and their dependents. * The "target_link_options()" command was created to specify link options for targets and their dependents. * The "target_link_libraries()" command may now be called to modify targets created outside the current directory. See policy "CMP0079". * The "install(TARGETS)" command learned to install targets created outside the current directory. * The "install(CODE)" and "install(SCRIPT)" commands learned to support generator expressions. * A "VS_DEBUGGER_COMMAND_ARGUMENTS" target property was created to set the debugging command line arguments with Visual Studio Generators for VS 2010 and above. * A "VS_DEBUGGER_ENVIRONMENT" target property was created to set the debugging environment with Visual Studio Generators for VS 2010 and above. * The "option()" command now honors an existing normal variable of the same name and does nothing instead of possibly creating a cache entry (or setting its type) and removing the normal variable. See policy "CMP0077". * The "target_sources()" command now interprets relative source file paths as relative to the current source directory. This simplifies incrementally building up a target's sources from subdirectories. The "CMP0076" policy was added to provide backward compatibility with the old behavior where required. CMake 3.13 Release Notes Changes made since CMake 3.12 include the following. New Features Generators -- * The Visual Studio Generators for VS 2010 and above learned to support the "INTERPROCEDURAL_OPTIMIZATION" target property and supporting "CheckIPOSupported" module. * The "Xcode" generator learned to configure more Xcode Scheme fields. See the "CMAKE_XCODE_GENERATE_SCHEME" variable. * The "Green Hills MULTI" generator has been updated: * Added support for architecture selection through "CMAKE_GENERATOR_PLATFORM": e.g. "arm", "ppc", and "86". * Added support for toolset selection through "CMAKE_GENERATOR_TOOLSET", e.g. "comp_201205", "comp_201510", "comp_201722_beta". * Added support for platform selection through "GHS_TARGET_PLATFORM", e.g. "integrity", "linux", "standalone", etc. * No longer checks that "arm" based compilers are installed but ensures that the correct "gbuild.exe" exists. * No longer hard-codes ARM files, BSP, toolset, or OS locations. Command-Line * The "cmake(1)" command gained the "-S " command line option to specify the location of the source directory. This option can be used independently of "-B". * The "cmake(1)" command gained the "-B " command line option to specify the location of the build directory. This option can be used independently of "-S". * The "cmake(1)" "-E create_symlink" command can now be used on Windows. Commands * The "add_custom_command()" and "add_custom_target()" commands learned to support generator expressions in "WORKING_DIRECTORY" options. * The "add_link_options()" command was created to add link options in the current directory. * The "install(CODE)" and "install(SCRIPT)" commands learned to support generator expressions. * The "install(TARGETS)" command learned to install targets created outside the current directory. * The "link_directories()" command gained options to control insertion position. * The "list(SORT)" command gained options to control the comparison operation used to order the entries. * The "math()" command gained options for hexadecimal. * The "target_link_directories()" command was created to specify link directories for targets and their dependents. * The "target_link_options()" command was created to specify link options for targets and their dependents. * The "target_link_libraries()" command may now be called to modify targets created outside the current directory.
[ANNOUNCE] CMake 3.12.3 available for download
We are pleased to announce that CMake 3.12.3 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.12.3 since 3.12.2: Brad King (8): CTest: Fix --test-load regression FindMPI: Restore MPI__COMPILE_FLAGS as a command-line string FindDoxygen: Ensure policy settings allow use of IN_LIST libarchive: Backport fix for build with LibreSSL 2.7 libuv: do not require PATH_MAX to be defined VS: Fix CSharp flag selection when linking to a static C++ library CSharp: Fix regression in VS project type selection CMake 3.12.3 Kyle Edwards (1): CTest: Fix regression in ctest_start() Marc Chevrier (1): Help: TESTS property: clarify usage.
[ANNOUNCE] CMake 3.12.2 available for download
We are pleased to announce that CMake 3.12.2 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.12.2 since 3.12.1: Brad King (5): Android: Add support for NDK r18 CheckIPOSupported: Simplify result reporting logic CheckIPOSupported: Tolerate backslashes in output of failed checks VS: Restore CMakeLists.txt references in each target CMake 3.12.2 Craig Scott (2): EXPORT_PROPERTIES: Add test for an undefined property EXPORT_PROPERTIES: Prevent null dereference for undefined property David Demelier (1): Help: Fix typo in clang-tidy example -checks option Igor Kostenko (1): FindBoost: Fix context discovery for 1.60 and below Kenta Kubo (1): FindCUDA: Do not find cublas_device on CUDA >= 9.2 Raffi Enficiaud (1): FindMatlab: Remove erroneous duplicate code Robert Maynard (1): CUDA: Avoid using deprecated cublas_device to identify device lib dirs Shane Parris (1): cmState: Clear GlobVerificationManager state on Reset
[ANNOUNCE] CMake 3.12.1 available for download
We are pleased to announce that CMake 3.12.1 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.12.1 since 3.12.0: Brad King (8): CSharp: Set CMAKE_CSharp_COMPILER_LOADED variable when language is enabled UseSWIG: Use CSharp language only if it is enabled Help: Add explicit _ROOT variable documentation Tests: Add case showing CMP0048 warning on injected project command project: Do not issue CMP0048 warnings on injected call CPack: Restore support for 0-valued version components FindCUDA/select_compute_arch: Restore two-component CUDA_VERSION CMake 3.12.1 Craig Scott (1): GoogleTest: Ensure policy settings allow use of IN_LIST Dima Panov (1): FindTCL: Add support for version 8.7 Marc Chevrier (2): FindPython*: fix erroneous behavior on multiple 'find_package' calls UseSWIG: restore legacy behavior for SWIG_MODULE__EXTRA_FLAGS
[ANNOUNCE] CMake 3.12.0 available for download
module has learned to export the found libraries with full path for direct consumption with the "target_link_libraries()" command. * New "FindPython3" and "FindPython2" modules, as well as a new "FindPython" module, have been added to provide a new way to locate python environments. * The "UseSWIG" module gained a whole refresh and is now more consistent with standard CMake commands to generate libraries and is fully configurable through properties. * The "UseSWIG" module learned to manage multiple behaviors through "UseSWIG_MODULE_VERSION" variable to ensure legacy support as well as more robust handling of "SWIG" advanced features (like "%template"). * The "UseSWIG" module learned to support CSHARP variant wrapper files. * The "WriteCompilerDetectionHeader" module gained a "BARE_FEATURES" option to add a compatibility define for the exact keyword of a new language feature. Generator Expressions - * A new "$" and "$" "generator expression" has been added to enable consumption of generator expressions whose evaluation results itself in generator expressions. * A new "$" "generator expression" has been added. * A new "$" "generator expression" has been added. * A new "$" "generator expression" has been added. CTest - * The "ctest_start()" command has been reworked so that you can simply call "ctest_start(APPEND)" and it will read all the needed information from the TAG file. The argument parsing has also been relaxed so that the order of the arguments is less significant. * A "PROCESSOR_AFFINITY" test property was added to request that CTest run a test with CPU affinity for a set of processors disjoint from other concurrently running tests with the property set. CPack - * The "CPack" module now uses variables "CMAKE_PROJECT_VERSION_MAJOR", "CMAKE_PROJECT_VERSION_MINOR" and "CMAKE_PROJECT_VERSION_PATCH" to initialize corresponding CPack variables. * "cpack(1)" gained basic support for NuGet. See the "CPackNuGet" module. Other - * The "Compile Features" functionality is now aware of C++ 20. No specific features are yet enumerated besides the "cxx_std_20" meta- feature. * The "Compile Features" functionality is now aware of the availability of C features in MSVC since VS 2010. * The "Compile Features" functionality is now aware of C language standards supported by Texas Instruments C compilers. Deprecated and Removed Features === * The "Visual Studio 8 2005" generator has been removed. * CMake no longer produces "_LIB_DEPENDS" cache entries for library targets. See policy "CMP0073". Other Changes = * Include flags for directories marked as "SYSTEM" are now moved after non-system directories. The "-isystem" flag does this automatically, so moving them explicitly to the end makes the behavior consistent on compilers that do not have any "-isystem" flag. * Fortran dependency scanning now supports dependencies implied by Fortran Submodules. * The existence and functionality of the file "${CMAKE_BINARY_DIR}/cmake_install.cmake" has now been documented in the "install()" documentation so that external packaging software can take advantage of CPack-style component installs. * The "CheckIncludeFile" module "check_include_file" macro learned to honor the "CMAKE_REQUIRED_LIBRARIES" variable. See policy "CMP0075". * The "CheckIncludeFileCXX" module "check_include_file_cxx" macro learned to honor the "CMAKE_REQUIRED_LIBRARIES" variable. See policy "CMP0075". * The "CheckIncludeFiles" module "check_include_files" macro learned to honor the "CMAKE_REQUIRED_LIBRARIES" variable. See policy "CMP0075". * The "cmake(1)" "-E copy_directory" tool now fails when the source directory does not exist. Previously it succeeded by creating an empty destination directory. * The "UseSWIG" module "swig_add_library()" command (and legacy "swig_add_module" command) now set the prefix of Java modules to """" for MINGW, MSYS, and CYGWIN environments. Changes made since CMake 3.12.0-rc3: Brad King (2): Help: Mention IMPORTED_OBJECTS in add_library docs CMake 3.12.0 Christian Pfeiffer (1): Intel: Fix incorrectly documented extension flags Cristian Adam (1): QNX: Fix autogen compiler predefines detection Robert Maynard (1): Help: Add OBJECT_LIBRARY to TYPE target property documentation Roger Leigh (2): FindBoost: Add support for Boost 1.68 beta1 FindBoost: Change context header used
[ANNOUNCE] CMake 3.12.0-rc3 is ready for testing
I am proud to announce the third CMake 3.12 release candidate. https://cmake.org/download/ The first two 3.12.0 release candidates included a change to allow the target_link_libraries command to modify targets created outside the current directory. This has been reverted in rc3 due to problems with visibility of the linked targets. See issue 17943. Documentation is available at: https://cmake.org/cmake/help/v3.12 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.12/release/3.12.html Some of the more significant changes in CMake 3.12 are: * The "target_link_libraries()" command now supports Object Libraries. Linking to an object library uses its object files in direct dependents and also propagates usage requirements. * The "file(GLOB)" and "file(GLOB_RECURSE)" commands learned a new flag "CONFIGURE_DEPENDS" which enables expression of build system dependency on globbed directory's contents. * The "Compile Features" functionality is now aware of C++ 20. No specific features are yet enumerated besides the "cxx_std_20" meta- feature. * The Visual Studio Generators for VS 2017 learned to support a "version=14.##" option in the "CMAKE_GENERATOR_TOOLSET" value (e.g. via the "cmake(1)" "-T" option) to specify a toolset version number. * The "cmake(1)" Build Tool Mode ("cmake --build") gained "-- parallel []" and "-j []" options to specify a parallel build level. They map to corresponding options of the native build tool. * The "add_compile_definitions()" command was added to set preprocessor definitions at directory level. This supersedes "add_definitions()". * The "cmake_minimum_required()" and "cmake_policy(VERSION)" commands now accept a version range using the form "[...]". The "" version is required but policies are set based on the "" version. This allows projects to specify a range of versions for which they have been updated and avoid explicit policy settings. * The "find_package()" command now searches a prefix specified by a "PackageName_ROOT" CMake or environment variable. Package roots are maintained as a stack so nested calls to all "find_*" commands inside find modules also search the roots as prefixes. See policy "CMP0074". * A new "$" and "$" "generator expression" has been added to enable consumption of generator expressions whose evaluation results itself in generator expressions. * A new "$" "generator expression" has been added. * A new "$" "generator expression" has been added. * The "FindCURL" module now provides imported targets. * The "FindJPEG" module now provides imported targets. * A "FindODBC" module was added to find an Open Database Connectivity (ODBC) library. * New "FindPython3" and "FindPython2" modules, as well as a new "FindPython" module, have been added to provide a new way to locate python environments. CMake 3.12 Release Notes Changes made since CMake 3.11 include the following. New Features Generators -- * The Visual Studio Generators for VS 2017 learned to support a "version=14.##" option in the "CMAKE_GENERATOR_TOOLSET" value (e.g. via the "cmake(1)" "-T" option) to specify a toolset version number. Command-Line * The "cmake(1)" Build Tool Mode ("cmake --build") gained "-- parallel []" and "-j []" options to specify a parallel build level. They map to corresponding options of the native build tool. Commands * The "add_compile_definitions()" command was added to set preprocessor definitions at directory level. This supersedes "add_definitions()". * The "cmake_minimum_required()" and "cmake_policy(VERSION)" commands now accept a version range using the form "[...]". The "" version is required but policies are set based on the "" version. This allows projects to specify a range of versions for which they have been updated and avoid explicit policy settings. * The "file(GLOB)" and "file(GLOB_RECURSE)" commands learned a new flag "CONFIGURE_DEPENDS" which enables expression of build system dependency on globbed directory's contents. * The "file(TOUCH)" and "file(TOUCH_NOCREATE)" commands were added to expose "TOUCH" functionality without having to use CMake's command- line tool mode with "execute_process()". * The "find_package()" command now searches a prefix specified by a "PackageName_ROOT" CMake or environment variable. Package roots are maintained as a stack so nested calls to all "find_*" commands inside find modules also search the roots as prefixes. See policy "CMP0074". * The "install()" command learned an optional "NAMELINK_COMPONENT" parameter, which allows you to change the component for a shared library's namelink. If none is specified, the value of "COMPONENT" is used by default. * The "list()" command learned a "JOIN" sub-command to concatenate list's elements separated by a glue string. * The
[ANNOUNCE] CMake 3.12.0-rc2 is ready for testing
I am proud to announce the second CMake 3.12 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.12 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.12/release/3.12.html Some of the more significant changes in CMake 3.12 are: * The "target_link_libraries()" command now supports Object Libraries. Linking to an object library uses its object files in direct dependents and also propagates usage requirements. * The "target_link_libraries()" command may now be called to modify targets created outside the current directory. * The "file(GLOB)" and "file(GLOB_RECURSE)" commands learned a new flag "CONFIGURE_DEPENDS" which enables expression of build system dependency on globbed directory's contents. * The "Compile Features" functionality is now aware of C++ 20. No specific features are yet enumerated besides the "cxx_std_20" meta- feature. * The Visual Studio Generators for VS 2017 learned to support a "version=14.##" option in the "CMAKE_GENERATOR_TOOLSET" value (e.g. via the "cmake(1)" "-T" option) to specify a toolset version number. * The "cmake(1)" Build Tool Mode ("cmake --build") gained "-- parallel []" and "-j []" options to specify a parallel build level. They map to corresponding options of the native build tool. * The "add_compile_definitions()" command was added to set preprocessor definitions at directory level. This supersedes "add_definitions()". * The "cmake_minimum_required()" and "cmake_policy(VERSION)" commands now accept a version range using the form "[...]". The "" version is required but policies are set based on the "" version. This allows projects to specify a range of versions for which they have been updated and avoid explicit policy settings. * The "find_package()" command now searches a prefix specified by a "PackageName_ROOT" CMake or environment variable. Package roots are maintained as a stack so nested calls to all "find_*" commands inside find modules also search the roots as prefixes. See policy "CMP0074". * A new "$" and "$" "generator expression" has been added to enable consumption of generator expressions whose evaluation results itself in generator expressions. * A new "$" "generator expression" has been added. * A new "$" "generator expression" has been added. * The "FindCURL" module now provides imported targets. * The "FindJPEG" module now provides imported targets. * A "FindODBC" module was added to find an Open Database Connectivity (ODBC) library. * New "FindPython3" and "FindPython2" modules, as well as a new "FindPython" module, have been added to provide a new way to locate python environments. CMake 3.12 Release Notes Changes made since CMake 3.11 include the following. New Features Generators -- * The Visual Studio Generators for VS 2017 learned to support a "version=14.##" option in the "CMAKE_GENERATOR_TOOLSET" value (e.g. via the "cmake(1)" "-T" option) to specify a toolset version number. Command-Line * The "cmake(1)" Build Tool Mode ("cmake --build") gained "-- parallel []" and "-j []" options to specify a parallel build level. They map to corresponding options of the native build tool. Commands * The "add_compile_definitions()" command was added to set preprocessor definitions at directory level. This supersedes "add_definitions()". * The "cmake_minimum_required()" and "cmake_policy(VERSION)" commands now accept a version range using the form "[...]". The "" version is required but policies are set based on the "" version. This allows projects to specify a range of versions for which they have been updated and avoid explicit policy settings. * The "file(GLOB)" and "file(GLOB_RECURSE)" commands learned a new flag "CONFIGURE_DEPENDS" which enables expression of build system dependency on globbed directory's contents. * The "file(TOUCH)" and "file(TOUCH_NOCREATE)" commands were added to expose "TOUCH" functionality without having to use CMake's command- line tool mode with "execute_process()". * The "find_package()" command now searches a prefix specified by a "PackageName_ROOT" CMake or environment variable. Package roots are maintained as a stack so nested calls to all "find_*" commands inside find modules also search the roots as prefixes. See policy "CMP0074". * The "install()" command learned an optional "NAMELINK_COMPONENT" parameter, which allows you to change the component for a shared library's namelink. If none is specified, the value of "COMPONENT" is used by default. * The "list()" command learned a "JOIN" sub-command to concatenate list's elements separated by a glue string. * The "list()" command learned a "SUBLIST" sub-command to get a sublist of the list. * The "list()" command learned a "TRANSFORM" sub-command to apply
[ANNOUNCE] CMake 3.12.0-rc1 is ready for testing
I am proud to announce the first CMake 3.12 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.12 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.12/release/3.12.html Some of the more significant changes in CMake 3.12 are: * The "target_link_libraries()" command now supports Object Libraries. Linking to an object library uses its object files in direct dependents and also propagates usage requirements. * The "target_link_libraries()" command may now be called to modify targets created outside the current directory. * The "file(GLOB)" and "file(GLOB_RECURSE)" commands learned a new flag "CONFIGURE_DEPENDS" which enables expression of build system dependency on globbed directory's contents. * The "Compile Features" functionality is now aware of C++ 20. No specific features are yet enumerated besides the "cxx_std_20" meta- feature. * The Visual Studio Generators for VS 2017 learned to support a "version=14.##" option in the "CMAKE_GENERATOR_TOOLSET" value (e.g. via the "cmake(1)" "-T" option) to specify a toolset version number. * The "cmake(1)" Build Tool Mode ("cmake --build") gained "-- parallel []" and "-j []" options to specify a parallel build level. They map to corresponding options of the native build tool. * The "add_compile_definitions()" command was added to set preprocessor definitions at directory level. This supersedes "add_definitions()". * The "cmake_minimum_required()" and "cmake_policy(VERSION)" commands now accept a version range using the form "[...]". The "" version is required but policies are set based on the "" version. This allows projects to specify a range of versions for which they have been updated and avoid explicit policy settings. * The "find_package()" command now searches a prefix specified by a "PackageName_ROOT" CMake or environment variable. Package roots are maintained as a stack so nested calls to all "find_*" commands inside find modules also search the roots as prefixes. See policy "CMP0074". * A new "$" and "$" "generator expression" has been added to enable consumption of generator expressions whose evaluation results itself in generator expressions. * A new "$" "generator expression" has been added. * A new "$" "generator expression" has been added. * The "FindCURL" module now provides imported targets. * The "FindJPEG" module now provides imported targets. * A "FindODBC" module was added to find an Open Database Connectivity (ODBC) library. * New "FindPython3" and "FindPython2" modules, as well as a new "FindPython" module, have been added to provide a new way to locate python environments. CMake 3.12 Release Notes Changes made since CMake 3.11 include the following. New Features Generators -- * The Visual Studio Generators for VS 2017 learned to support a "version=14.##" option in the "CMAKE_GENERATOR_TOOLSET" value (e.g. via the "cmake(1)" "-T" option) to specify a toolset version number. Command-Line * The "cmake(1)" Build Tool Mode ("cmake --build") gained "-- parallel []" and "-j []" options to specify a parallel build level. They map to corresponding options of the native build tool. Commands * The "add_compile_definitions()" command was added to set preprocessor definitions at directory level. This supersedes "add_definitions()". * The "cmake_minimum_required()" and "cmake_policy(VERSION)" commands now accept a version range using the form "[...]". The "" version is required but policies are set based on the "" version. This allows projects to specify a range of versions for which they have been updated and avoid explicit policy settings. * The "file(GLOB)" and "file(GLOB_RECURSE)" commands learned a new flag "CONFIGURE_DEPENDS" which enables expression of build system dependency on globbed directory's contents. * The "file(TOUCH)" and "file(TOUCH_NOCREATE)" commands were added to expose "TOUCH" functionality without having to use CMake's command- line tool mode with "execute_process()". * The "find_package()" command now searches a prefix specified by a "PackageName_ROOT" CMake or environment variable. Package roots are maintained as a stack so nested calls to all "find_*" commands inside find modules also search the roots as prefixes. See policy "CMP0074". * The "install()" command learned an optional "NAMELINK_COMPONENT" parameter, which allows you to change the component for a shared library's namelink. If none is specified, the value of "COMPONENT" is used by default. * The "list()" command learned a "JOIN" sub-command to concatenate list's elements separated by a glue string. * The "list()" command learned a "SUBLIST" sub-command to get a sublist of the list. * The "list()" command learned a "TRANSFORM" sub-command to apply
[ANNOUNCE] CMake 3.11.4 available for download
We are pleased to announce that CMake 3.11.4 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.11.4 since 3.11.3: Brad King (2): Windows: Restore support for running CMake through a symlink CMake 3.11.4 Jean-Christophe Fillion-Robin (1): ExternalProject: Fix cache generation when args end with "-NOTFOUND" Matt McCormick (1): ExternalProject: Improve URL_HASH argument description
[ANNOUNCE] CMake 3.11.3 available for download
We are pleased to announce that CMake 3.11.3 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.11.3 since 3.11.2: Brad King (3): cmSystemTools: Revert GetRealPath implementation on Windows CPack: Fix cross-compilation of WiX generator CMake 3.11.3 Sander Vrijders (1): TestDriver: Replace strncpy with strcpy
[ANNOUNCE] CMake 3.11.2 available for download
We are pleased to announce that CMake 3.11.2 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ * Calling "add_library()" to create an alias of an imported target that is not globally visible now causes an error again as it did prior to 3.11.0. This diagnostic was accidentally dropped from CMake 3.11.0 and 3.11.1 by the change to allow globally visible imported targets to be aliased. * The "FindQt4" module "qt4_wrap_cpp", "qt4_wrap_ui" and "qt4_add_resources" macros now set "SKIP_AUTOMOC" and "SKIP_AUTOUIC" on their generated files. These files never need to be processed by moc or uic, and we must say so explicitly to account for policy "CMP0071". Thanks for your support! - Changes in 3.11.2 since 3.11.1: Brad King (8): Ninja: Do not add empty custom command for file(GENERATE) outputs C++ feature checks: Filter out warnings caused by local configuration libuv: linux/sparc64: use fcntl to set and clear O_NONBLOCK FindCUDA: Fix regression in separable compilation without cublas FindBoost: Remove extra indentation in 1.65/1.66 dependency block add_library: Restore error on alias of non-global imported target add_custom_{command,target}: Fix crash on empty expanded command CMake 3.11.2 Christian Pfeiffer (1): IRSL: Fix Intel library list for ifort-only setups Christof Krüger (1): InstallRequiredSystemLibraries: Check for existence of mfcm dlls Filip Matzner (1): FindBoost: Backport versioned python dependencies for v1.35 to v1.66 Marc Chevrier (5): Fix CMAKE_DISABLE_SOURCE_CHANGES recognition of top of build tree FindJava, FindJNI, UseJava: update for version 10 support FindJava, FindJNI: Ensure most recent version is searched first FindJava, FindJNI: fix erroneous regex, enhance registry lookup Help: Specify COMPILE_OPTIONS and COMPILE_FLAGS source properties usage Matthew Woehlke (2): Qt4Macros: Use get_property/set_property Qt4Macros: Don't AUTOMOC or AUTOUIC qt4-generated files Rolf Eike Beer (2): FindPkgConfig: do not unset unused variable FindBLAS: do not write an imported target name into BLAS_LIBRARIES Sebastian Holtermann (1): Autogen: Register generated dependency files
[ANNOUNCE] CMake 3.11.1 available for download
We are pleased to announce that CMake 3.11.1 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.11.1 since 3.11.0: Brad King (5): Revert "CheckIncludeFiles: Honor CMAKE_REQUIRED_LIBRARIES" CPack: Fix crash on invalid generator name Restore support for explicitly referenced CMakeLists.txt sources Exclude "libgcc_eh" library files from implicit link libraries CMake 3.11.1 Daniel Filipe (1): Features: Record for VS 2017 through 15.6 Kirill Erofeev (2): Explicitly require LibUV 1.10 or higher to build CMake bootstrap: Add option to enable/disable usage of system libuv R2RT (1): Fix crash with --trace-expand --warn-uninitialized together Roland Schulz (1): FindOpenMP: Fix support for Intel on Windows Sebastian Holtermann (7): Autogen: Protected calls to cmSystemTools::CollapseCombinedPath Autogen: Protected calls to cmSystemTools::Split/JoinPath Autogen: Protected calls to cmSystemTools::GetFilenameWithoutLastExtension Autogen: Protected calls to cmQtAutoGen::SubDirPrefix Autogen: Protected calls to cmFilePathChecksum Autogen: Use std::istreambuf_iterator for file so string reading Autogen: Print moc/uic/rcc output to stdout
[ANNOUNCE] CMake 3.11.0 available for download
I am proud to announce that CMake 3.11.0 is now available for download at: https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.11 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.11/release/3.11.html Some of the more significant changes in CMake 3.11 are: * The Makefile Generators and the "Ninja" generator learned to add compiler launcher tools along with the compiler for the "Fortran" language ("C", "CXX", and "CUDA" were supported previously). See the "CMAKE__COMPILER_LAUNCHER" variable and "_COMPILER_LAUNCHER" target property for details. * Visual Studio Generators learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS", "INCLUDE_DIRECTORIES", "COMPILE_OPTIONS", and "file(GENERATE)". See generator expression documentation for caveats. * The "Xcode" Generator learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS" and "INCLUDE_DIRECTORIES". It previously supported only "COMPILE_OPTIONS" and "file(GENERATE)". See generator expression documentation for caveats. * "add_library()" and "add_executable()" commands can now be called without any sources and will not complain as long as sources are added later via the "target_sources()" command. * The "target_compile_definitions()" command learned to set the "INTERFACE_COMPILE_DEFINITIONS" property on Imported Targets. * The "target_compile_features()" command learned to set the "INTERFACE_COMPILE_FEATURES" property on Imported Targets. * The "target_compile_options()" command learned to set the "INTERFACE_COMPILE_OPTIONS" property on Imported Targets. * The "target_include_directories()" command learned to set the "INTERFACE_INCLUDE_DIRECTORIES" property on Imported Targets. * The "target_sources()" command learned to set the "INTERFACE_SOURCES" property on Imported Targets. * The "target_link_libraries()" command learned to set the "INTERFACE_LINK_LIBRARIES" property on Imported Targets. * The "COMPILE_DEFINITIONS" source file property learned to support "generator expressions". * A "COMPILE_OPTIONS" source file property was added to manage list of options to pass to the compiler. * When using "AUTOMOC" or "AUTOUIC", CMake now starts multiple parallel "moc" or "uic" processes to reduce the build time. A new "CMAKE_AUTOGEN_PARALLEL" variable and "AUTOGEN_PARALLEL" target property may be set to specify the number of parallel "moc" or "uic" processes to start. The default is derived from the number of CPUs on the host. CMake 3.11 Release Notes Changes made since CMake 3.10 include the following. New Features Platforms - * TI C/C++ compilers are now supported by the "Ninja" generator. Generators -- * The "CodeBlocks" extra generator learned to check a "CMAKE_CODEBLOCKS_COMPILER_ID" variable for a custom compiler identification value to place in the project file. * The Makefile Generators and the "Ninja" generator learned to add compiler launcher tools along with the compiler for the "Fortran" language ("C", "CXX", and "CUDA" were supported previously). See the "CMAKE__COMPILER_LAUNCHER" variable and "_COMPILER_LAUNCHER" target property for details. * Visual Studio Generators learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS", "INCLUDE_DIRECTORIES", "COMPILE_OPTIONS", and "file(GENERATE)". See generator expression documentation for caveats. * The "Xcode" generator learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS" and "INCLUDE_DIRECTORIES". It previously supported only "COMPILE_OPTIONS" and "file(GENERATE)". See generator expression documentation for caveats. Commands * "add_library()" and "add_executable()" commands can now be called without any sources and will not complain as long as sources are added later via the "target_sources()" command. * The "file(DOWNLOAD)" and "file(UPLOAD)" commands gained "NETRC" and "NETRC_FILE" options to specify use of a ".netrc" file. * The "target_compile_definitions()" command learned to set the "INTERFACE_COMPILE_DEFINITIONS" property on Imported Targets. * The "target_compile_features()" command learned to set the "INTERFACE_COMPILE_FEATURES" property on Imported Targets. * The "target_compile_options()" command learned to set the "INTERFACE_COMPILE_OPTIONS" property on Imported Targets. * The "target_include_directories()" command learned to set the "INTERFACE_INCLUDE_DIRECTORIES" property on Imported Targets. * The "target_sources()" command learned to set the "INTERFACE_SOURCES" property on Imported Targets. * The "target_link_libraries()" command learned to set the "INTERFACE_LINK_LIBRARIES" property on Imported Targets. Variables - * A
[ANNOUNCE] CMake 3.11.0-rc4 is now ready for testing
I am proud to announce the fourth CMake 3.11 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.11 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.11/release/3.11.html Some of the more significant changes in CMake 3.11 are: * The Makefile Generators and the "Ninja" generator learned to add compiler launcher tools along with the compiler for the "Fortran" language ("C", "CXX", and "CUDA" were supported previously). See the "CMAKE__COMPILER_LAUNCHER" variable and "_COMPILER_LAUNCHER" target property for details. * Visual Studio Generators learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS", "INCLUDE_DIRECTORIES", "COMPILE_OPTIONS", and "file(GENERATE)". See generator expression documentation for caveats. * The "Xcode" Generator learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS" and "INCLUDE_DIRECTORIES". It previously supported only "COMPILE_OPTIONS" and "file(GENERATE)". See generator expression documentation for caveats. * "add_library()" and "add_executable()" commands can now be called without any sources and will not complain as long as sources are added later via the "target_sources()" command. * The "target_compile_definitions()" command learned to set the "INTERFACE_COMPILE_DEFINITIONS" property on Imported Targets. * The "target_compile_features()" command learned to set the "INTERFACE_COMPILE_FEATURES" property on Imported Targets. * The "target_compile_options()" command learned to set the "INTERFACE_COMPILE_OPTIONS" property on Imported Targets. * The "target_include_directories()" command learned to set the "INTERFACE_INCLUDE_DIRECTORIES" property on Imported Targets. * The "target_sources()" command learned to set the "INTERFACE_SOURCES" property on Imported Targets. * The "target_link_libraries()" command learned to set the "INTERFACE_LINK_LIBRARIES" property on Imported Targets. * The "COMPILE_DEFINITIONS" source file property learned to support "generator expressions". * A "COMPILE_OPTIONS" source file property was added to manage list of options to pass to the compiler. * When using "AUTOMOC" or "AUTOUIC", CMake now starts multiple parallel "moc" or "uic" processes to reduce the build time. A new "CMAKE_AUTOGEN_PARALLEL" variable and "AUTOGEN_PARALLEL" target property may be set to specify the number of parallel "moc" or "uic" processes to start. The default is derived from the number of CPUs on the host. CMake 3.11 Release Notes Changes made since CMake 3.10 include the following. New Features Platforms - * TI C/C++ compilers are now supported by the "Ninja" generator. Generators -- * The "CodeBlocks" extra generator learned to check a "CMAKE_CODEBLOCKS_COMPILER_ID" variable for a custom compiler identification value to place in the project file. * The Makefile Generators and the "Ninja" generator learned to add compiler launcher tools along with the compiler for the "Fortran" language ("C", "CXX", and "CUDA" were supported previously). See the "CMAKE__COMPILER_LAUNCHER" variable and "_COMPILER_LAUNCHER" target property for details. * Visual Studio Generators learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS", "INCLUDE_DIRECTORIES", "COMPILE_OPTIONS", and "file(GENERATE)". See generator expression documentation for caveats. * The "Xcode" generator learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS" and "INCLUDE_DIRECTORIES". It previously supported only "COMPILE_OPTIONS" and "file(GENERATE)". See generator expression documentation for caveats. Commands * "add_library()" and "add_executable()" commands can now be called without any sources and will not complain as long as sources are added later via the "target_sources()" command. * The "file(DOWNLOAD)" and "file(UPLOAD)" commands gained "NETRC" and "NETRC_FILE" options to specify use of a ".netrc" file. * The "target_compile_definitions()" command learned to set the "INTERFACE_COMPILE_DEFINITIONS" property on Imported Targets. * The "target_compile_features()" command learned to set the "INTERFACE_COMPILE_FEATURES" property on Imported Targets. * The "target_compile_options()" command learned to set the "INTERFACE_COMPILE_OPTIONS" property on Imported Targets. * The "target_include_directories()" command learned to set the "INTERFACE_INCLUDE_DIRECTORIES" property on Imported Targets. * The "target_sources()" command learned to set the "INTERFACE_SOURCES" property on Imported Targets. * The "target_link_libraries()" command learned to set the "INTERFACE_LINK_LIBRARIES" property on Imported Targets. Variables - * A
[ANNOUNCE] CMake 3.10.3 available for download
We are pleased to announce that CMake 3.10.3 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.10.3 since 3.10.2: Brad King (1): CMake 3.10.3 Craig Scott (1): GoogleTest: Rename TIMEOUT parameter to avoid clash Sebastian Holtermann (1): Autogen: Fix for the empty source file crash in 3.10.2 Tianhao Chai (1): ccmake: fix status line buffer overflow on very wide terminals
[ANNOUNCE] CMake 3.11.0-rc3 is now ready for testing
I am proud to announce the third CMake 3.11 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.11 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.11/release/3.11.html Some of the more significant changes in CMake 3.11 are: * The Makefile Generators and the "Ninja" generator learned to add compiler launcher tools along with the compiler for the "Fortran" language ("C", "CXX", and "CUDA" were supported previously). See the "CMAKE__COMPILER_LAUNCHER" variable and "_COMPILER_LAUNCHER" target property for details. * Visual Studio Generators learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS", "INCLUDE_DIRECTORIES", "COMPILE_OPTIONS", and "file(GENERATE)". See generator expression documentation for caveats. * The "Xcode" Generator learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS" and "INCLUDE_DIRECTORIES". It previously supported only "COMPILE_OPTIONS" and "file(GENERATE)". See generator expression documentation for caveats. * "add_library()" and "add_executable()" commands can now be called without any sources and will not complain as long as sources are added later via the "target_sources()" command. * The "target_compile_definitions()" command learned to set the "INTERFACE_COMPILE_DEFINITIONS" property on Imported Targets. * The "target_compile_features()" command learned to set the "INTERFACE_COMPILE_FEATURES" property on Imported Targets. * The "target_compile_options()" command learned to set the "INTERFACE_COMPILE_OPTIONS" property on Imported Targets. * The "target_include_directories()" command learned to set the "INTERFACE_INCLUDE_DIRECTORIES" property on Imported Targets. * The "target_sources()" command learned to set the "INTERFACE_SOURCES" property on Imported Targets. * The "target_link_libraries()" command learned to set the "INTERFACE_LINK_LIBRARIES" property on Imported Targets. * The "COMPILE_DEFINITIONS" source file property learned to support "generator expressions". * A "COMPILE_OPTIONS" source file property was added to manage list of options to pass to the compiler. * When using "AUTOMOC" or "AUTOUIC", CMake now starts multiple parallel "moc" or "uic" processes to reduce the build time. A new "CMAKE_AUTOGEN_PARALLEL" variable and "AUTOGEN_PARALLEL" target property may be set to specify the number of parallel "moc" or "uic" processes to start. The default is derived from the number of CPUs on the host. CMake 3.11 Release Notes Changes made since CMake 3.10 include the following. New Features Platforms - * TI C/C++ compilers are now supported by the "Ninja" generator. Generators -- * The "CodeBlocks" extra generator learned to check a "CMAKE_CODEBLOCKS_COMPILER_ID" variable for a custom compiler identification value to place in the project file. * The Makefile Generators and the "Ninja" generator learned to add compiler launcher tools along with the compiler for the "Fortran" language ("C", "CXX", and "CUDA" were supported previously). See the "CMAKE__COMPILER_LAUNCHER" variable and "_COMPILER_LAUNCHER" target property for details. * Visual Studio Generators learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS", "INCLUDE_DIRECTORIES", "COMPILE_OPTIONS", and "file(GENERATE)". See generator expression documentation for caveats. * The "Xcode" generator learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS" and "INCLUDE_DIRECTORIES". It previously supported only "COMPILE_OPTIONS" and "file(GENERATE)". See generator expression documentation for caveats. Commands * "add_library()" and "add_executable()" commands can now be called without any sources and will not complain as long as sources are added later via the "target_sources()" command. * The "file(DOWNLOAD)" and "file(UPLOAD)" commands gained "NETRC" and "NETRC_FILE" options to specify use of a ".netrc" file. * The "target_compile_definitions()" command learned to set the "INTERFACE_COMPILE_DEFINITIONS" property on Imported Targets. * The "target_compile_features()" command learned to set the "INTERFACE_COMPILE_FEATURES" property on Imported Targets. * The "target_compile_options()" command learned to set the "INTERFACE_COMPILE_OPTIONS" property on Imported Targets. * The "target_include_directories()" command learned to set the "INTERFACE_INCLUDE_DIRECTORIES" property on Imported Targets. * The "target_sources()" command learned to set the "INTERFACE_SOURCES" property on Imported Targets. * The "target_link_libraries()" command learned to set the "INTERFACE_LINK_LIBRARIES" property on Imported Targets. Variables - * A
[ANNOUNCE] CMake 3.11.0-rc2 is now ready for testing
I am proud to announce the second CMake 3.11 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.11 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.11/release/3.11.html Some of the more significant changes in CMake 3.11 are: * The Makefile Generators and the "Ninja" generator learned to add compiler launcher tools along with the compiler for the "Fortran" language ("C", "CXX", and "CUDA" were supported previously). See the "CMAKE__COMPILER_LAUNCHER" variable and "_COMPILER_LAUNCHER" target property for details. * Visual Studio Generators learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS", "INCLUDE_DIRECTORIES", "COMPILE_OPTIONS", and "file(GENERATE)". See generator expression documentation for caveats. * The "Xcode" Generator learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS" and "INCLUDE_DIRECTORIES". It previously supported only "COMPILE_OPTIONS" and "file(GENERATE)". See generator expression documentation for caveats. * "add_library()" and "add_executable()" commands can now be called without any sources and will not complain as long as sources are added later via the "target_sources()" command. * The "target_compile_definitions()" command learned to set the "INTERFACE_COMPILE_DEFINITIONS" property on Imported Targets. * The "target_compile_features()" command learned to set the "INTERFACE_COMPILE_FEATURES" property on Imported Targets. * The "target_compile_options()" command learned to set the "INTERFACE_COMPILE_OPTIONS" property on Imported Targets. * The "target_include_directories()" command learned to set the "INTERFACE_INCLUDE_DIRECTORIES" property on Imported Targets. * The "target_sources()" command learned to set the "INTERFACE_SOURCES" property on Imported Targets. * The "target_link_libraries()" command learned to set the "INTERFACE_LINK_LIBRARIES" property on Imported Targets. * The "COMPILE_DEFINITIONS" source file property learned to support "generator expressions". * A "COMPILE_OPTIONS" source file property was added to manage list of options to pass to the compiler. * When using "AUTOMOC" or "AUTOUIC", CMake now starts multiple parallel "moc" or "uic" processes to reduce the build time. A new "CMAKE_AUTOGEN_PARALLEL" variable and "AUTOGEN_PARALLEL" target property may be set to specify the number of parallel "moc" or "uic" processes to start. The default is derived from the number of CPUs on the host. CMake 3.11 Release Notes Changes made since CMake 3.10 include the following. New Features Platforms - * TI C/C++ compilers are now supported by the "Ninja" generator. Generators -- * The "CodeBlocks" extra generator learned to check a "CMAKE_CODEBLOCKS_COMPILER_ID" variable for a custom compiler identification value to place in the project file. * The Makefile Generators and the "Ninja" generator learned to add compiler launcher tools along with the compiler for the "Fortran" language ("C", "CXX", and "CUDA" were supported previously). See the "CMAKE__COMPILER_LAUNCHER" variable and "_COMPILER_LAUNCHER" target property for details. * Visual Studio Generators learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS", "INCLUDE_DIRECTORIES", "COMPILE_OPTIONS", and "file(GENERATE)". See generator expression documentation for caveats. * The "Xcode" generator learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS" and "INCLUDE_DIRECTORIES". It previously supported only "COMPILE_OPTIONS" and "file(GENERATE)". See generator expression documentation for caveats. Commands * "add_library()" and "add_executable()" commands can now be called without any sources and will not complain as long as sources are added later via the "target_sources()" command. * The "file(DOWNLOAD)" and "file(UPLOAD)" commands gained "NETRC" and "NETRC_FILE" options to specify use of a ".netrc" file. * The "target_compile_definitions()" command learned to set the "INTERFACE_COMPILE_DEFINITIONS" property on Imported Targets. * The "target_compile_features()" command learned to set the "INTERFACE_COMPILE_FEATURES" property on Imported Targets. * The "target_compile_options()" command learned to set the "INTERFACE_COMPILE_OPTIONS" property on Imported Targets. * The "target_include_directories()" command learned to set the "INTERFACE_INCLUDE_DIRECTORIES" property on Imported Targets. * The "target_sources()" command learned to set the "INTERFACE_SOURCES" property on Imported Targets. * The "target_link_libraries()" command learned to set the "INTERFACE_LINK_LIBRARIES" property on Imported Targets. Variables - * A
[ANNOUNCE] CMake 3.11.0-rc1 is now ready for testing
I am proud to announce the first CMake 3.11 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.11 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.11/release/3.11.html Some of the more significant changes in CMake 3.11 are: * The Makefile Generators and the "Ninja" generator learned to add compiler launcher tools along with the compiler for the "Fortran" language ("C", "CXX", and "CUDA" were supported previously). See the "CMAKE__COMPILER_LAUNCHER" variable and "_COMPILER_LAUNCHER" target property for details. * Visual Studio Generators learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS", "INCLUDE_DIRECTORIES", "COMPILE_OPTIONS", and "file(GENERATE)". See generator expression documentation for caveats. * The "Xcode" Generator learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS" and "INCLUDE_DIRECTORIES". It previously supported only "COMPILE_OPTIONS" and "file(GENERATE)". See generator expression documentation for caveats. * "add_library()" and "add_executable()" commands can now be called without any sources and will not complain as long as sources are added later via the "target_sources()" command. * The "target_compile_definitions()" command learned to set the "INTERFACE_COMPILE_DEFINITIONS" property on Imported Targets. * The "target_compile_features()" command learned to set the "INTERFACE_COMPILE_FEATURES" property on Imported Targets. * The "target_compile_options()" command learned to set the "INTERFACE_COMPILE_OPTIONS" property on Imported Targets. * The "target_include_directories()" command learned to set the "INTERFACE_INCLUDE_DIRECTORIES" property on Imported Targets. * The "target_sources()" command learned to set the "INTERFACE_SOURCES" property on Imported Targets. * The "target_link_libraries()" command learned to set the "INTERFACE_LINK_LIBRARIES" property on Imported Targets. * The "COMPILE_DEFINITIONS" source file property learned to support "generator expressions". * A "COMPILE_OPTIONS" source file property was added to manage list of options to pass to the compiler. * When using "AUTOMOC" or "AUTOUIC", CMake now starts multiple parallel "moc" or "uic" processes to reduce the build time. A new "CMAKE_AUTOGEN_PARALLEL" variable and "AUTOGEN_PARALLEL" target property may be set to specify the number of parallel "moc" or "uic" processes to start. The default is derived from the number of CPUs on the host. CMake 3.11 Release Notes Changes made since CMake 3.10 include the following. New Features Platforms - * TI C/C++ compilers are now supported by the "Ninja" generator. Generators -- * The "CodeBlocks" extra generator learned to check a "CMAKE_CODEBLOCKS_COMPILER_ID" variable for a custom compiler identification value to place in the project file. * The Makefile Generators and the "Ninja" generator learned to add compiler launcher tools along with the compiler for the "Fortran" language ("C", "CXX", and "CUDA" were supported previously). See the "CMAKE__COMPILER_LAUNCHER" variable and "_COMPILER_LAUNCHER" target property for details. * Visual Studio Generators learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS", "INCLUDE_DIRECTORIES", "COMPILE_OPTIONS", and "file(GENERATE)". See generator expression documentation for caveats. * The "Xcode" generator learned to support the "COMPILE_LANGUAGE" "generator expression" in target-wide "COMPILE_DEFINITIONS" and "INCLUDE_DIRECTORIES". It previously supported only "COMPILE_OPTIONS" and "file(GENERATE)". See generator expression documentation for caveats. Commands * "add_library()" and "add_executable()" commands can now be called without any sources and will not complain as long as sources are added later via the "target_sources()" command. * The "file(DOWNLOAD)" and "file(UPLOAD)" commands gained "NETRC" and "NETRC_FILE" options to specify use of a ".netrc" file. * The "target_compile_definitions()" command learned to set the "INTERFACE_COMPILE_DEFINITIONS" property on Imported Targets. * The "target_compile_features()" command learned to set the "INTERFACE_COMPILE_FEATURES" property on Imported Targets. * The "target_compile_options()" command learned to set the "INTERFACE_COMPILE_OPTIONS" property on Imported Targets. * The "target_include_directories()" command learned to set the "INTERFACE_INCLUDE_DIRECTORIES" property on Imported Targets. * The "target_sources()" command learned to set the "INTERFACE_SOURCES" property on Imported Targets. * The "target_link_libraries()" command learned to set the "INTERFACE_LINK_LIBRARIES" property on Imported Targets. Variables - * A
[ANNOUNCE] CMake 3.10.2 available for download
We are pleased to announce that CMake 3.10.2 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.10.2 since 3.10.1: Brad King (2): KWIML: Backport RISC-V update to CMake 3.10 CMake 3.10.2 Egor Pugin (1): FindPostgreSQL: Add support for PG10 Joel T. Frederico (1): cmGraphVizWriter: Updated to create and follow dependers for interface targets Sebastian Holtermann (2): Autogen: Fix for problematic nested list separator Autogen: Ignore not existing source files in cmMakefile
[ANNOUNCE] CMake 3.10.1 available for download
We are pleased to announce that CMake 3.10.1 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.10.1 since 3.10.0: Adam Ciarciński (1): bootstrap: Check support for unordered_map from compiler mode Alexander Wittig (1): CPack: Fix macOS PKG component dependency information Brad King (3): CUDA: Treat /usr/include as an implicit include directory server: Revert "Report backtraces in codemodel response" CMake 3.10.1 Christian Pfeiffer (4): FindMPI: Correct legacy variable handling FindMPI: Fix multiple configure runs FindMPI: Fix various legacy problems IRSL: Fix MSVC variable deferencing Islam Amer (1): IAR: FindBinUtils should work for CXX as well as C Matthew Woehlke (4): GoogleTest: Fix multiple discovery on same target GoogleTest: Improve gtest_discover_tests messages GoogleTest: Add timeout to discovery GoogleTest: Add test for missing test executable Robert Maynard (1): CUDA: Shared libraries on Darwin properly setup @rpath install_names Sebastian Holtermann (2): Autogen: Fix for AUTOMOC on macOS frameworks in CMake 3.10 Autogen: Tests: Add test for MacOS frameworks İsmail Dönmez (1): Clang: Do not mistake clang-cl 6.0 for GNU-like clang
[ANNOUNCE] CMake 3.10.0 available for download
I am proud to announce that CMake 3.10.0 is now available for download at: https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.10 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.10/release/3.10.html Some of the more significant changes in CMake 3.10 are: * The flang Fortran compiler is now supported, with compiler id "Flang". * Support for the MSVC ARM64 architecture was added. Visual Studio 2017 Update 4 and above offer an ARM64 toolchain. * The "include_guard()" command was introduced to allow guarding CMake scripts from being included more than once. The command supports "DIRECTORY" and "GLOBAL" options to adjust the corresponding include guard scope. If no options given, include guard is similar to basic variable-based check. * "FindMPI" received a major overhaul. It now features language specific components, better Fortran support, and support for statically linked MPI implementations. * A "FindOpenACC" module was added to detect compiler support for OpenACC. Currently only supports PGI, GNU and Cray compilers. * The "FindOpenGL" module underwent numerous improvements. It has gained support for GLVND and EGL on Linux. It now has import targets that separate the OpenGL library and OpenGL contexts. * The "GoogleTest" module gained a new command "gtest_discover_tests()" implementing dynamic (build-time) test discovery. * When using "AUTOMOC" or "AUTOUIC", source files that are "GENERATED" will be processed as well. They were ignored by "AUTOMOC" and "AUTOUIC" in earlier releases. See policy "CMP0071". * A "CTEST_LABELS_FOR_SUBPROJECTS" CTest module variable and CTest script variable were added to specify a list of labels that should be treated as subprojects by CDash. To use this value in both the CTest module and the ctest command line Dashboard Client mode (e.g. "ctest -S") set it in the "CTestConfig.cmake" config file. * CPack gained a "FREEBSD" generator for FreeBSD "pkg(8)", configured by the "CPackFreeBSD" module. * The CPack "DEB" generator, configured by the "CPackDeb" module, was enabled on Windows. While not fully featured (due to the lack of external UNIX tools) this will allow building basic cross- platform Debian packages. * The "cmake(1)" "-E" mode gained support for "sha1sum", "sha224sum", "sha256sum", "sha384sum", and "sha512sum". * The "file(GENERATE)" command now interprets relative paths given to its "OUTPUT" and "INPUT" arguments with respect to the caller's current binary and source directories, respectively. See policy "CMP0070". CMake 3.10 Release Notes Changes made since CMake 3.9 include the following. New Features Platforms - * The flang Fortran compiler is now supported, with compiler id "Flang". * A new minimal platform file for "Midipix" was added. * Support for the MSVC ARM64 architecture was added. Visual Studio 2017 Update 4 and above offer an ARM64 toolchain. * Support for the IAR ARM Compiler was improved. Generators -- * The Makefile Generators and the "Ninja" generator learned to add compiler launcher tools like ccache along with the compiler for the "CUDA" language ("C" and "CXX" were supported previously). See the "CMAKE__COMPILER_LAUNCHER" variable and "_COMPILER_LAUNCHER" target property for details. * The "CodeBlocks" extra generator learned to optionally exclude files from outside the project root directory from the generated project. See the "CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES" variable. Commands * The "cmake_host_system_information()" command learned more keys to get information about the processor capabilities and the host OS version. * The "configure_file()" command learned to support indented "# cmakedefine" and "# cmakedefine01". Spaces and/or tabs between the "#" character and the "cmakedefine"/"cmakedefine01" words are now understood and preserved in the output. * The "execute_process()" command gained a "RESULTS_VARIABLE" option to collect a list of results from all children in a pipeline of processes when multiple "COMMAND" arguments are given. * The "include_guard()" command was introduced to allow guarding CMake scripts from being included more than once. The command supports "DIRECTORY" and "GLOBAL" options to adjust the corresponding include guard scope. If no options given, include guard is similar to basic variable-based check. * The "string()" command learned a new "PREPEND" subcommand. * The "string(TIMESTAMP)" command now supports "%A" for full weekday name and "%B" for full month name. Variables - * A "CMAKE_DIRECTORY_LABELS" variable was added to specify labels for all tests in a directory. Properties -- * A "_CPPCHECK" target property and supporting "CMAKE__CPPCHECK" variable were introduced to tell the Makefile Generators and the
CMake 3.10.0-rc5 is now ready for testing
I am proud to announce the fifth CMake 3.10 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.10 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.10/release/3.10.html Some of the more significant changes in CMake 3.10 are: * The flang Fortran compiler is now supported, with compiler id "Flang". * Support for the MSVC ARM64 architecture was added. Visual Studio 2017 Update 4 and above offer an ARM64 toolchain. * The "include_guard()" command was introduced to allow guarding CMake scripts from being included more than once. The command supports "DIRECTORY" and "GLOBAL" options to adjust the corresponding include guard scope. If no options given, include guard is similar to basic variable-based check. * "FindMPI" received a major overhaul. It now features language specific components, better Fortran support, and support for statically linked MPI implementations. * A "FindOpenACC" module was added to detect compiler support for OpenACC. Currently only supports PGI, GNU and Cray compilers. * The "FindOpenGL" module underwent numerous improvements. It has gained support for GLVND and EGL on Linux. It now has import targets that separate the OpenGL library and OpenGL contexts. * The "GoogleTest" module gained a new command "gtest_discover_tests()" implementing dynamic (build-time) test discovery. * When using "AUTOMOC" or "AUTOUIC", source files that are "GENERATED" will be processed as well. They were ignored by "AUTOMOC" and "AUTOUIC" in earlier releases. See policy "CMP0071". * A "CTEST_LABELS_FOR_SUBPROJECTS" CTest module variable and CTest script variable were added to specify a list of labels that should be treated as subprojects by CDash. To use this value in both the CTest module and the ctest command line Dashboard Client mode (e.g. "ctest -S") set it in the "CTestConfig.cmake" config file. * CPack gained a "FREEBSD" generator for FreeBSD "pkg(8)", configured by the "CPackFreeBSD" module. * The CPack "DEB" generator, configured by the "CPackDeb" module, was enabled on Windows. While not fully featured (due to the lack of external UNIX tools) this will allow building basic cross- platform Debian packages. * The "cmake(1)" "-E" mode gained support for "sha1sum", "sha224sum", "sha256sum", "sha384sum", and "sha512sum". * The "file(GENERATE)" command now interprets relative paths given to its "OUTPUT" and "INPUT" arguments with respect to the caller's current binary and source directories, respectively. See policy "CMP0070". CMake 3.10 Release Notes Changes made since CMake 3.9 include the following. New Features Platforms - * The flang Fortran compiler is now supported, with compiler id "Flang". * A new minimal platform file for "Midipix" was added. * Support for the MSVC ARM64 architecture was added. Visual Studio 2017 Update 4 and above offer an ARM64 toolchain. * Support for the IAR ARM Compiler was improved. Generators -- * The Makefile Generators and the "Ninja" generator learned to add compiler launcher tools like ccache along with the compiler for the "CUDA" language ("C" and "CXX" were supported previously). See the "CMAKE__COMPILER_LAUNCHER" variable and "_COMPILER_LAUNCHER" target property for details. * The "CodeBlocks" extra generator learned to optionally exclude files from outside the project root directory from the generated project. See the "CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES" variable. Commands * The "cmake_host_system_information()" command learned more keys to get information about the processor capabilities and the host OS version. * The "configure_file()" command learned to support indented "# cmakedefine" and "# cmakedefine01". Spaces and/or tabs between the "#" character and the "cmakedefine"/"cmakedefine01" words are now understood and preserved in the output. * The "execute_process()" command gained a "RESULTS_VARIABLE" option to collect a list of results from all children in a pipeline of processes when multiple "COMMAND" arguments are given. * The "include_guard()" command was introduced to allow guarding CMake scripts from being included more than once. The command supports "DIRECTORY" and "GLOBAL" options to adjust the corresponding include guard scope. If no options given, include guard is similar to basic variable-based check. * The "string()" command learned a new "PREPEND" subcommand. * The "string(TIMESTAMP)" command now supports "%A" for full weekday name and "%B" for full month name. Variables - * A "CMAKE_DIRECTORY_LABELS" variable was added to specify labels for all tests in a directory. Properties -- * A "_CPPCHECK" target property and supporting "CMAKE__CPPCHECK" variable were introduced to tell the Makefile Generators and the "Ninja"
[ANNOUNCE] CMake 3.9.6 available for download
We are pleased to announce that CMake 3.9.6 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.9.6 since 3.9.5: Brad King (1): CMake 3.9.6 Christian Pfeiffer (1): Restore exclusion of "gcc_eh" from implicit link libraries
[ANNOUNCE] CMake 3.9.5 available for download
We are pleased to announce that CMake 3.9.5 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.9.5 since 3.9.4: Brad King (1): CMake 3.9.5 Sebastian Holtermann (1): Autogen: Don't add AUTOMOC_MOC_OPTIONS to moc-predefs command
[ANNOUNCE] CMake 3.10.0-rc4 is now ready for testing
I am proud to announce the fourth CMake 3.10 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.10 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.10/release/3.10.html Some of the more significant changes in CMake 3.10 are: * The flang Fortran compiler is now supported, with compiler id "Flang". * Support for the MSVC ARM64 architecture was added. Visual Studio 2017 Update 4 and above offer an ARM64 toolchain. * The "include_guard()" command was introduced to allow guarding CMake scripts from being included more than once. The command supports "DIRECTORY" and "GLOBAL" options to adjust the corresponding include guard scope. If no options given, include guard is similar to basic variable-based check. * "FindMPI" received a major overhaul. It now features language specific components, better Fortran support, and support for statically linked MPI implementations. * A "FindOpenACC" module was added to detect compiler support for OpenACC. Currently only supports PGI, GNU and Cray compilers. * The "FindOpenGL" module underwent numerous improvements. It has gained support for GLVND and EGL on Linux. It now has import targets that separate the OpenGL library and OpenGL contexts. * The "GoogleTest" module gained a new command "gtest_discover_tests()" implementing dynamic (build-time) test discovery. * When using "AUTOMOC" or "AUTOUIC", source files that are "GENERATED" will be processed as well. They were ignored by "AUTOMOC" and "AUTOUIC" in earlier releases. See policy "CMP0071". * A "CTEST_LABELS_FOR_SUBPROJECTS" CTest module variable and CTest script variable were added to specify a list of labels that should be treated as subprojects by CDash. To use this value in both the CTest module and the ctest command line Dashboard Client mode (e.g. "ctest -S") set it in the "CTestConfig.cmake" config file. * CPack gained a "FREEBSD" generator for FreeBSD "pkg(8)", configured by the "CPackFreeBSD" module. * The CPack "DEB" generator, configured by the "CPackDeb" module, was enabled on Windows. While not fully featured (due to the lack of external UNIX tools) this will allow building basic cross- platform Debian packages. * The "cmake(1)" "-E" mode gained support for "sha1sum", "sha224sum", "sha256sum", "sha384sum", and "sha512sum". * The "file(GENERATE)" command now interprets relative paths given to its "OUTPUT" and "INPUT" arguments with respect to the caller's current binary and source directories, respectively. See policy "CMP0070". CMake 3.10 Release Notes Changes made since CMake 3.9 include the following. New Features Platforms - * The flang Fortran compiler is now supported, with compiler id "Flang". * A new minimal platform file for "Midipix" was added. * Support for the MSVC ARM64 architecture was added. Visual Studio 2017 Update 4 and above offer an ARM64 toolchain. * Support for the IAR ARM Compiler was improved. Generators -- * The Makefile Generators and the "Ninja" generator learned to add compiler launcher tools like ccache along with the compiler for the "CUDA" language ("C" and "CXX" were supported previously). See the "CMAKE__COMPILER_LAUNCHER" variable and "_COMPILER_LAUNCHER" target property for details. * The "CodeBlocks" extra generator learned to optionally exclude files from outside the project root directory from the generated project. See the "CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES" variable. Commands * The "cmake_host_system_information()" command learned more keys to get information about the processor capabilities and the host OS version. * The "configure_file()" command learned to support indented "# cmakedefine" and "# cmakedefine01". Spaces and/or tabs between the "#" character and the "cmakedefine"/"cmakedefine01" words are now understood and preserved in the output. * The "execute_process()" command gained a "RESULTS_VARIABLE" option to collect a list of results from all children in a pipeline of processes when multiple "COMMAND" arguments are given. * The "include_guard()" command was introduced to allow guarding CMake scripts from being included more than once. The command supports "DIRECTORY" and "GLOBAL" options to adjust the corresponding include guard scope. If no options given, include guard is similar to basic variable-based check. * The "string()" command learned a new "PREPEND" subcommand. * The "string(TIMESTAMP)" command now supports "%A" for full weekday name and "%B" for full month name. Variables - * A "CMAKE_DIRECTORY_LABELS" variable was added to specify labels for all tests in a directory. Properties -- * A "_CPPCHECK" target property and supporting "CMAKE__CPPCHECK" variable were introduced to tell the Makefile Generators and the "Ninja"
[ANNOUNCE] CMake 3.10.0-rc3 is now ready for testing
I am proud to announce the third CMake 3.10 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.10 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.10/release/3.10.html Some of the more significant changes in CMake 3.10 are: * The flang Fortran compiler is now supported, with compiler id "Flang". * Support for the MSVC ARM64 architecture was added. Visual Studio 2017 Update 4 and above offer an ARM64 toolchain. * The "include_guard()" command was introduced to allow guarding CMake scripts from being included more than once. The command supports "DIRECTORY" and "GLOBAL" options to adjust the corresponding include guard scope. If no options given, include guard is similar to basic variable-based check. * "FindMPI" received a major overhaul. It now features language specific components, better Fortran support, and support for statically linked MPI implementations. * A "FindOpenACC" module was added to detect compiler support for OpenACC. Currently only supports PGI, GNU and Cray compilers. * The "FindOpenGL" module underwent numerous improvements. It has gained support for GLVND and EGL on Linux. It now has import targets that separate the OpenGL library and OpenGL contexts. * The "GoogleTest" module gained a new command "gtest_discover_tests()" implementing dynamic (build-time) test discovery. * When using "AUTOMOC" or "AUTOUIC", source files that are "GENERATED" will be processed as well. They were ignored by "AUTOMOC" and "AUTOUIC" in earlier releases. See policy "CMP0071". * A "CTEST_LABELS_FOR_SUBPROJECTS" CTest module variable and CTest script variable were added to specify a list of labels that should be treated as subprojects by CDash. To use this value in both the CTest module and the ctest command line Dashboard Client mode (e.g. "ctest -S") set it in the "CTestConfig.cmake" config file. * CPack gained a "FREEBSD" generator for FreeBSD "pkg(8)", configured by the "CPackFreeBSD" module. * The CPack "DEB" generator, configured by the "CPackDeb" module, was enabled on Windows. While not fully featured (due to the lack of external UNIX tools) this will allow building basic cross- platform Debian packages. * The "cmake(1)" "-E" mode gained support for "sha1sum", "sha224sum", "sha256sum", "sha384sum", and "sha512sum". * The "file(GENERATE)" command now interprets relative paths given to its "OUTPUT" and "INPUT" arguments with respect to the caller's current binary and source directories, respectively. See policy "CMP0070". CMake 3.10 Release Notes Changes made since CMake 3.9 include the following. New Features Platforms - * The flang Fortran compiler is now supported, with compiler id "Flang". * A new minimal platform file for "Midipix" was added. * Support for the MSVC ARM64 architecture was added. Visual Studio 2017 Update 4 and above offer an ARM64 toolchain. * Support for the IAR ARM Compiler was improved. Generators -- * The Makefile Generators and the "Ninja" generator learned to add compiler launcher tools like ccache along with the compiler for the "CUDA" language ("C" and "CXX" were supported previously). See the "CMAKE__COMPILER_LAUNCHER" variable and "_COMPILER_LAUNCHER" target property for details. * The "CodeBlocks" extra generator learned to optionally exclude files from outside the project root directory from the generated project. See the "CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES" variable. Commands * The "cmake_host_system_information()" command learned more keys to get information about the processor capabilities and the host OS version. * The "configure_file()" command learned to support indented "# cmakedefine" and "# cmakedefine01". Spaces and/or tabs between the "#" character and the "cmakedefine"/"cmakedefine01" words are now understood and preserved in the output. * The "execute_process()" command gained a "RESULTS_VARIABLE" option to collect a list of results from all children in a pipeline of processes when multiple "COMMAND" arguments are given. * The "include_guard()" command was introduced to allow guarding CMake scripts from being included more than once. The command supports "DIRECTORY" and "GLOBAL" options to adjust the corresponding include guard scope. If no options given, include guard is similar to basic variable-based check. * The "string()" command learned a new "PREPEND" subcommand. * The "string(TIMESTAMP)" command now supports "%A" for full weekday name and "%B" for full month name. Variables - * A "CMAKE_DIRECTORY_LABELS" variable was added to specify labels for all tests in a directory. Properties -- * A "_CPPCHECK" target property and supporting "CMAKE__CPPCHECK" variable were introduced to tell the Makefile Generators and the "Ninja"
[ANNOUNCE] CMake 3.10.0-rc2 is now ready for testing
LABELS_FOR_SUBPROJECTS" CTest module variable and CTest script variable were added to specify a list of labels that should be treated as subprojects by CDash. To use this value in both the CTest module and the ctest command line Dashboard Client mode (e.g. "ctest -S") set it in the "CTestConfig.cmake" config file. CPack - * CPack gained a "FREEBSD" generator for FreeBSD "pkg(8)", configured by the "CPackFreeBSD" module. * The CPack "DEB" generator, configured by the "CPackDeb" module, was enabled on Windows. While not fully featured (due to the lack of external UNIX tools) this will allow building basic cross- platform Debian packages. * The "CPackDeb" module learned to set package release version in "Version" info property. See the "CPACK_DEBIAN_PACKAGE_RELEASE" variable. * The "CPackDeb" module learned more strict package version checking that complies with Debian rules. * The "CPackIFW" module "cpack_ifw_configure_component()" and "cpack_ifw_configure_component_group()" commands gained a new "REPLACES" and "CHECKABLE" options. * The "CPackIFW" module gained new "CPACK_IFW_PACKAGE_FILE_EXTENSION" variable to customize target binary format. * The "CPackIFW" module gained new "CPACK_IFW_REPOSITORIES_DIRECTORIES" variable to specify additional repositories dirs that will be used to resolve and repack dependent components. This feature is only available when using QtIFW 3.1 or later. * Modules "CPackRPM" and "CPackDeb" learned to set package epoch version. See "CPACK_RPM_PACKAGE_EPOCH" and "CPACK_DEBIAN_PACKAGE_EPOCH" variables. Other - * The "cmake(1)" "-E" mode gained support for "sha1sum", "sha224sum", "sha256sum", "sha384sum", and "sha512sum". * The graphviz output now distinguishes among the different dependency types "PUBLIC", "PRIVATE" and "INTERFACE" and represents them in the output graph as solid, dashed and dotted edges. Deprecated and Removed Features === * Support for building CMake itself with C++98 compilers was dropped. CMake is now implemented using C++11. * Support for building CMake on HP-UX has been dropped pending better support for C++11 and a port of libuv. See CMake Issue 17137. Use CMake 3.9 or lower instead for HP-UX support. Other Changes = * On FreeBSD the C++ compiler named "c++" is now the preferred default. * The "file(GENERATE)" command now interprets relative paths given to its "OUTPUT" and "INPUT" arguments with respect to the caller's current binary and source directories, respectively. See policy "CMP0070". * The "get_filename_component()" "PROGRAM" mode semantics have been revised to not tolerate unquoted spaces in the path to the program while also accepting arguments. While technically incompatible with the old behavior, it is expected that behavior under typical use cases with properly-quoted command-lines has not changed. Changes made since CMake 3.9.0-rc1: André Apitzsch (1): FindProtobuf: fix documentation typo Brad King (10): Help: Revise 3.10 release notes FindJava: Revise version parsing to support Java 9 curl: Update script to get curl 7.56.0 curl: Update build within CMake to account for 7.56 changes Help: Minor text clarifications in cmake-language(7) manual Clang: Diagnose unsupported GNU-like clang targeting MSVC ABI ExternalProject: Avoid if() auto-dereferene in quoted arguments FindXMLRPC: Drop unnecessary exec_program code paths FindXMLRPC: Tolerate no include directories CMake 3.10.0-rc2 Christian Pfeiffer (1): FindOpenMP: Fix link flags being used for compile Craig Scott (2): Help: Fix Example appearing in target property list of contents Help: Fix wrong property reference for an app bundle's Info.plist Curl Upstream (1): curl 2017-10-04 (3ea76790) Domen Vrankar (2): CPack/Deb: CPACK_DEBIAN_PACKAGE_VERSION regex testing exception CPack/Deb: fix for regex passing even if invalid characters are present Gregor Jasny (2): Revert "Xcode: Adjust tests to drop of 32bit iOS architectures" Xcode 9: Lower iOS deployment version to get armv7 builds Matthias Maennich (4): cmcmd: let operator<< for NumberFormatter reset the stream's format flags cmGeneratorTarget: remove dead code cmProcessTools: fix minor issue introduced by 595feb3 cmInstallCommandArguments: do not access static members through `this` Robert Maynard (1): FindCUDA: Update for CUDA 9 breakup of nppi into multiple libraries Sebastian Holtermann (3): Autogen: Allow setting SKIP_AUTOUIC/GEN on .ui files not in the sources Autogen: Docs: Add examples for AUTORCC_OPTIONS and AUTOUIC_OPTIONS Autogen: Docs: Extend SKIP_AUTOUIC documentation Thomas Stenersen (1): IPO: Fix support for spaces in path to archive tools
[ANNOUNCE] CMake 3.10.0-rc1 is now ready for testing
I am proud to announce the first CMake 3.10 release candidate. https://cmake.org/download/ Documentation is available at: https://cmake.org/cmake/help/v3.10 Release notes appear below and are also published at https://cmake.org/cmake/help/v3.10/release/3.10.html Some of the more significant changes in CMake 3.10 are: * The flang Fortran compiler is now supported, with compiler id "Flang". * Support for the MSVC ARM64 architecture was added. Visual Studio 2017 Update 4 and above offer an ARM64 toolchain. * The "include_guard()" command was introduced to allow guarding CMake scripts from being included more than once. The command supports "DIRECTORY" and "GLOBAL" options to adjust the corresponding include guard scope. If no options given, include guard is similar to basic variable-based check. * "FindMPI" received a major overhaul. It now features language specific components, better Fortran support, and support for statically linked MPI implementations. * A "FindOpenACC" module was added to detect compiler support for OpenACC. Currently only supports PGI, GNU and Cray compilers. * The "FindOpenGL" module underwent numerous improvements. It has gained support for GLVND and EGL on Linux. It now has import targets that separate the OpenGL library and OpenGL contexts. * The "GoogleTest" module gained a new command "gtest_discover_tests()" implementing dynamic (build-time) test discovery. * When using "AUTOMOC" or "AUTOUIC", source files that are "GENERATED" will be processed as well. They were ignored by "AUTOMOC" and "AUTOUIC" in earlier releases. See policy "CMP0071". * A "CTEST_LABELS_FOR_SUBPROJECTS" CTest module variable and CTest script variable were added to specify a list of labels that should be treated as subprojects by CDash. To use this value in both the CTest module and the ctest command line Dashboard Client mode (e.g. "ctest -S") set it in the "CTestConfig.cmake" config file. * CPack gained a "FREEBSD" generator for FreeBSD "pkg(8)", configured by the "CPackFreeBSD" module. * The CPack "DEB" generator, configured by the "CPackDeb" module, was enabled on Windows. While not fully featured (due to the lack of external UNIX tools) this will allow building basic cross- platform Debian packages. * The "cmake(1)" "-E" mode gained support for "sha1sum", "sha224sum", "sha256sum", "sha384sum", and "sha512sum". * The "file(GENERATE)" command now interprets relative paths given to its "OUTPUT" and "INPUT" arguments with respect to the caller's current binary and source directories, respectively. See policy "CMP0070". CMake 3.10 Release Notes Changes made since CMake 3.9 include the following. New Features Platforms - * The flang Fortran compiler is now supported, with compiler id "Flang". * A new minimal platform file for "Midipix" was added. * Support for the MSVC ARM64 architecture was added. Visual Studio 2017 Update 4 and above offer an ARM64 toolchain. * Support for the IAR ARM Compiler was improved. Generators -- * The Makefile Generators and the "Ninja" generator learned to add compiler launcher tools like ccache along with the compiler for the "CUDA" language ("C" and "CXX" were supported previously). See the "CMAKE__COMPILER_LAUNCHER" variable and "_COMPILER_LAUNCHER" target property for details. * The "CodeBlocks" extra generator learned to optionally exclude files from outside the project root directory from the generated project. See the "CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES" variable. Commands * The "cmake_host_system_information()" command learned more keys to get information about the processor capabilities and the host OS version. * The "configure_file()" command learned to support indented "# cmakedefine" and "# cmakedefine01". Spaces and/or tabs between the "#" character and the "cmakedefine"/"cmakedefine01" words are now understood and preserved in the output. * The "execute_process()" command gained a "RESULTS_VARIABLE" option to collect a list of results from all children in a pipeline of processes when multiple "COMMAND" arguments are given. * The "include_guard()" command was introduced to allow guarding CMake scripts from being included more than once. The command supports "DIRECTORY" and "GLOBAL" options to adjust the corresponding include guard scope. If no options given, include guard is similar to basic variable-based check. * The "string()" command learned a new "PREPEND" subcommand. * The "string(TIMESTAMP)" command now supports "%A" for full weekday name and "%B" for full month name. Variables - * A "CMAKE_DIRECTORY_LABELS" variable was added to specify labels for all tests in a directory. Properties -- * A "_CPPCHECK" target property and supporting "CMAKE__CPPCHECK" variable were introduced to tell the Makefile Generators and the "Ninja"
[ANNOUNCE] CMake 3.9.4 available for download
We are pleased to announce that CMake 3.9.4 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.9.4 since 3.9.3: Brad King (2): FindBoost: Finish reverting "Simplify search in lists" for 3.9 CMake 3.9.4
[ANNOUNCE] CMake 3.9.2 available for download
We are pleased to announce that CMake 3.9.2 is now available for download. Please use the latest release from our download page: https://cmake.org/download/ Thanks for your support! - Changes in 3.9.2 since 3.9.1: Brad King (13): InstallRequiredSystemLibraries: Factor redist name into variable InstallRequiredSystemLibraries: Find VS 2017 Update 3 redist directory macOS: Revert default Hi-DPI support in applications Ninja: Fix support for MSVC with non-English output Xcode: Revert addition of "outputPaths" to custom command build phase cmCPackDragNDropGenerator: Add missing include cmake: Fix --find-package mode with imported targets Genex: Fix TARGET_PROPERTY value of SOURCES Android: Update for NDK r16 FindBoost: Revert "Simplify search in lists." InstallRequiredSystemLibraries: Add support for future VS 2017 toolchains Tests: Fix RunCMake.GeneratorExpression to run in CMake 3.9 CMake 3.9.2 Christian Pfeiffer (1): FindOpenMP: Restore OpenMP_FOUND result variable Maikel van den Hurk (1): CUDA: Pass host compiler to nvcc while device linking Michael Stürmer (2): VS: Do not reference output assemblies if not possible for CSharp target VS: Initialize CSharp flags consistently Sebastian Holtermann (3): Autogen: Restore AUTOUIC lookup paths from 3.8.2 Autogen: Update AUTOUIC documentation for search paths Autogen: Extend AUTOUIC search paths test Sylvain Joubert (1): Clang: Find version-suffixed LLVM/Clang binutils Tibor Szabo (1): FindCygwin: Fix regression when CYGWIN_INSTALL_PATH is already set