mirror of
https://github.com/browseros-ai/BrowserOS.git
synced 2026-05-13 15:46:22 +00:00
update build docs and flags
This commit is contained in:
@@ -116,17 +116,24 @@ Once you have Chromium checked out, navigate to our build system:
|
|||||||
cd packages/browseros
|
cd packages/browseros
|
||||||
|
|
||||||
# Debug build (for development)
|
# Debug build (for development)
|
||||||
python build/build.py --chromium-src /path/to/chromium/src --build --build-type debug
|
# macOS
|
||||||
|
python build/build.py --config build/config/debug.macos.yaml --chromium-src /path/to/chromium/src --build
|
||||||
|
|
||||||
|
# Linux
|
||||||
|
python build/build.py --config build/config/debug.linux.yaml --chromium-src /path/to/chromium/src --build
|
||||||
|
|
||||||
|
# Windows
|
||||||
|
python build/build.py --config build/config/debug.windows.yaml --chromium-src /path/to/chromium/src --build
|
||||||
|
|
||||||
# Release build (for production)
|
# Release build (for production)
|
||||||
# macOS
|
# macOS
|
||||||
python build/build.py --chromium-src /path/to/chromium/src --build --build-type release
|
python build/build.py --config build/config/release.macos.yaml --chromium-src /path/to/chromium/src --build
|
||||||
|
|
||||||
# Linux
|
# Linux
|
||||||
python build/build.py --chromium-src /path/to/chromium/src --build --build-type release
|
python build/build.py --config build/config/release.linux.yaml --chromium-src /path/to/chromium/src --build
|
||||||
|
|
||||||
# Windows
|
# Windows
|
||||||
python build/build.py --chromium-src /path/to/chromium/src --build --build-type release
|
python build/build.py --config build/config/release.windows.yaml --chromium-src /path/to/chromium/src --build
|
||||||
```
|
```
|
||||||
|
|
||||||
The build typically takes 1-3 hours on modern hardware (M4 Max, Ryzen 9, etc.).
|
The build typically takes 1-3 hours on modern hardware (M4 Max, Ryzen 9, etc.).
|
||||||
|
|||||||
109
docs/BUILD.md
109
docs/BUILD.md
@@ -1,9 +1,10 @@
|
|||||||
# Building Nxtscape
|
# Building BrowserOS
|
||||||
|
|
||||||
This guide will walk you through building Nxtscape from source on macOS.
|
This guide will walk you through building BrowserOS from source.
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
|
### macOS
|
||||||
- macOS (tested on M4 Max)
|
- macOS (tested on M4 Max)
|
||||||
- Xcode and Command Line Tools
|
- Xcode and Command Line Tools
|
||||||
- Python 3
|
- Python 3
|
||||||
@@ -11,6 +12,22 @@ This guide will walk you through building Nxtscape from source on macOS.
|
|||||||
- ~100GB of free disk space (for Chromium source)
|
- ~100GB of free disk space (for Chromium source)
|
||||||
- ~8GB RAM minimum (16GB+ recommended)
|
- ~8GB RAM minimum (16GB+ recommended)
|
||||||
|
|
||||||
|
### Linux
|
||||||
|
- Ubuntu 20.04+ or similar
|
||||||
|
- build-essential package
|
||||||
|
- Python 3
|
||||||
|
- Git
|
||||||
|
- ~100GB of free disk space
|
||||||
|
- ~8GB RAM minimum (16GB+ recommended)
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
- Windows 10/11
|
||||||
|
- Visual Studio 2022 with C++ workload
|
||||||
|
- Python 3
|
||||||
|
- Git
|
||||||
|
- ~100GB of free disk space
|
||||||
|
- ~16GB RAM minimum
|
||||||
|
|
||||||
## Build Instructions
|
## Build Instructions
|
||||||
|
|
||||||
### Step 1: Checkout Chromium
|
### Step 1: Checkout Chromium
|
||||||
@@ -18,45 +35,71 @@ This guide will walk you through building Nxtscape from source on macOS.
|
|||||||
First, you need to get the Chromium source code. Follow the official Chromium instructions:
|
First, you need to get the Chromium source code. Follow the official Chromium instructions:
|
||||||
|
|
||||||
1. Visit the [Chromium Get the Code guide](https://www.chromium.org/developers/how-tos/get-the-code/)
|
1. Visit the [Chromium Get the Code guide](https://www.chromium.org/developers/how-tos/get-the-code/)
|
||||||
2. Follow the macOS-specific instructions to set up depot_tools and fetch Chromium
|
2. Follow the platform-specific instructions to set up depot_tools and fetch Chromium
|
||||||
3. Clone the Chromium repository into a `build` directory inside your nxtscape repository:
|
3. Note the path to your chromium/src directory (you'll need it for building)
|
||||||
|
|
||||||
|
### Step 2: Build BrowserOS
|
||||||
|
|
||||||
|
Navigate to the BrowserOS build system:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /path/to/nxtscape
|
cd packages/browseros
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
# Follow Chromium checkout instructions here
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Step 2: Apply Nxtscape Patches
|
#### Debug Build (for development):
|
||||||
|
|
||||||
Once you have Chromium checked out, the Nxtscape patches need to be applied to customize the browser with AI features.
|
|
||||||
|
|
||||||
### Step 3: Build Nxtscape
|
|
||||||
|
|
||||||
Nxtscape provides a Python build script that handles the compilation process.
|
|
||||||
|
|
||||||
#### For Debug Build:
|
|
||||||
```bash
|
|
||||||
python build/build.py --build --build-type debug
|
|
||||||
```
|
|
||||||
|
|
||||||
#### For Release Build:
|
|
||||||
```bash
|
|
||||||
python build/build.py --build --build-type release
|
|
||||||
```
|
|
||||||
|
|
||||||
**Note:** The build process typically takes around 3 hours on an M4 Max laptop. Build times may vary based on your hardware specifications.
|
|
||||||
|
|
||||||
### Step 4: Run Nxtscape
|
|
||||||
|
|
||||||
After the build completes successfully, you can run Nxtscape using:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
out/Default/Nxtscape.app/Contents/MacOS/Nxtscape --use-mock-keychain
|
# macOS
|
||||||
|
python build/build.py --config build/config/debug.macos.yaml --chromium-src /path/to/chromium/src --build
|
||||||
|
|
||||||
|
# Linux
|
||||||
|
python build/build.py --config build/config/debug.linux.yaml --chromium-src /path/to/chromium/src --build
|
||||||
|
|
||||||
|
# Windows
|
||||||
|
python build/build.py --config build/config/debug.windows.yaml --chromium-src /path/to/chromium/src --build
|
||||||
```
|
```
|
||||||
|
|
||||||
The `--use-mock-keychain` flag is used to avoid keychain permission prompts during development.
|
#### Release Build (for production):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# macOS
|
||||||
|
python build/build.py --config build/config/release.macos.yaml --chromium-src /path/to/chromium/src --build
|
||||||
|
|
||||||
|
# Linux
|
||||||
|
python build/build.py --config build/config/release.linux.yaml --chromium-src /path/to/chromium/src --build
|
||||||
|
|
||||||
|
# Windows
|
||||||
|
python build/build.py --config build/config/release.windows.yaml --chromium-src /path/to/chromium/src --build
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note:** The build process typically takes 1-3 hours on modern hardware. Build times may vary based on your hardware specifications.
|
||||||
|
|
||||||
|
### Step 3: Run BrowserOS
|
||||||
|
|
||||||
|
After the build completes successfully, you can run BrowserOS:
|
||||||
|
|
||||||
|
#### macOS Debug Build:
|
||||||
|
```bash
|
||||||
|
# ARM64 (Apple Silicon)
|
||||||
|
out/Default_arm64/BrowserOS\ Dev.app/Contents/MacOS/BrowserOS\ Dev --user-data-dir=/tmp/test-profile
|
||||||
|
|
||||||
|
# x64 (Intel)
|
||||||
|
out/Default_x64/BrowserOS\ Dev.app/Contents/MacOS/BrowserOS\ Dev --user-data-dir=/tmp/test-profile
|
||||||
|
```
|
||||||
|
|
||||||
|
#### macOS Release Build:
|
||||||
|
```bash
|
||||||
|
# ARM64 (Apple Silicon)
|
||||||
|
out/Default_arm64/BrowserOS.app/Contents/MacOS/BrowserOS --user-data-dir=/tmp/test-profile
|
||||||
|
|
||||||
|
# x64 (Intel)
|
||||||
|
out/Default_x64/BrowserOS.app/Contents/MacOS/BrowserOS --user-data-dir=/tmp/test-profile
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Linux and Windows:
|
||||||
|
The built binary will be located in the `out/Default_x64/` directory. Run it with the `--user-data-dir` flag to create an isolated test profile.
|
||||||
|
|
||||||
|
The `--user-data-dir` flag is useful for creating isolated test profiles during development.
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
|
|||||||
@@ -10,12 +10,23 @@ use_siso=false
|
|||||||
# Compiler
|
# Compiler
|
||||||
use_sysroot = true
|
use_sysroot = true
|
||||||
use_custom_libcxx = true
|
use_custom_libcxx = true
|
||||||
|
is_clang = true
|
||||||
|
clang_use_chrome_plugins = false
|
||||||
|
fatal_linker_warnings = false
|
||||||
|
|
||||||
# Features
|
# Features
|
||||||
enable_nacl = false
|
enable_nacl = false
|
||||||
enable_widevine = true
|
enable_widevine = true
|
||||||
enable_hangout_services_extension = false
|
enable_hangout_services_extension = false
|
||||||
enable_js_type_check = false
|
enable_js_type_check = false
|
||||||
|
disable_fieldtrial_testing_config = true
|
||||||
|
use_system_libffi = false
|
||||||
|
google_api_key = ""
|
||||||
|
google_default_client_id = ""
|
||||||
|
google_default_client_secret = ""
|
||||||
|
use_official_google_api_keys = false
|
||||||
|
enable_swiftshader = false
|
||||||
|
chrome_pgo_phase = 0
|
||||||
|
|
||||||
# Media
|
# Media
|
||||||
proprietary_codecs = true
|
proprietary_codecs = true
|
||||||
|
|||||||
@@ -5,6 +5,12 @@ is_component_build = true
|
|||||||
symbol_level = 0
|
symbol_level = 0
|
||||||
chrome_pgo_phase = 0
|
chrome_pgo_phase = 0
|
||||||
is_official_build = false
|
is_official_build = false
|
||||||
|
use_siso = false
|
||||||
|
is_clang = true
|
||||||
|
exclude_unwind_tables = false
|
||||||
|
treat_warnings_as_errors = false
|
||||||
|
use_sysroot = false
|
||||||
|
v8_symbol_level = 0
|
||||||
|
|
||||||
# Windows-specific compiler/linker settings
|
# Windows-specific compiler/linker settings
|
||||||
target_cpu = "x64"
|
target_cpu = "x64"
|
||||||
|
|||||||
@@ -28,18 +28,3 @@ symbol_level=0
|
|||||||
|
|
||||||
ffmpeg_branding="Chrome"
|
ffmpeg_branding="Chrome"
|
||||||
|
|
||||||
# OLD
|
|
||||||
|
|
||||||
# use_siso=false
|
|
||||||
# is_debug = false
|
|
||||||
# is_component_build = false
|
|
||||||
# is_official_build = true
|
|
||||||
# symbol_level = 0
|
|
||||||
# target_cpu = "x64"
|
|
||||||
# proprietary_codecs = true
|
|
||||||
# ffmpeg_branding = "Chrome"
|
|
||||||
# google_api_key=""
|
|
||||||
# google_default_client_id=""
|
|
||||||
# google_default_client_secret=""
|
|
||||||
# chrome_pgo_phase = 0
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user