{"id":27927140,"url":"https://github.com/llvmenv/llvmenv","last_synced_at":"2025-05-07T01:28:31.517Z","repository":{"id":44622358,"uuid":"132849119","full_name":"llvmenv/llvmenv","owner":"llvmenv","description":"Manage multiple LLVM/Clang builds","archived":false,"fork":false,"pushed_at":"2024-05-08T13:29:37.000Z","size":281,"stargazers_count":161,"open_issues_count":25,"forks_count":41,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-05-05T14:09:36.757Z","etag":null,"topics":["clang","env","llvm"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/llvmenv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-10T04:38:29.000Z","updated_at":"2025-04-14T17:25:30.000Z","dependencies_parsed_at":"2024-11-16T17:29:23.089Z","dependency_job_id":null,"html_url":"https://github.com/llvmenv/llvmenv","commit_stats":{"total_commits":271,"total_committers":14,"mean_commits":"19.357142857142858","dds":"0.12915129151291516","last_synced_commit":"11f9f94f21d26aabbfc2655c331bc9262f6b7cd7"},"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/llvmenv%2Fllvmenv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/llvmenv%2Fllvmenv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/llvmenv%2Fllvmenv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/llvmenv%2Fllvmenv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/llvmenv","download_url":"https://codeload.github.com/llvmenv/llvmenv/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252795246,"owners_count":21805351,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clang","env","llvm"],"created_at":"2025-05-07T01:28:30.705Z","updated_at":"2025-05-07T01:28:31.509Z","avatar_url":"https://github.com/llvmenv.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":":sos: This project is only somewhat active due to the low number of active maintainers. If you wish to participate, see [#72](https://github.com/llvmenv/llvmenv/issues/72).\n\nllvmenv\n=========\n\n[![crate](https://img.shields.io/crates/v/llvmenv.svg)](https://crates.io/crates/llvmenv)\n[![docs.rs](https://docs.rs/llvmenv/badge.svg)](https://docs.rs/llvmenv)\n\nManage multiple LLVM/Clang build\n\nInstall\n-------\n\n0. Install cmake, builder (make/ninja), and C++ compiler (g++/clang++)\n1. Install Rust using [rustup](https://github.com/rust-lang-nursery/rustup.rs) or any other method.  The minimum supported Rust version is currently **1.48.0**.\n2. `cargo install llvmenv`\n\n### Basic Usage\n\nTo install a specific version of LLVM after following the installation steps above, run these shell commands (\"10.0.0\" can be replaced with any other version found with `llvmenv entries`):\n\n```\nllvmenv init\nllvmenv entries\nllvmenv build-entry 10.0.0\n```\n\nzsh integration\n-----\n\nYou can swtich LLVM/Clang builds automatically using zsh precmd-hook. Please add a line into your `.zshrc`:\n\n```\nsource \u003c(llvmenv zsh)\n```\n\nIf `$LLVMENV_RUST_BINDING` environmental value is non-zero, llvmenv exports `LLVM_SYS_60_PREFIX=$(llvmenv prefix)` in addition to `$PATH`.\n\n```\nexport LLVMENV_RUST_BINDING=1\nsource \u003c(llvmenv zsh)\n```\n\nThis is useful for [llvm-sys.rs](https://github.com/tari/llvm-sys.rs) users. Be sure that this env value will not be unset by llvmenv, only overwrite.\n\nConcepts\n=========\n\nentry\n------\n\n- **entry** describes how to compile LLVM/Clang\n- Two types of entries\n  - *Remote*: Download LLVM from Git/SVN repository or Tar archive, and then build\n  - *Local*: Build locally cloned LLVM source\n- See [the module document](https://docs.rs/llvmenv/*/llvmenv/entry/index.html) for detail\n\nbuild\n------\n\n- **build** is a directory where compiled executables (e.g. clang) and libraries are installed.\n- They are compiled by `llvmenv build-entry`, and placed at `$XDG_DATA_HOME/llvmenv` (usually `$HOME/.local/share/llvmenv`).\n- There is a special build, \"system\", which uses system's executables.\n\nglobal/local prefix\n--------------------\n\n- `llvmenv prefix` returns the path of the current build (e.g. `$XDG_DATA_HOME/llvmenv/llvm-dev`, or `/usr` for system build).\n- `llvmenv global [name]` sets default build, and `llvmenv local [name]` sets directory-local build by creating `.llvmenv` text file.\n- You can confirm which `.llvmenv` sets the current prefix by `llvmenv prefix -v`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllvmenv%2Fllvmenv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fllvmenv%2Fllvmenv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllvmenv%2Fllvmenv/lists"}