From 2e2bd1b627f2f401c23088b4917a87ddc658fbdf Mon Sep 17 00:00:00 2001 From: zeshanpeng Date: Mon, 17 Jun 2024 17:42:53 -0400 Subject: [PATCH] [XVM] Generate LLVMXVMTarget.so in the script of build.py Description: Call cmake with the XVM target only for generating LLVMXVMTarget.so in build.py, and publish LLVMXVMTarget.so to the install folders. Issue: https://gitee.com/openharmony/third_party_llvm-project/issues/IA65MT Test: self-tested. Signed-off-by: zeshanpeng --- llvm-build/build.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/llvm-build/build.py b/llvm-build/build.py index 820d4ae0ecd8..45b8e3139288 100755 --- a/llvm-build/build.py +++ b/llvm-build/build.py @@ -925,6 +925,41 @@ class LlvmCore(BuildUtils): if self.build_config.enable_monitoring: llvm_defines['LLDB_ENABLE_PERFORMANCE'] = 'ON' + def llvm_build_install_xvm_dylib_so(self, build_name, + out_dir, + build_target, + llvm_extra_env, + debug_build): + llvm_path = self.merge_out_path('llvm_make') + llvm_path_dylib_so = self.merge_out_path('llvm_make_dylib_so') + install_dir_dylib_so = self.merge_out_path('llvm-install-dylib-so') + llvm_defines_dylib_so = {} + llvm_defines_dylib_so['LLVM_SPLIT_LLVM_DYLIB_TARGETS'] = 'ON' + if debug_build: + llvm_defines_dylib_so['CMAKE_BUILD_TYPE'] = 'Debug' + self.build_llvm(targets='XVM', + build_dir=llvm_path_dylib_so, + install_dir=install_dir_dylib_so, + build_name=build_name, + build_target=build_target, + extra_defines=llvm_defines_dylib_so, + extra_env=llvm_extra_env) + build_lib_xvm_dylib_so = os.path.join(llvm_path_dylib_so, 'lib', 'LLVMXVMTarget.so') + build_lib_folder = os.path.join(llvm_path, 'lib') + if os.path.exists(build_lib_xvm_dylib_so) and os.path.exists(build_lib_folder): + self.check_copy_file(build_lib_xvm_dylib_so, build_lib_folder) + else: + self.logger().error('Failed to copy ' + build_lib_xvm_dylib_so + ' to ' + build_lib_folder) + + build_lib_install_folder = os.path.join(out_dir, 'lib') + if os.path.exists(build_lib_xvm_dylib_so) and os.path.exists(build_lib_install_folder): + self.check_copy_file(build_lib_xvm_dylib_so, build_lib_install_folder) + else: + self.logger().error('Failed to copy ' + build_lib_xvm_dylib_so + ' to ' + build_lib_install_folder) + if not debug_build: + self.check_rm_tree(llvm_path_dylib_so) + self.check_rm_tree(install_dir_dylib_so) + def llvm_compile(self, build_name, out_dir, @@ -996,6 +1031,12 @@ class LlvmCore(BuildUtils): build_target=build_target, extra_defines=llvm_defines, extra_env=llvm_extra_env) + if build_xvm: + self.llvm_build_install_xvm_dylib_so(build_name, + out_dir, + build_target, + llvm_extra_env, + debug_build) def llvm_compile_windows_defines(self, windows_defines, -- Gitee