Implement ./mach bootstrap for MacOS

This commit is contained in:
Martin Robinson 2023-06-22 00:28:54 +02:00
parent 7aaad0aa7e
commit a57c49a4bb
4 changed files with 20 additions and 6 deletions

View file

@ -57,8 +57,7 @@ jobs:
- name: Bootstrap
run: |
python3 -m pip install --upgrade pip virtualenv
python3 ./mach bootstrap-gstreamer
brew install gnu-tar
python3 ./mach bootstrap
- name: Release build
run: |
python3 ./mach build --release --with-${{ env.LAYOUT }}

View file

@ -23,12 +23,11 @@ manually, try the [manual build setup][manual-build].
### macOS
- Install [Xcode](https://developer.apple.com/xcode/)
- Install [Homebrew](https://brew.sh/)
- Run `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`
- Run `./mach bootstrap-gstreamer`.
*This will install the recommended version of GStreamer globally on your system.*
- Run `brew bundle install --file=etc/homebrew/Brewfile`
- Run `pip install virtualenv`
- Run `./mach bootstrap`<br/>
*Note: This will install the recommended version of GStreamer globally on your system.*
### Linux

View file

@ -1,3 +1,4 @@
# Runtime dependencies
brew "xz"
brew "gnu-tar"

View file

@ -54,6 +54,21 @@ class MacOS(Base):
return False
return True
def _platform_bootstrap(self, _cache_dir: str, force: bool) -> bool:
installed_something = False
try:
brewfile = os.path.join(util.SERVO_ROOT, "etc", "homebrew", "Brewfile")
output = subprocess.check_output(
['brew', 'bundle', 'install', "--file", brewfile]
).decode("utf-8")
print(output)
installed_something = "Installing" in output
except subprocess.CalledProcessError as e:
print("Could not run homebrew. Is it installed?")
raise e
installed_something |= self._platform_bootstrap_gstreamer(False)
return installed_something
def _platform_bootstrap_gstreamer(self, force: bool) -> bool:
if not force and self.is_gstreamer_installed(cross_compilation_target=None):
return False