mirror of
https://github.com/servo/servo.git
synced 2025-08-04 21:20:23 +01:00
Previously, the args passed to `vswhere.exe` was wrong. There is no generic component ID called `Microsoft.VisualStudio.Component.Windows10SDK`, but always something like `Microsoft.VisualStudio.Component.Windows10SDK.19041` / `Microsoft.VisualStudio.Component.Windows11SDK.22621`. That's why users always had to manually setup environment variable `VSINSTALLDIR`, `VisualStudioVersion`. This QoL PR also makes `mach` compatible with Windows 11 SDK, and update README.md to be consistent with https://github.com/servo/book/pull/92. Testing: Tested locally and working fine after removing environment variables. --------- Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
93 lines
4.6 KiB
Markdown
93 lines
4.6 KiB
Markdown
# The Servo Parallel Browser Engine Project
|
|
|
|
Servo is a prototype web browser engine written in the
|
|
[Rust](https://github.com/rust-lang/rust) language. It is currently developed on
|
|
64-bit macOS, 64-bit Linux, 64-bit Windows, 64-bit OpenHarmony, and Android.
|
|
|
|
Servo welcomes contribution from everyone. Check out:
|
|
|
|
- The [Servo Book](https://book.servo.org) for documentation
|
|
- [servo.org](https://servo.org/) for news and guides
|
|
|
|
Coordination of Servo development happens:
|
|
- Here in the Github Issues
|
|
- On the [Servo Zulip](https://servo.zulipchat.com/)
|
|
- In video calls advertised in the [Servo Project](https://github.com/servo/project/issues) repo.
|
|
|
|
## Getting started
|
|
|
|
For more detailed build instructions, see the Servo book under [Setting up your environment], [Building Servo], [Building for Android] and [Building for OpenHarmony].
|
|
|
|
[Setting up your environment]: https://book.servo.org/hacking/setting-up-your-environment.html
|
|
[Building Servo]: https://book.servo.org/hacking/building-servo.html
|
|
[Building for Android]: https://book.servo.org/hacking/building-for-android.html
|
|
[Building for OpenHarmony]: https://book.servo.org/hacking/building-for-openharmony.html
|
|
|
|
### macOS
|
|
|
|
- Download and install [Xcode](https://developer.apple.com/xcode/) and [`brew`](https://brew.sh/).
|
|
- Install `uv`: `curl -LsSf https://astral.sh/uv/install.sh | sh`
|
|
- Install `rustup`: `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`
|
|
- Restart your shell to make sure `cargo` is available
|
|
- Install the other dependencies: `./mach bootstrap`
|
|
- Build servoshell: `./mach build`
|
|
|
|
### Linux
|
|
|
|
- Install `curl`:
|
|
- Arch: `sudo pacman -S --needed curl`
|
|
- Debian, Ubuntu: `sudo apt install curl`
|
|
- Fedora: `sudo dnf install curl`
|
|
- Gentoo: `sudo emerge net-misc/curl`
|
|
- Install `uv`: `curl -LsSf https://astral.sh/uv/install.sh | sh`
|
|
- Install `rustup`: `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`
|
|
- Restart your shell to make sure `cargo` is available
|
|
- Install the other dependencies: `./mach bootstrap`
|
|
- Build servoshell: `./mach build`
|
|
|
|
### Windows
|
|
|
|
- Download [`uv`](https://docs.astral.sh/uv/getting-started/installation/#standalone-installer), [`choco`](https://chocolatey.org/install#individual), and [`rustup`](https://win.rustup.rs/)
|
|
- Be sure to select *Quick install via the Visual Studio Community installer*
|
|
- In the Visual Studio Installer, ensure the following components are installed:
|
|
- **Windows 10/11 SDK (anything >= 10.0.19041.0)** (`Microsoft.VisualStudio.Component.Windows{10, 11}SDK.{>=19041}`)
|
|
- **MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest)** (`Microsoft.VisualStudio.Component.VC.Tools.x86.x64`)
|
|
- **C++ ATL for latest v143 build tools (x86 & x64)** (`Microsoft.VisualStudio.Component.VC.ATL`)
|
|
- **C++ MFC for latest v143 build tools (x86 & x64)** (`Microsoft.VisualStudio.Component.VC.ATLMFC`)
|
|
- Restart your shell to make sure `cargo` is available
|
|
- Install the other dependencies: `.\mach bootstrap`
|
|
- Build servoshell: `.\mach build`
|
|
|
|
### Android
|
|
|
|
- Ensure that the following environment variables are set:
|
|
- `ANDROID_SDK_ROOT`
|
|
- `ANDROID_NDK_ROOT`: `$ANDROID_SDK_ROOT/ndk/26.2.11394342/`
|
|
`ANDROID_SDK_ROOT` can be any directory (such as `~/android-sdk`).
|
|
All of the Android build dependencies will be installed there.
|
|
- Install the latest version of the [Android command-line
|
|
tools](https://developer.android.com/studio#command-tools) to
|
|
`$ANDROID_SDK_ROOT/cmdline-tools/latest`.
|
|
- Run the following command to install the necessary components:
|
|
```shell
|
|
sudo $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --install \
|
|
"build-tools;34.0.0" \
|
|
"emulator" \
|
|
"ndk;26.2.11394342" \
|
|
"platform-tools" \
|
|
"platforms;android-33" \
|
|
"system-images;android-33;google_apis;x86_64"
|
|
```
|
|
- Follow the instructions above for the platform you are building on
|
|
|
|
### OpenHarmony
|
|
|
|
- Follow the instructions above for the platform you are building on to prepare the environment.
|
|
- Depending on the target distribution (e.g. `HarmonyOS NEXT` vs pure `OpenHarmony`) the build configuration will differ slightly.
|
|
- Ensure that the following environment variables are set
|
|
- `DEVECO_SDK_HOME` (Required when targeting `HarmonyOS NEXT`)
|
|
- `OHOS_BASE_SDK_HOME` (Required when targeting `OpenHarmony`)
|
|
- `OHOS_SDK_NATIVE` (e.g. `${DEVECO_SDK_HOME}/default/openharmony/native` or `${OHOS_BASE_SDK_HOME}/${API_VERSION}/native`)
|
|
- `SERVO_OHOS_SIGNING_CONFIG`: Path to json file containing a valid signing configuration for the demo app.
|
|
- Review the detailed instructions at [Building for OpenHarmony].
|
|
- The target distribution can be modified by passing `--flavor=<default|harmonyos>` to `mach <build|package|install>.
|