mirror of
				https://github.com/XRPLF/rippled.git
				synced 2025-11-04 11:15:56 +00:00 
			
		
		
		
	chore: Support CMake 4 without workarounds (#5866)
This commit is contained in:
		
							
								
								
									
										44
									
								
								.github/scripts/strategy-matrix/linux.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										44
									
								
								.github/scripts/strategy-matrix/linux.json
									
									
									
									
										vendored
									
									
								
							@@ -15,154 +15,154 @@
 | 
			
		||||
      "distro_version": "bookworm",
 | 
			
		||||
      "compiler_name": "gcc",
 | 
			
		||||
      "compiler_version": "12",
 | 
			
		||||
      "image_sha": "6f723eb"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "debian",
 | 
			
		||||
      "distro_version": "bookworm",
 | 
			
		||||
      "compiler_name": "gcc",
 | 
			
		||||
      "compiler_version": "13",
 | 
			
		||||
      "image_sha": "6f723eb"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "debian",
 | 
			
		||||
      "distro_version": "bookworm",
 | 
			
		||||
      "compiler_name": "gcc",
 | 
			
		||||
      "compiler_version": "14",
 | 
			
		||||
      "image_sha": "6f723eb"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "debian",
 | 
			
		||||
      "distro_version": "bookworm",
 | 
			
		||||
      "compiler_name": "gcc",
 | 
			
		||||
      "compiler_version": "15",
 | 
			
		||||
      "image_sha": "6f723eb"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "debian",
 | 
			
		||||
      "distro_version": "bookworm",
 | 
			
		||||
      "compiler_name": "clang",
 | 
			
		||||
      "compiler_version": "16",
 | 
			
		||||
      "image_sha": "6f723eb"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "debian",
 | 
			
		||||
      "distro_version": "bookworm",
 | 
			
		||||
      "compiler_name": "clang",
 | 
			
		||||
      "compiler_version": "17",
 | 
			
		||||
      "image_sha": "6f723eb"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "debian",
 | 
			
		||||
      "distro_version": "bookworm",
 | 
			
		||||
      "compiler_name": "clang",
 | 
			
		||||
      "compiler_version": "18",
 | 
			
		||||
      "image_sha": "6f723eb"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "debian",
 | 
			
		||||
      "distro_version": "bookworm",
 | 
			
		||||
      "compiler_name": "clang",
 | 
			
		||||
      "compiler_version": "19",
 | 
			
		||||
      "image_sha": "6f723eb"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "debian",
 | 
			
		||||
      "distro_version": "bookworm",
 | 
			
		||||
      "compiler_name": "clang",
 | 
			
		||||
      "compiler_version": "20",
 | 
			
		||||
      "image_sha": "6f723eb"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "rhel",
 | 
			
		||||
      "distro_version": "9",
 | 
			
		||||
      "compiler_name": "gcc",
 | 
			
		||||
      "compiler_version": "12",
 | 
			
		||||
      "image_sha": "d133ce3"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "rhel",
 | 
			
		||||
      "distro_version": "9",
 | 
			
		||||
      "compiler_name": "gcc",
 | 
			
		||||
      "compiler_version": "13",
 | 
			
		||||
      "image_sha": "d133ce3"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "rhel",
 | 
			
		||||
      "distro_version": "9",
 | 
			
		||||
      "compiler_name": "gcc",
 | 
			
		||||
      "compiler_version": "14",
 | 
			
		||||
      "image_sha": "d133ce3"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "rhel",
 | 
			
		||||
      "distro_version": "9",
 | 
			
		||||
      "compiler_name": "clang",
 | 
			
		||||
      "compiler_version": "any",
 | 
			
		||||
      "image_sha": "d133ce3"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "rhel",
 | 
			
		||||
      "distro_version": "10",
 | 
			
		||||
      "compiler_name": "gcc",
 | 
			
		||||
      "compiler_version": "14",
 | 
			
		||||
      "image_sha": "d133ce3"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "rhel",
 | 
			
		||||
      "distro_version": "10",
 | 
			
		||||
      "compiler_name": "clang",
 | 
			
		||||
      "compiler_version": "any",
 | 
			
		||||
      "image_sha": "d133ce3"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "ubuntu",
 | 
			
		||||
      "distro_version": "jammy",
 | 
			
		||||
      "compiler_name": "gcc",
 | 
			
		||||
      "compiler_version": "12",
 | 
			
		||||
      "image_sha": "6f723eb"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "ubuntu",
 | 
			
		||||
      "distro_version": "noble",
 | 
			
		||||
      "compiler_name": "gcc",
 | 
			
		||||
      "compiler_version": "13",
 | 
			
		||||
      "image_sha": "6f723eb"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "ubuntu",
 | 
			
		||||
      "distro_version": "noble",
 | 
			
		||||
      "compiler_name": "gcc",
 | 
			
		||||
      "compiler_version": "14",
 | 
			
		||||
      "image_sha": "6f723eb"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "ubuntu",
 | 
			
		||||
      "distro_version": "noble",
 | 
			
		||||
      "compiler_name": "clang",
 | 
			
		||||
      "compiler_version": "16",
 | 
			
		||||
      "image_sha": "6f723eb"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "ubuntu",
 | 
			
		||||
      "distro_version": "noble",
 | 
			
		||||
      "compiler_name": "clang",
 | 
			
		||||
      "compiler_version": "17",
 | 
			
		||||
      "image_sha": "6f723eb"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "ubuntu",
 | 
			
		||||
      "distro_version": "noble",
 | 
			
		||||
      "compiler_name": "clang",
 | 
			
		||||
      "compiler_version": "18",
 | 
			
		||||
      "image_sha": "6f723eb"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "distro_name": "ubuntu",
 | 
			
		||||
      "distro_version": "noble",
 | 
			
		||||
      "compiler_name": "clang",
 | 
			
		||||
      "compiler_version": "19",
 | 
			
		||||
      "image_sha": "6f723eb"
 | 
			
		||||
      "image_sha": "6948666"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "build_type": ["Debug", "Release"],
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								BUILD.md
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								BUILD.md
									
									
									
									
									
								
							@@ -39,17 +39,12 @@ found here](./docs/build/environment.md).
 | 
			
		||||
 | 
			
		||||
- [Python 3.11](https://www.python.org/downloads/), or higher
 | 
			
		||||
- [Conan 2.17](https://conan.io/downloads.html)[^1], or higher
 | 
			
		||||
- [CMake 3.22](https://cmake.org/download/)[^2], or higher
 | 
			
		||||
- [CMake 3.22](https://cmake.org/download/), or higher
 | 
			
		||||
 | 
			
		||||
[^1]:
 | 
			
		||||
    It is possible to build with Conan 1.60+, but the instructions are
 | 
			
		||||
    significantly different, which is why we are not recommending it.
 | 
			
		||||
 | 
			
		||||
[^2]:
 | 
			
		||||
    CMake 4 is not yet supported by all dependencies required by this project.
 | 
			
		||||
    If you are affected by this issue, follow [conan workaround for cmake
 | 
			
		||||
    4](#workaround-for-cmake-4)
 | 
			
		||||
 | 
			
		||||
`rippled` is written in the C++20 dialect and includes the `<concepts>` header.
 | 
			
		||||
The [minimum compiler versions][2] required are:
 | 
			
		||||
 | 
			
		||||
@@ -282,21 +277,6 @@ sed -i.bak -e 's|^arch=.*$|arch=x86_64|' $(conan config home)/profiles/default
 | 
			
		||||
sed -i.bak -e 's|^compiler\.runtime=.*$|compiler.runtime=static|' $(conan config home)/profiles/default
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Workaround for CMake 4
 | 
			
		||||
 | 
			
		||||
If your system CMake is version 4 rather than 3, you may have to configure Conan
 | 
			
		||||
profile to use CMake version 3 for dependencies, by adding the following two
 | 
			
		||||
lines to your profile:
 | 
			
		||||
 | 
			
		||||
```text
 | 
			
		||||
[tool_requires]
 | 
			
		||||
!cmake/*: cmake/[>=3 <4]
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
This will force Conan to download and use a locally cached CMake 3 version, and
 | 
			
		||||
is needed because some of the dependencies used by this project do not support
 | 
			
		||||
CMake 4.
 | 
			
		||||
 | 
			
		||||
#### Clang workaround for grpc
 | 
			
		||||
 | 
			
		||||
If your compiler is clang, version 19 or later, or apple-clang, version 17 or
 | 
			
		||||
 
 | 
			
		||||
@@ -29,6 +29,3 @@ tools.build:cxxflags=['-Wno-missing-template-arg-list-after-template-kw']
 | 
			
		||||
{% if compiler == "gcc" and compiler_version < 13 %}
 | 
			
		||||
tools.build:cxxflags=['-Wno-restrict']
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
[tool_requires]
 | 
			
		||||
!cmake/*: cmake/[>=3 <4]
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user