Check clang path for embedded

This commit is contained in:
s_c_c 2024-03-12 17:04:43 +08:00
parent 5134d9758c
commit ce0be914c8
2 changed files with 64 additions and 2 deletions

View File

@ -0,0 +1,57 @@
From 654f79ad11d2e4930312cd5f8b38df0e9c7908dd Mon Sep 17 00:00:00 2001
From: s_c_c <shichuchao@huawei.com>
Date: Tue, 12 Mar 2024 11:04:45 +0800
Subject: [PATCH] feat for embedded check clang path
---
hb_internal/preloader/preloader.py | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/hb_internal/preloader/preloader.py b/hb_internal/preloader/preloader.py
index 2cc8869..614023d 100644
--- a/hb_internal/preloader/preloader.py
+++ b/hb_internal/preloader/preloader.py
@@ -17,6 +17,7 @@ from dataclasses import dataclass
import os
import sys
import argparse
+import subprocess
sys.path.append(
os.path.dirname(os.path.dirname(os.path.dirname(
@@ -27,6 +28,21 @@ from hb_internal.common.utils import dump_json_file
from hb_internal.preloader.parse_lite_subsystems_config import parse_lite_subsystem_config
from hb_internal.preloader.parse_vendor_product_config import get_vendor_parts_list
+def _find_clang(finddirs):
+ cmd = ["which", "clang"]
+ for _dir in finddirs:
+ if os.path.exists(_dir):
+ path = os.environ.get('PATH')
+ os.environ['PATH'] = f'{_dir}:{path}'
+ try:
+ output = subprocess.check_output(cmd, env=os.environ)
+ _path = output.strip()
+ if len(_path) > 1:
+ return True
+ except subprocess.CalledProcessError as e:
+ ret = e.output
+ print("Error! {} failed, failed log is {}".format(cmd, ret))
+ return False
def _get_base_parts(base_config_dir, os_level):
system_base_config_file = os.path.join(base_config_dir,
@@ -615,6 +631,10 @@ class Preloader():
toolchain_label = '//build/toolchain/{0}:{0}_clang_{1}'.format(
target_os, target_cpu)
+ clang_found = _find_clang(["/usr/lib64/llvm15/bin"])
+ if clang_found is False:
+ toolchain_label = '//build/toolchain/{0}:{0}_{1}'.format(
+ target_os, target_cpu)
# add toolchain label
build_vars['product_toolchain_label'] = toolchain_label
--
2.20.1 (Apple Git-117)

View File

@ -2,14 +2,15 @@
%global openHarmony_source_release OpenHarmony-v3.2-Release
Name: distributed-build_lite
Version: 1.0.0
Release: 1
Release: 2
Summary: Sub component for openEuler embedded softbus build tools
License: Apache-2.0
URL: https://gitee.com/openharmony/build_lite
SOURCE0: bhttps://gitee.com/openharmony/build_lite/repository/archive/%{openHarmony_source_release}.tar.gz #/build_lite-%{openHarmony_source_release}.tar.gz
Patch0001: 0001-feat-Adapt-to-Openeuler-python.patch
Patch0002: 0002-feat-Adapt-to-Openeuler-productdefine.patch
Patch0003: 0003-feat-Adapt-to-Openeule-remove-useless-code.patch
Patch0003: 0003-feat-Adapt-to-Openeule-remove-useless-code.patch
Patch0004: 0004-feat-for-embedded-check-clang-path.patch
BuildArch: noarch
@ -30,5 +31,9 @@ cp -rp %{_builddir}/build_lite-%{openHarmony_source_release}/* %{buildroot}/opt
/opt/distributed-middleware-build/lite
%changelog
* Tue Mar 12 2024 s_c_c <shichuchao@huawei.com> - 1.0.0-2
- Check clang path for embedded
* Tue May 30 2023 tianhang <tian_hang@hoperun.com> - 1.0.0-1
- Init and Adapt to Openeuler