@@ -17,36 +17,44 @@ def preprocess(i):
1717 clang_file_name = "clang"
1818 extra_cmake_options = ''
1919
20- install_prefix = os .path .join (os .getcwd (), "install" )
21-
22- if env .get ('MLC_LLVM_CONDA_ENV' , '' ) == "yes" :
23- install_prefix = env ['MLC_CONDA_PREFIX' ]
24- extra_cmake_options = f"-DCMAKE_SHARED_LINKER_FLAGS=-L{ install_prefix } -Wl,-rpath,{ install_prefix } "
25-
26- if is_true (env .get ('MLC_LLVM_16_INTEL_MLPERF_INFERENCE' , '' )):
27- env ['MLC_REQUIRE_INSTALL' ] = 'yes'
28- i ['run_script_input' ]['script_name' ] = "install-llvm-16-intel-mlperf-inference"
29- clang_file_name = "llvm-link"
30- # env['USE_LLVM'] = install_prefix
31- # env['LLVM_DIR'] = os.path.join(env['USE_LLVM'], "lib", "cmake", "llvm")
20+ if env .get ('MLC_LLVM_INSTALLED_PATH' , '' ) != '' and os .path .exists (
21+ env .get ('MLC_LLVM_INSTALLED_PATH' )):
22+ install_prefix = env ['MLC_LLVM_INSTALLED_PATH' ]
3223 else :
33- if env .get ('+MLC_LLVM_ENABLE_RUNTIMES' , '' ) != '' :
34- enable_runtimes = ";" .join (env ['+MLC_LLVM_ENABLE_RUNTIMES' ])
35- else :
36- enable_runtimes = ''
24+ install_prefix = os .path .join (os .getcwd (), "install" )
3725
38- if env .get ('+MLC_LLVM_ENABLE_PROJECTS' , '' ) != '' :
39- enable_projects = ";" .join (env ['+MLC_LLVM_ENABLE_PROJECTS' ])
26+ if os .path .exists (os .path .join (install_prefix , "bin" , "clang" )) and is_true (
27+ env .get ('MLC_LLVM_USE_INSTALLED_DIR' )):
28+ i ['run_script_input' ]['script_name' ] = "no-install" # skip install
29+ else :
30+ if env .get ('MLC_LLVM_CONDA_ENV' , '' ) == "yes" :
31+ install_prefix = env ['MLC_CONDA_PREFIX' ]
32+ extra_cmake_options = f"-DCMAKE_SHARED_LINKER_FLAGS=-L{ install_prefix } -Wl,-rpath,{ install_prefix } "
33+
34+ if is_true (env .get ('MLC_LLVM_16_INTEL_MLPERF_INFERENCE' , '' )):
35+ env ['MLC_REQUIRE_INSTALL' ] = 'yes'
36+ i ['run_script_input' ]['script_name' ] = "install-llvm-16-intel-mlperf-inference"
37+ clang_file_name = "llvm-link"
38+ # env['USE_LLVM'] = install_prefix
39+ # env['LLVM_DIR'] = os.path.join(env['USE_LLVM'], "lib", "cmake", "llvm")
4040 else :
41- enable_projects = ''
41+ if env .get ('+MLC_LLVM_ENABLE_RUNTIMES' , '' ) != '' :
42+ enable_runtimes = ";" .join (env ['+MLC_LLVM_ENABLE_RUNTIMES' ])
43+ else :
44+ enable_runtimes = ''
45+
46+ if env .get ('+MLC_LLVM_ENABLE_PROJECTS' , '' ) != '' :
47+ enable_projects = ";" .join (env ['+MLC_LLVM_ENABLE_PROJECTS' ])
48+ else :
49+ enable_projects = ''
4250
43- llvm_build_type = env ['MLC_LLVM_BUILD_TYPE' ]
51+ llvm_build_type = env ['MLC_LLVM_BUILD_TYPE' ]
4452
45- targets_to_build = env .get ('MLC_LLVM_TARGETS_TO_BUILD' , 'X86' )
53+ targets_to_build = env .get ('MLC_LLVM_TARGETS_TO_BUILD' , 'X86' )
4654
47- cmake_cmd = f"""cmake { os .path .join (env ["MLC_LLVM_SRC_REPO_PATH" ], "llvm" )} -GNinja -DCMAKE_BUILD_TYPE={ llvm_build_type } -DLLVM_ENABLE_PROJECTS={ q } { enable_projects } { q } -DLLVM_ENABLE_RUNTIMES={ q } { enable_runtimes } { q } -DCMAKE_INSTALL_PREFIX={ q } { install_prefix } { q } -DLLVM_ENABLE_RTTI=ON -DLLVM_INSTALL_UTILS=ON -DLLVM_TARGETS_TO_BUILD={ targets_to_build } { extra_cmake_options } """
55+ cmake_cmd = f"""cmake { os .path .join (env ["MLC_LLVM_SRC_REPO_PATH" ], "llvm" )} -GNinja -DCMAKE_BUILD_TYPE={ llvm_build_type } -DLLVM_ENABLE_PROJECTS={ q } { enable_projects } { q } -DLLVM_ENABLE_RUNTIMES={ q } { enable_runtimes } { q } -DCMAKE_INSTALL_PREFIX={ q } { install_prefix } { q } -DLLVM_ENABLE_RTTI=ON -DLLVM_INSTALL_UTILS=ON -DLLVM_TARGETS_TO_BUILD={ targets_to_build } { extra_cmake_options } """
4856
49- env ['MLC_LLVM_CMAKE_CMD' ] = cmake_cmd
57+ env ['MLC_LLVM_CMAKE_CMD' ] = cmake_cmd
5058
5159 need_version = env .get ('MLC_VERSION' , '' )
5260
0 commit comments