@@ -28,7 +28,6 @@ use crate::GitRepo;
2828#[ derive( Debug , Copy , Clone , Hash , PartialEq , Eq ) ]
2929pub struct Llvm {
3030 pub target : Interned < String > ,
31- pub emscripten : bool ,
3231}
3332
3433impl Step for Llvm {
@@ -40,46 +39,35 @@ impl Step for Llvm {
4039 run. path ( "src/llvm-project" )
4140 . path ( "src/llvm-project/llvm" )
4241 . path ( "src/llvm" )
43- . path ( "src/llvm-emscripten" )
4442 }
4543
4644 fn make_run ( run : RunConfig < ' _ > ) {
47- let emscripten = run. path . ends_with ( "llvm-emscripten" ) ;
4845 run. builder . ensure ( Llvm {
4946 target : run. target ,
50- emscripten,
5147 } ) ;
5248 }
5349
5450 /// Compile LLVM for `target`.
5551 fn run ( self , builder : & Builder < ' _ > ) -> PathBuf {
5652 let target = self . target ;
57- let emscripten = self . emscripten ;
5853
5954 // If we're using a custom LLVM bail out here, but we can only use a
6055 // custom LLVM for the build triple.
61- if !self . emscripten {
62- if let Some ( config) = builder. config . target_config . get ( & target) {
63- if let Some ( ref s) = config. llvm_config {
64- check_llvm_version ( builder, s) ;
65- return s. to_path_buf ( )
66- }
56+ if let Some ( config) = builder. config . target_config . get ( & target) {
57+ if let Some ( ref s) = config. llvm_config {
58+ check_llvm_version ( builder, s) ;
59+ return s. to_path_buf ( )
6760 }
6861 }
6962
70- let ( llvm_info, root, out_dir, llvm_config_ret_dir) = if emscripten {
71- let info = & builder. emscripten_llvm_info ;
72- let dir = builder. emscripten_llvm_out ( target) ;
73- let config_dir = dir. join ( "bin" ) ;
74- ( info, "src/llvm-emscripten" , dir, config_dir)
75- } else {
76- let info = & builder. in_tree_llvm_info ;
77- let mut dir = builder. llvm_out ( builder. config . build ) ;
78- if !builder. config . build . contains ( "msvc" ) || builder. config . ninja {
79- dir. push ( "build" ) ;
80- }
81- ( info, "src/llvm-project/llvm" , builder. llvm_out ( target) , dir. join ( "bin" ) )
82- } ;
63+ let llvm_info = & builder. in_tree_llvm_info ;
64+ let root = "src/llvm-project/llvm" ;
65+ let out_dir = builder. llvm_out ( target) ;
66+ let mut llvm_config_ret_dir = builder. llvm_out ( builder. config . build ) ;
67+ if !builder. config . build . contains ( "msvc" ) || builder. config . ninja {
68+ llvm_config_ret_dir. push ( "build" ) ;
69+ }
70+ llvm_config_ret_dir. push ( "bin" ) ;
8371
8472 let build_llvm_config = llvm_config_ret_dir
8573 . join ( exe ( "llvm-config" , & * builder. config . build ) ) ;
@@ -107,8 +95,7 @@ impl Step for Llvm {
10795 }
10896 }
10997
110- let descriptor = if emscripten { "Emscripten " } else { "" } ;
111- builder. info ( & format ! ( "Building {}LLVM for {}" , descriptor, target) ) ;
98+ builder. info ( & format ! ( "Building LLVM for {}" , target) ) ;
11299 let _time = util:: timeit ( & builder) ;
113100 t ! ( fs:: create_dir_all( & out_dir) ) ;
114101
@@ -123,23 +110,15 @@ impl Step for Llvm {
123110
124111 // NOTE: remember to also update `config.toml.example` when changing the
125112 // defaults!
126- let llvm_targets = if self . emscripten {
127- "JSBackend"
128- } else {
129- match builder. config . llvm_targets {
130- Some ( ref s) => s,
131- None => "AArch64;ARM;Hexagon;MSP430;Mips;NVPTX;PowerPC;RISCV;\
132- Sparc;SystemZ;WebAssembly;X86",
133- }
113+ let llvm_targets = match & builder. config . llvm_targets {
114+ Some ( s) => s,
115+ None => "AArch64;ARM;Hexagon;MSP430;Mips;NVPTX;PowerPC;RISCV;\
116+ Sparc;SystemZ;WebAssembly;X86",
134117 } ;
135118
136- let llvm_exp_targets = if self . emscripten {
137- ""
138- } else {
139- match builder. config . llvm_experimental_targets {
140- Some ( ref s) => s,
141- None => "" ,
142- }
119+ let llvm_exp_targets = match builder. config . llvm_experimental_targets {
120+ Some ( ref s) => s,
121+ None => "" ,
143122 } ;
144123
145124 let assertions = if builder. config . llvm_assertions { "ON" } else { "OFF" } ;
@@ -163,25 +142,23 @@ impl Step for Llvm {
163142 . define ( "LLVM_TARGET_ARCH" , target. split ( '-' ) . next ( ) . unwrap ( ) )
164143 . define ( "LLVM_DEFAULT_TARGET_TRIPLE" , target) ;
165144
166- if builder. config . llvm_thin_lto && !emscripten {
145+ if builder. config . llvm_thin_lto {
167146 cfg. define ( "LLVM_ENABLE_LTO" , "Thin" ) ;
168147 if !target. contains ( "apple" ) {
169148 cfg. define ( "LLVM_ENABLE_LLD" , "ON" ) ;
170149 }
171150 }
172151
173- let want_lldb = builder. config . lldb_enabled && !self . emscripten ;
174-
175152 // This setting makes the LLVM tools link to the dynamic LLVM library,
176153 // which saves both memory during parallel links and overall disk space
177154 // for the tools. We don't do this on every platform as it doesn't work
178155 // equally well everywhere.
179- if builder. llvm_link_tools_dynamically ( target) && !emscripten {
156+ if builder. llvm_link_tools_dynamically ( target) {
180157 cfg. define ( "LLVM_LINK_LLVM_DYLIB" , "ON" ) ;
181158 }
182159
183160 // For distribution we want the LLVM tools to be *statically* linked to libstdc++
184- if builder. config . llvm_tools_enabled || want_lldb {
161+ if builder. config . llvm_tools_enabled || builder . config . lldb_enabled {
185162 if !target. contains ( "windows" ) {
186163 if target. contains ( "apple" ) {
187164 cfg. define ( "CMAKE_EXE_LINKER_FLAGS" , "-static-libstdc++" ) ;
@@ -209,7 +186,7 @@ impl Step for Llvm {
209186 enabled_llvm_projects. push ( "compiler-rt" ) ;
210187 }
211188
212- if want_lldb {
189+ if builder . config . lldb_enabled {
213190 enabled_llvm_projects. push ( "clang" ) ;
214191 enabled_llvm_projects. push ( "lldb" ) ;
215192 // For the time being, disable code signing.
@@ -234,10 +211,9 @@ impl Step for Llvm {
234211 }
235212
236213 // http://llvm.org/docs/HowToCrossCompileLLVM.html
237- if target != builder. config . build && !emscripten {
214+ if target != builder. config . build {
238215 builder. ensure ( Llvm {
239216 target : builder. config . build ,
240- emscripten : false ,
241217 } ) ;
242218 // FIXME: if the llvm root for the build triple is overridden then we
243219 // should use llvm-tblgen from there, also should verify that it
@@ -481,7 +457,6 @@ impl Step for Lld {
481457
482458 let llvm_config = builder. ensure ( Llvm {
483459 target : self . target ,
484- emscripten : false ,
485460 } ) ;
486461
487462 let out_dir = builder. lld_out ( target) ;
0 commit comments