@@ -107,18 +107,18 @@ pub fn prebuilt_llvm_config(
107
107
108
108
// If we're using a custom LLVM bail out here, but we can only use a
109
109
// custom LLVM for the build triple.
110
- if let Some ( config) = builder. config . target_config . get ( & target) {
111
- if let Some ( ref s) = config. llvm_config {
112
- check_llvm_version ( builder , s ) ;
113
- let llvm_config = s . to_path_buf ( ) ;
114
- let mut llvm_cmake_dir = llvm_config . clone ( ) ;
115
- llvm_cmake_dir . pop ( ) ;
116
- llvm_cmake_dir. pop ( ) ;
117
- llvm_cmake_dir. push ( "lib" ) ;
118
- llvm_cmake_dir. push ( "cmake " ) ;
119
- llvm_cmake_dir. push ( "llvm " ) ;
120
- return LlvmBuildStatus :: AlreadyBuilt ( LlvmResult { llvm_config , llvm_cmake_dir } ) ;
121
- }
110
+ if let Some ( config) = builder. config . target_config . get ( & target)
111
+ && let Some ( ref s) = config. llvm_config
112
+ {
113
+ check_llvm_version ( builder , s ) ;
114
+ let llvm_config = s . to_path_buf ( ) ;
115
+ let mut llvm_cmake_dir = llvm_config . clone ( ) ;
116
+ llvm_cmake_dir. pop ( ) ;
117
+ llvm_cmake_dir. pop ( ) ;
118
+ llvm_cmake_dir. push ( "lib " ) ;
119
+ llvm_cmake_dir. push ( "cmake " ) ;
120
+ llvm_cmake_dir. push ( "llvm" ) ;
121
+ return LlvmBuildStatus :: AlreadyBuilt ( LlvmResult { llvm_config , llvm_cmake_dir } ) ;
122
122
}
123
123
124
124
if handle_submodule_when_needed {
@@ -467,10 +467,10 @@ impl Step for Llvm {
467
467
cfg. define ( "LLVM_ENABLE_RUNTIMES" , enabled_llvm_runtimes. join ( ";" ) ) ;
468
468
}
469
469
470
- if let Some ( num_linkers) = builder. config . llvm_link_jobs {
471
- if num_linkers > 0 {
472
- cfg . define ( "LLVM_PARALLEL_LINK_JOBS" , num_linkers . to_string ( ) ) ;
473
- }
470
+ if let Some ( num_linkers) = builder. config . llvm_link_jobs
471
+ && num_linkers > 0
472
+ {
473
+ cfg . define ( "LLVM_PARALLEL_LINK_JOBS" , num_linkers . to_string ( ) ) ;
474
474
}
475
475
476
476
// https://llvm.org/docs/HowToCrossCompileLLVM.html
@@ -596,10 +596,10 @@ fn check_llvm_version(builder: &Builder<'_>, llvm_config: &Path) {
596
596
597
597
let version = get_llvm_version ( builder, llvm_config) ;
598
598
let mut parts = version. split ( '.' ) . take ( 2 ) . filter_map ( |s| s. parse :: < u32 > ( ) . ok ( ) ) ;
599
- if let ( Some ( major) , Some ( _minor) ) = ( parts. next ( ) , parts. next ( ) ) {
600
- if major >= 19 {
601
- return ;
602
- }
599
+ if let ( Some ( major) , Some ( _minor) ) = ( parts. next ( ) , parts. next ( ) )
600
+ && major >= 19
601
+ {
602
+ return ;
603
603
}
604
604
panic ! ( "\n \n bad LLVM version: {version}, need >=19\n \n " )
605
605
}
@@ -729,11 +729,9 @@ fn configure_cmake(
729
729
730
730
// If ccache is configured we inform the build a little differently how
731
731
// to invoke ccache while also invoking our compilers.
732
- if use_compiler_launcher {
733
- if let Some ( ref ccache) = builder. config . ccache {
734
- cfg. define ( "CMAKE_C_COMPILER_LAUNCHER" , ccache)
735
- . define ( "CMAKE_CXX_COMPILER_LAUNCHER" , ccache) ;
736
- }
732
+ if use_compiler_launcher && let Some ( ref ccache) = builder. config . ccache {
733
+ cfg. define ( "CMAKE_C_COMPILER_LAUNCHER" , ccache)
734
+ . define ( "CMAKE_CXX_COMPILER_LAUNCHER" , ccache) ;
737
735
}
738
736
cfg. define ( "CMAKE_C_COMPILER" , sanitize_cc ( & cc) )
739
737
. define ( "CMAKE_CXX_COMPILER" , sanitize_cc ( & cxx) )
@@ -791,20 +789,20 @@ fn configure_cmake(
791
789
cxxflags. push ( format ! ( " --target={target}" ) ) ;
792
790
}
793
791
cfg. define ( "CMAKE_CXX_FLAGS" , cxxflags) ;
794
- if let Some ( ar) = builder. ar ( target) {
795
- if ar. is_absolute ( ) {
796
- // LLVM build breaks if `CMAKE_AR` is a relative path, for some reason it
797
- // tries to resolve this path in the LLVM build directory.
798
- cfg . define ( "CMAKE_AR" , sanitize_cc ( & ar ) ) ;
799
- }
792
+ if let Some ( ar) = builder. ar ( target)
793
+ && ar. is_absolute ( )
794
+ {
795
+ // LLVM build breaks if `CMAKE_AR` is a relative path, for some reason it
796
+ // tries to resolve this path in the LLVM build directory.
797
+ cfg . define ( "CMAKE_AR" , sanitize_cc ( & ar ) ) ;
800
798
}
801
799
802
- if let Some ( ranlib) = builder. ranlib ( target) {
803
- if ranlib. is_absolute ( ) {
804
- // LLVM build breaks if `CMAKE_RANLIB` is a relative path, for some reason it
805
- // tries to resolve this path in the LLVM build directory.
806
- cfg . define ( "CMAKE_RANLIB" , sanitize_cc ( & ranlib ) ) ;
807
- }
800
+ if let Some ( ranlib) = builder. ranlib ( target)
801
+ && ranlib. is_absolute ( )
802
+ {
803
+ // LLVM build breaks if `CMAKE_RANLIB` is a relative path, for some reason it
804
+ // tries to resolve this path in the LLVM build directory.
805
+ cfg . define ( "CMAKE_RANLIB" , sanitize_cc ( & ranlib ) ) ;
808
806
}
809
807
810
808
if let Some ( ref flags) = builder. config . llvm_ldflags {
@@ -1037,13 +1035,14 @@ impl Step for Lld {
1037
1035
// when doing PGO on CI, cmake or clang-cl don't automatically link clang's
1038
1036
// profiler runtime in. In that case, we need to manually ask cmake to do it, to avoid
1039
1037
// linking errors, much like LLVM's cmake setup does in that situation.
1040
- if builder. config . llvm_profile_generate && target. is_msvc ( ) {
1041
- if let Some ( clang_cl_path) = builder. config . llvm_clang_cl . as_ref ( ) {
1042
- // Find clang's runtime library directory and push that as a search path to the
1043
- // cmake linker flags.
1044
- let clang_rt_dir = get_clang_cl_resource_dir ( builder, clang_cl_path) ;
1045
- ldflags. push_all ( format ! ( "/libpath:{}" , clang_rt_dir. display( ) ) ) ;
1046
- }
1038
+ if builder. config . llvm_profile_generate
1039
+ && target. is_msvc ( )
1040
+ && let Some ( clang_cl_path) = builder. config . llvm_clang_cl . as_ref ( )
1041
+ {
1042
+ // Find clang's runtime library directory and push that as a search path to the
1043
+ // cmake linker flags.
1044
+ let clang_rt_dir = get_clang_cl_resource_dir ( builder, clang_cl_path) ;
1045
+ ldflags. push_all ( format ! ( "/libpath:{}" , clang_rt_dir. display( ) ) ) ;
1047
1046
}
1048
1047
1049
1048
// LLD is built as an LLVM tool, but is distributed outside of the `llvm-tools` component,
0 commit comments