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}