pw_package: Add mbedtls to pw package Add support for downloading mbedtls library in `pw package`. Upstream doesn't provide a gn build script. It will need to be added in //third_party/mbedtls. To avoid breaking the build, the install locks on a commit and we'll manually bump it. Change-Id: I0cd16e352aead5c90340be582bf54de357c99252 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/44280 Reviewed-by: Ali Zhang <alizhang@google.com> Reviewed-by: Varun Sharma <vars@google.com> Commit-Queue: Yecheng Zhao <zyecheng@google.com>
diff --git a/pw_package/py/BUILD.gn b/pw_package/py/BUILD.gn index cc385c7..78056dc 100644 --- a/pw_package/py/BUILD.gn +++ b/pw_package/py/BUILD.gn
@@ -24,6 +24,7 @@ "pw_package/package_manager.py", "pw_package/packages/__init__.py", "pw_package/packages/arduino_core.py", + "pw_package/packages/mbedtls.py", "pw_package/packages/nanopb.py", "pw_package/packages/stm32cube.py", "pw_package/pigweed_packages.py",
diff --git a/pw_package/py/pw_package/packages/mbedtls.py b/pw_package/py/pw_package/packages/mbedtls.py new file mode 100644 index 0000000..a320efb --- /dev/null +++ b/pw_package/py/pw_package/packages/mbedtls.py
@@ -0,0 +1,43 @@ +# Copyright 2021 The Pigweed Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +"""Install and check status of MbedTLS.""" + +import pathlib +from typing import Sequence + +import pw_package.git_repo +import pw_package.package_manager + + +class MbedTLS(pw_package.git_repo.GitRepo): + """Install and check status of MbedTLS.""" + def __init__(self, *args, **kwargs): + super().__init__(*args, + name='mbedtls', + url="".join([ + "https://pigweed.googlesource.com", + "/third_party/github/ARMmbed/mbedtls", + ]), + commit='e483a77c85e1f9c1dd2eb1c5a8f552d2617fe400', + **kwargs) + + def info(self, path: pathlib.Path) -> Sequence[str]: + return ( + f'{self.name} installed in: {path}', + "Enable by running 'gn args out' and adding this line:", + f' dir_pw_third_party_mbedtls = "{path}"', + ) + + +pw_package.package_manager.register(MbedTLS)
diff --git a/pw_package/py/pw_package/pigweed_packages.py b/pw_package/py/pw_package/pigweed_packages.py index 5c90120..c92f735 100644 --- a/pw_package/py/pw_package/pigweed_packages.py +++ b/pw_package/py/pw_package/pigweed_packages.py
@@ -19,6 +19,7 @@ from pw_package.packages import nanopb from pw_package.packages import arduino_core # pylint: disable=unused-import from pw_package.packages import stm32cube # pylint: disable=unused-import +from pw_package.packages import mbedtls # pylint: disable=unused-import def initialize():