compiler_llvm_builder/
llvm_path.rs1use std::path::PathBuf;
6
7pub struct LLVMPath {}
11
12impl LLVMPath {
13    pub const DIRECTORY_LLVM_HOST_SOURCE: &'static str = "./llvm-host/";
15
16    pub const DIRECTORY_LLVM_SOURCE: &'static str = "./llvm/";
18
19    pub const DIRECTORY_LLVM_TARGET: &'static str = "./target-llvm/";
21
22    pub fn llvm_host_module_llvm() -> anyhow::Result<PathBuf> {
26        let mut path = PathBuf::from(Self::DIRECTORY_LLVM_HOST_SOURCE);
27        path.push("llvm");
28        crate::utils::absolute_path(path)
29    }
30
31    pub fn llvm_module_llvm() -> anyhow::Result<PathBuf> {
35        let mut path = PathBuf::from(Self::DIRECTORY_LLVM_SOURCE);
36        path.push("llvm");
37        crate::utils::absolute_path(path)
38    }
39
40    pub fn musl_source(name: &str) -> anyhow::Result<PathBuf> {
44        let mut path = PathBuf::from(Self::DIRECTORY_LLVM_TARGET);
45        path.push(name);
46        crate::utils::absolute_path(path)
47    }
48
49    pub fn musl_build(source_directory: &str) -> anyhow::Result<PathBuf> {
53        let mut path = PathBuf::from(Self::DIRECTORY_LLVM_TARGET);
54        path.push(source_directory);
55        path.push("build");
56        crate::utils::absolute_path(path)
57    }
58
59    pub fn llvm_build_crt() -> anyhow::Result<PathBuf> {
63        let mut path = PathBuf::from(Self::DIRECTORY_LLVM_TARGET);
64        path.push("build-crt");
65        crate::utils::absolute_path(path)
66    }
67
68    pub fn llvm_build_host() -> anyhow::Result<PathBuf> {
72        let mut path = PathBuf::from(Self::DIRECTORY_LLVM_TARGET);
73        path.push("build-host");
74        crate::utils::absolute_path(path)
75    }
76
77    pub fn llvm_build_final() -> anyhow::Result<PathBuf> {
81        let mut path = PathBuf::from(Self::DIRECTORY_LLVM_TARGET);
82        path.push("build-final");
83        crate::utils::absolute_path(path)
84    }
85
86    pub fn musl_target() -> anyhow::Result<PathBuf> {
90        let mut path = PathBuf::from(Self::DIRECTORY_LLVM_TARGET);
91        path.push("target-musl");
92        crate::utils::absolute_path(path)
93    }
94
95    pub fn llvm_target_crt() -> anyhow::Result<PathBuf> {
99        let mut path = PathBuf::from(Self::DIRECTORY_LLVM_TARGET);
100        path.push("target-crt");
101        crate::utils::absolute_path(path)
102    }
103
104    pub fn llvm_target_host() -> anyhow::Result<PathBuf> {
108        let mut path = PathBuf::from(Self::DIRECTORY_LLVM_TARGET);
109        path.push("target-host");
110        crate::utils::absolute_path(path)
111    }
112
113    pub fn llvm_target_final() -> anyhow::Result<PathBuf> {
117        let mut path = PathBuf::from(Self::DIRECTORY_LLVM_TARGET);
118        path.push("target-final");
119        crate::utils::absolute_path(path)
120    }
121}