Open-source software tool for managing the build process of software!

Cmake

Cmake 3.28.3 (64-bit)

  -  32 MB  -  Open Source

Sometimes latest versions of the software can cause issues when installed on older devices or devices running an older version of the operating system.

Software makers usually fix these issues but it can take them some time. What you can do in the meantime is to download and install an older version of Cmake 3.28.3 (64-bit).


For those interested in downloading the most recent release of Cmake or reading our review, simply click here.


All old versions distributed on our website are completely virus-free and available for download at no cost.


We would love to hear from you

If you have any questions or ideas that you want to share with us - head over to our Contact page and let us know. We value your feedback!

  • Cmake 3.28.3 (64-bit) Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Cmake 3.28.3 (64-bit) Screenshot 1
  • Cmake 3.28.3 (64-bit) Screenshot 2
  • Cmake 3.28.3 (64-bit) Screenshot 3

What's new in this version:

New Features:
Languages:
- C++ 20 named modules are now supported by Ninja Generators and Visual Studio Generators for VS 2022 and newer, in combination with the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang 16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and newer. See cmake-cxxmodules(7) for details.
- HIP language code may now be compiled for NVIDIA GPUs using the NVIDIA CUDA Compiler (NVCC). See the CMAKE_HIP_PLATFORM variable.

Platforms:
On Apple platforms, .xcframework folders are now supported:
- The find_library() command now finds .xcframework folders
- The target_link_libraries() command now supports linking against a .xcframework folder
- The IMPORTED_LOCATION target property of an imported library target may now be the path to a .xcframework folder
- Apple visionOS and its xros and xrsimulator SDKs are now supported. Compiling for Apple visionOS can be requested by setting CMAKE_SYSTEM_NAME to visionOS. See Cross Compiling for iOS, tvOS, visionOS, or watchOS for more information.

Presets:
- cmake-presets(7) files now support schema version 8. It adds support for a $schema field

Compilers:
- Cray Clang-based compilers are now supported with compiler id CrayClang
- The OrangeC compiler is now supported with compiler id OrangeC

Commands:
- The add_custom_command() and add_custom_target() commands gained a JOB_SERVER_AWARE option
- The cmake_host_system_information() command gained a MSYSTEM_PREFIX query for the installation prefix of a MSYS or MinGW development environment on Windows hosts
- The set_property() command TEST mode gained a DIRECTORY option to set properties on tests in other directories
- The set_tests_properties() command gained a DIRECTORY option to set properties on tests in other directories
- The get_property() command TEST mode gained a DIRECTORY option to get properties on tests in other directories
- The get_test_property() command gained a DIRECTORY option to get properties on tests in other directories

Variables:
- The CMAKE_CROSSCOMPILING_EMULATOR environment variable was added to initialize the CMAKE_CROSSCOMPILING_EMULATOR cache variable
- The CMAKE_HIP_PLATFORM variable was added to specify the GPU platform for which HIP language sources are to be compiled (amd or nvidia)

Properties:
- On imported shared libraries, the IMPORTED_IMPLIB target property may now be used without IMPORTED_LOCATION. This can be used to represent a stub library whose location should not be added as a runtime search path to dependents that link it.
- The IMPORTED_LOCATION property of a macOS framework may now be a path to the .framework folder itself
- The XCODE_EMBED_RESOURCES target property was added to tell the Xcode generator what targets to put in the Embed Resources build phase

Modules:
- The ExternalProject module now includes the BUILD_JOB_SERVER_AWARE option for the ExternalProject_Add() command. This option enables the integration of the GNU Make job server when using an explicit BUILD_COMMAND with certain Makefile Generators. Additionally, the ExternalProject_Add_Step() command has been updated to support the new JOB_SERVER_AWARE option.
- The FetchContent module's FetchContent_Declare() command gained an EXCLUDE_FROM_ALL option, which propagates through to the add_subdirectory() call made by FetchContent_MakeAvailable() for the dependency
- The FindCURL module gained a CURL_USE_STATIC_LIBS hint to select static libraries
- The FindEXPAT module gained an EXPAT_USE_STATIC_LIBS hint to select static libraries
- The FindPkgConfig module pkg_get_variable() command gained a DEFINE_VARIABLES option to pass variables to pkg-config

Generator Expressions:
- The generator expressions $<IF:...>, $<AND:...>, and $<OR:...> short-circuit to avoid unnecessary evaluation of parameters

CTest:
- CTest may now take a dynamically-generated resource spec file, which can be specified by the GENERATED_RESOURCE_SPEC_FILE test property

Deprecated and Removed Features:
- The exec_program() command, which has been deprecated since CMake 3.0, has been removed by policy CMP0153. Use the execute_process() command instead.
- The Visual Studio 11 2012 generator has been removed
- The Visual Studio 12 2013 generator is now deprecated and will be removed in a future version of CMake
- The IOS_INSTALL_COMBINED target property and corresponding CMAKE_IOS_INSTALL_COMBINED variable have been deprecated. Their functionality does not make sense on Apple Silicon hosts.
- The Xcode generator will now issue a fatal error if the Legacy Build System has been selected for Xcode 14 and newer. Those Xcode versions dropped support for the Legacy Build System and expect the project to be set-up for their current Build System.

Other Changes:
- Generated files, in targets using File Sets, are now considered private by default. Generated public headers must be specified using file sets. This allows Ninja Generators to produce more efficient build graphs. See policy CMP0154.
- The find_library(), find_path(), and find_file() commands no longer search in installation prefixes derived from the PATH environment variable. This behavior was added in CMake 3.3 to support MSYS and MinGW (MSYSTEM) development environments on Windows, but it can search undesired prefixes that happen to be in the PATH for unrelated reasons. Users who keep some <prefix>/bin directories in the PATH just for their tools do not necessarily want any corresponding <prefix>/lib or <prefix>/include directories searched. The behavior was reverted for non-Windows platforms by CMake 3.6. Now it has been reverted on Windows platforms too.
- One may set the CMAKE_PREFIX_PATH environment variable with a semicolon-separated list of prefixes that are to be searched
- When using MinGW tools in a MSYSTEM environment on Windows, the $MSYSTEM_PREFIX/local and $MSYSTEM_PREFIX prefixes are now added to CMAKE_SYSTEM_PREFIX_PATH
- The precompiled Linux x86_64 binaries provided on cmake.org now require GLIBC 2.17 or higher