aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo/platform
diff options
context:
space:
mode:
authorMukilan Thiyagarajan <mukilan@igalia.com>2024-09-20 13:50:27 +0530
committerGitHub <noreply@github.com>2024-09-20 08:20:27 +0000
commit157e28c59b34ec8c7334161fda658cbbb1e66a25 (patch)
treea4f2b9b57f1c3b30333a97fb3831973c110fad99 /python/servo/platform
parent457d37d94ee6966cad377c373d333a00c637e1ae (diff)
downloadservo-157e28c59b34ec8c7334161fda658cbbb1e66a25.tar.gz
servo-157e28c59b34ec8c7334161fda658cbbb1e66a25.zip
openharmony: add servoshell for ohos (#33295)
* openharmony: add servoshell for ohos Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * ohos: handle missing signing config on forks Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> --------- Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Diffstat (limited to 'python/servo/platform')
-rw-r--r--python/servo/platform/build_target.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/python/servo/platform/build_target.py b/python/servo/platform/build_target.py
index bf795386b5a..ecdb6c71c13 100644
--- a/python/servo/platform/build_target.py
+++ b/python/servo/platform/build_target.py
@@ -21,6 +21,7 @@ from packaging.version import parse as parse_version
from typing import Any, Dict, Optional
import servo.platform
+import servo.util as util
class BuildTarget(object):
@@ -61,6 +62,8 @@ class CrossBuildTarget(BuildTarget):
class AndroidTarget(CrossBuildTarget):
+ DEFAULT_TRIPLE = "aarch64-linux-android"
+
def ndk_configuration(self) -> Dict[str, str]:
target = self.triple()
config = {}
@@ -237,8 +240,16 @@ class AndroidTarget(CrossBuildTarget):
def needs_packaging(self) -> bool:
return True
+ def get_package_path(self, build_type_directory: str) -> str:
+ base_path = util.get_target_dir()
+ base_path = path.join(base_path, "android", self.triple())
+ apk_name = "servoapp.apk"
+ return path.join(base_path, build_type_directory, apk_name)
+
class OpenHarmonyTarget(CrossBuildTarget):
+ DEFAULT_TRIPLE = "aarch64-unknown-linux-ohos"
+
def configure_build_environment(self, env: Dict[str, str], config: Dict[str, Any], topdir: pathlib.Path):
# Paths to OpenHarmony SDK and build tools:
# Note: `OHOS_SDK_NATIVE` is the CMake variable name the `hvigor` build-system
@@ -370,3 +381,17 @@ class OpenHarmonyTarget(CrossBuildTarget):
def needs_packaging(self) -> bool:
return True
+
+ def get_package_path(self, build_type_directory: str) -> str:
+ base_path = util.get_target_dir()
+ base_path = path.join(base_path, "openharmony", self.triple())
+ hap_name = "servoshell-default-signed.hap"
+ build_output_path = path.join("entry", "build", "default", "outputs", "default")
+ return path.join(base_path, build_type_directory, build_output_path, hap_name)
+
+ def abi_string(self) -> str:
+ abi_map = {
+ "aarch64-unknown-linux-ohos": "arm64-v8a",
+ "x86_64-unknown-linux-ohos": "x86_64"
+ }
+ return abi_map[self.triple()]