@@ -14,24 +14,26 @@ the LLVM toolchain for modern C++ development.
1414- ** Integrated tooling** : Includes clang-tidy, clang-format, and other
1515 development tools
1616
17- ## 📋 Supported Versions
17+ ## 📋 Supported Versions & Host Platforms
1818
19- - ** LLVM 20.1.8**
20-
21- ## 💻 Supported Host Platforms
19+ All binaries are downloaded from the official
20+ [ LLVM GitHub Releases] ( https://github.com/llvm/llvm-project/releases ) .
2221
23- This toolchain package supports the following host platforms:
22+ ### LLVM 20.1.8
2423
25- - ** Linux** (x86_64, ARM64)
26- - ** macOS** (Apple Silicon / ARM64)
27- - ** Windows** (x86_64, ARM64)
24+ | Platform | x86_64 | ARM64 |
25+ | -------- | ------ | ----- |
26+ | Linux | ✅ | ✅ |
27+ | macOS | ❌ | ✅ |
28+ | Windows | ✅ | ✅ |
2829
29- > [ !NOTE]
30- > macOS Intel (x86_64) is not currently supported as LLVM does not provide
31- > official pre-built binaries for this platform.
30+ ### LLVM 19.1.7
3231
33- All binaries are downloaded from the official
34- [ LLVM GitHub Releases] ( https://github.com/llvm/llvm-project/releases ) .
32+ | Platform | x86_64 | ARM64 |
33+ | -------- | ------ | ----- |
34+ | Linux | ✅ | ✅ |
35+ | macOS | ✅ | ✅ |
36+ | Windows | ✅ | ❌ |
3537
3638## 🚀 Quick Start
3739
@@ -206,3 +208,114 @@ support:
206208>
207209> - ` f ` indicates single precision (32-bit) hard float
208210> - ` d ` indicates double precision (64-bit) hard float
211+
212+ ## 🤝 Contributing
213+
214+ ### Adding a New LLVM Version
215+
216+ To add support for a new LLVM version to this package, follow these steps:
217+
218+ #### 1. Download Official Binaries
219+
220+ Download the official LLVM prebuilt binaries from the [ LLVM GitHub Releases] ( https://github.com/llvm/llvm-project/releases ) page. Look for the release tagged as ` llvmorg-X.X.X ` and download the appropriate archives for each supported platform:
221+
222+ - ** Linux x86_64** : ` LLVM-X.X.X-Linux-X64.tar.xz ` or ` clang+llvm-X.X.X-x86_64-linux-gnu-*.tar.xz `
223+ - ** Linux ARM64** : ` LLVM-X.X.X-Linux-ARM64.tar.xz ` or ` clang+llvm-X.X.X-aarch64-linux-gnu.tar.xz `
224+ - ** macOS x86_64** : ` LLVM-X.X.X-macOS-X64.tar.xz ` (if available)
225+ - ** macOS ARM64** : ` LLVM-X.X.X-macOS-ARM64.tar.xz `
226+ - ** Windows x86_64** : ` clang+llvm-X.X.X-x86_64-pc-windows-msvc.tar.xz `
227+ - ** Windows ARM64** : ` clang+llvm-X.X.X-aarch64-pc-windows-msvc.tar.xz ` (if available)
228+
229+ > [ !NOTE]
230+ > Not all platforms may be available for every LLVM version. Only download what's officially provided.
231+
232+ #### 2. Calculate SHA256 Checksums
233+
234+ Calculate the SHA256 checksums for all downloaded archives:
235+
236+ ``` bash
237+ cd /path/to/downloaded/archives
238+ shasum -a 256 * .tar.xz
239+ ```
240+
241+ Save these checksums - you'll need them for the next step.
242+
243+ #### 3. Update ` conandata.yml `
244+
245+ Add a new version entry to [ ` all/conandata.yml ` ] ( all/conandata.yml ) with the URLs and SHA256 checksums:
246+
247+ ``` yaml
248+ sources :
249+ " X.X.X " :
250+ " Linux " :
251+ " x86_64 " :
252+ url : " https://github.com/llvm/llvm-project/releases/download/llvmorg-X.X.X/LLVM-X.X.X-Linux-X64.tar.xz"
253+ sha256 : " <checksum>"
254+ " armv8 " :
255+ url : " https://github.com/llvm/llvm-project/releases/download/llvmorg-X.X.X/clang+llvm-X.X.X-aarch64-linux-gnu.tar.xz"
256+ sha256 : " <checksum>"
257+ " Macos " :
258+ " armv8 " :
259+ url : " https://github.com/llvm/llvm-project/releases/download/llvmorg-X.X.X/LLVM-X.X.X-macOS-ARM64.tar.xz"
260+ sha256 : " <checksum>"
261+ " Windows " :
262+ " x86_64 " :
263+ url : " https://github.com/llvm/llvm-project/releases/download/llvmorg-X.X.X/clang+llvm-X.X.X-x86_64-pc-windows-msvc.tar.xz"
264+ sha256 : " <checksum>"
265+ ` ` `
266+
267+ Only include platforms that have official prebuilt binaries available.
268+
269+ #### 4. Update README.md
270+
271+ Add the new version to the [Supported Versions & Host Platforms](#-supported-versions--host-platforms) section in this README:
272+
273+ ` ` ` markdown
274+ # ## LLVM X.X.X
275+
276+ | Platform | x86_64 | ARM64 |
277+ | -------- | ------ | ----- |
278+ | Linux | ✅ | ✅ |
279+ | macOS | ❌ | ✅ |
280+ | Windows | ✅ | ✅ |
281+ ```
282+
283+ Use ✅ for supported platforms and ❌ for unsupported ones.
284+
285+ #### 5. Test the Package
286+
287+ Build and test the package locally:
288+
289+ ``` bash
290+ conan create all --version X.X.X
291+ ```
292+
293+ This downloads the binaries, verifies checksums, and creates the package.
294+
295+ #### 6. Build and Run the Demo
296+
297+ Install the toolchain profiles and build the demo application:
298+
299+ ``` bash
300+ # Install toolchain profiles
301+ conan config install -tf profiles/ -sf conan/profiles/v1/ .
302+
303+ # Build the demo (use the version you're adding)
304+ conan build demo -pr clang-X.X.X -pr linux-x86_64 \
305+ --build=missing -c tools.build:skip_test=True
306+
307+ # Run the demo to verify it works
308+ ./demo/build/Release/demo
309+ ```
310+
311+ > [ !NOTE]
312+ > Replace ` linux-x86_64 ` with your platform's profile. Available
313+ > profiles are in the ` conan/profiles/v1/ ` directory.
314+
315+ #### 7. Submit a Pull Request
316+
317+ Once you've verified everything works:
318+
319+ 1 . Commit your changes to ` all/conandata.yml ` and ` README.md `
320+ 2 . Submit a pull request with a clear description of the version being added
321+ 3 . Include any platform-specific notes or limitations
0 commit comments