Fri. Aug 7th, 2020

CMake 3.18.1 & 3.17.4 releases: managing the build process of software

2 min read

CMake is an extensible, open-source system that manages the build process in an operating system and in a compiler-independent manner. Unlike many cross-platform systems, CMake is designed to be used in conjunction with the native build environment. Simple configuration files placed in each source directory (called CMakeLists.txt files) are used to generate standard build files (e.g., makefiles on Unix and projects/workspaces in Windows MSVC) which are used in the usual way. CMake can generate a native build environment that will compile source code, create libraries, generate wrappers and build executables in arbitrary combinations. CMake supports in-place and out-of-place builds, and can therefore support multiple builds from a single source tree. CMake also supports static and dynamic library builds. Another nice feature of CMake is that it generates a cache file that is designed to be used with a graphical editor. For example, when CMake runs, it locates files, libraries, and executables, and may encounter optional build directives. This information is gathered into the cache, which may be changed by the user prior to the generation of the native build files.

cmake

Changelog 

v3.18.1

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

v3.17.4

Billy Brumley (1):
FindOpenSSL: Fix OpenSSL 3.0.0 version extraction

Brad King (6):
FindSubversion: Do not accept macOS stub without Xcode implementation
PCH: Fix logic error that incorrectly clears sources during VS generation
PCH: Do not enable GNU or Intel PCH settings for Fortran
VS: Fix .sln support for VS Version Selector with VS 2019
bootstrap: Fix support for Intel compiler with modern GNU system compiler
CMake 3.17.4

Kyle Edwards (2):
Ninja Multi-Config: Fix bug in CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
Ninja Multi-Config: Make link response files per-config

Stephan Rohmen (2):
Graphviz: Restore support for per-target dependency graph options
Tests: Cover Graphviz support for per-target dependency graph options

Download