🎉 Setup melon

This commit is contained in:
trickypr 2021-11-12 17:59:52 +11:00
parent e073765fe0
commit 6185a4cb9f
24 changed files with 336 additions and 1 deletions

5
.gitignore vendored
View File

@ -102,3 +102,8 @@ dist
# TernJS port file
.tern-port
.dotbuild/
engine/
firefox-*/
node_modules/

21
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,21 @@
{
"files.associations": {
"*.jsm": "javascript",
"moz.build": "python",
"moz.configure": "python",
"app.mozbuild": "python",
"Makefile.in": "makefile",
"mozconfig": "shellscript"
},
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/.git/subtree-cache/**": true,
"**/node_modules/*/**": true,
"*.tar.xz": true
},
"javascript.updateImportsOnFileMove.enabled": "always",
"files.exclude": {
"**/node_modules": true,
"**/.dotbuild": true
}
}

24
configs/common/mozconfig Normal file
View File

@ -0,0 +1,24 @@
# Browser branding
ac_add_options --enable-update-channel=release
ac_add_options --with-branding=${brandingDir}
ac_add_options --with-app-name=dot
export MOZ_USER_DIR="${name}"
export MOZ_APP_VENDOR="${vendor}"
export MOZ_APP_BASENAME=Dot
export MOZ_APP_PROFILE=dot
export MOZ_APP_DISPLAYNAME="${name}"
export MOZ_BRANDING_DIRECTORY=${brandingDir}
export MOZ_OFFICIAL_BRANDING_DIRECTORY=${brandingDir}
export MOZ_MACBUNDLE_ID=${appId}
export MOZ_DISTRIBUTION_ID=${appId}
# Uncomment if builds are too resource hungry
# mk_add_options MOZ_MAKE_FLAGS="-j4"
# ac_add_options --enable-linker=gold
# Misc
export MOZ_STUB_INSTALLER=1
export MOZ_INCLUDE_SOURCE_INFO=1
export MOZ_SOURCE_REPO=https://github.com/dothq/browser-desktop
export MOZ_SOURCE_CHANGESET=5893b1f8552ad0956b28ffd8105bf706bc9ee6fa

48
configs/linux/build_linux.sh Executable file
View File

@ -0,0 +1,48 @@
set -e
echo "Building Dot Browser for Linux"
echo ""
echo "This will take 10 to 60 minutes to complete."
echo ""
echo "━━━━━━━━━ Setting up roles... ━━━━━━━━━"
echo ""
sudo usermod -aG wheel worker
sudo chown -R worker:worker /worker
echo ""
echo "━━━━━━━━━ Setting up Rust... ━━━━━━━━━"
echo ""
rustup install stable
rustup default stable
echo ""
echo "━━━━━━━━━ Installing dependencies... ━━━━━━━━━"
echo ""
sudo pacman -Syu --noconfirm
echo ""
echo "━━━━━━━━━ Bootstrapping... ━━━━━━━━━"
echo ""
./mach bootstrap --application-choice browser --no-interactive
echo ""
echo "━━━━━━━━━ Building... ━━━━━━━━━"
echo ""
MOZCONFIG=/worker/build/mozconfig ./mach build
echo ""
echo "━━━━━━━━━ Packaging... ━━━━━━━━━"
echo ""
./mach package
echo ""
echo "Dot Browser was successfully built!"
echo "To take your build for a test drive, run: |melon run|"
echo ""

View File

@ -0,0 +1,28 @@
FROM archlinux:latest
# Setup environment variables
ENV SHELL=/bin/sh
ENV MACH_USE_SYSTEM_PYTHON=true
ENV BUILD_SCRIPT=/worker/configs/linux/build_linux.sh
# Mount working directory
RUN mkdir /worker
WORKDIR /worker/build
VOLUME /worker/build
# Remove password prompt for worker
RUN useradd -m worker
RUN usermod --append --groups wheel worker
RUN echo 'worker ALL=(ALL) NOPASSWD: ALL' >> \
/etc/sudoers
# Install dependencies
RUN pacman -Syu --noconfirm
RUN pacman -S --noconfirm base-devel git mercurial python2 python3 make wget tar zip yasm libpulse rustup python-pip
RUN rustup install stable && rustup default stable
RUN cargo install cbindgen
# Switch to worker user for build
USER worker
CMD sudo chmod +x $BUILD_SCRIPT && $BUILD_SCRIPT

13
configs/linux/mozconfig Normal file
View File

@ -0,0 +1,13 @@
# Optimise builds
ac_add_options --enable-application=browser
ac_add_options --enable-hardening
ac_add_options --enable-rust-simd
ac_add_options --enable-release
ac_add_options --enable-optimize
ac_add_options --with-ccache=sccache
ac_add_options --disable-debug
ac_add_options --enable-updater
# Disable telemetry and tracking
mk_add_options MOZ_TELEMETRY_REPORTING=
mk_add_options MOZ_DATA_REPORTING=

View File

@ -0,0 +1,16 @@
# Optimise builds
ac_add_options --enable-application=browser
ac_add_options --enable-hardening
ac_add_options --enable-rust-simd
ac_add_options --enable-release
ac_add_options --enable-optimize
ac_add_options --with-ccache=sccache
ac_add_options --disable-debug
ac_add_options --enable-updater
# Disable telemetry and tracking
mk_add_options MOZ_TELEMETRY_REPORTING=
mk_add_options MOZ_DATA_REPORTING=
# Support 32-bit builds
ac_add_options --target=i686

43
configs/macos/build_macos.sh Executable file
View File

@ -0,0 +1,43 @@
set -e
echo "Building Dot Browser for macOS"
echo ""
echo "This will take 10 to 60 minutes to complete."
echo ""
echo "━━━━━━━━━ Setting up roles... ━━━━━━━━━"
echo ""
sudo usermod -aG wheel worker
sudo chown -R worker:worker /worker
echo "━━━━━━━━━ Setting up Rust... ━━━━━━━━━"
echo ""
rustup install stable
rustup default stable
echo "━━━━━━━━━ Installing dependencies... ━━━━━━━━━"
echo ""
sudo pacman -Syu --noconfirm
echo "━━━━━━━━━ Bootstrapping... ━━━━━━━━━"
echo ""
./mach bootstrap --application-choice browser --no-interactive
echo "━━━━━━━━━ Building... ━━━━━━━━━"
echo ""
MOZCONFIG=/worker/build/mozconfig ./mach build
echo "━━━━━━━━━ Packaging... ━━━━━━━━━"
echo ""
./mach package
echo ""
echo "Dot Browser was successfully built!"
echo "To take your build for a test drive, run: |melon run|"
echo ""

View File

@ -0,0 +1,19 @@
FROM sickcodes/docker-osx:latest
# Setup environment variables
ENV SHELL=/bin/sh
ENV MACH_USE_SYSTEM_PYTHON=true
ENV BUILD_SCRIPT=/worker/configs/macos/build_macos.sh
# Mount working directory
RUN mkdir /worker
WORKDIR /worker/build
VOLUME /worker/build
# Make build script executable
RUN chmod +x $BUILD_SCRIPT
# Switch to worker user for build
USER worker
CMD $BUILD_SCRIPT

14
configs/macos/mozconfig Normal file
View File

@ -0,0 +1,14 @@
# Optimise builds
ac_add_options --enable-application=browser
ac_add_options --enable-hardening
ac_add_options --enable-rust-simd
ac_add_options --enable-release
ac_add_options --enable-optimize
ac_add_options --with-ccache=sccache
ac_add_options --disable-debug
ac_add_options --enable-updater
mk_add_options MOZ_MAKE_FLAGS="-j4"
# Disable telemetry and tracking
mk_add_options MOZ_TELEMETRY_REPORTING=
mk_add_options MOZ_DATA_REPORTING=

View File

@ -0,0 +1,17 @@
# Optimise builds
ac_add_options --enable-application=browser
ac_add_options --enable-hardening
ac_add_options --enable-rust-simd
ac_add_options --enable-release
ac_add_options --enable-optimize
ac_add_options --with-ccache=sccache
ac_add_options --disable-debug
ac_add_options --enable-updater
mk_add_options MOZ_MAKE_FLAGS="-j4"
# Disable telemetry and tracking
mk_add_options MOZ_TELEMETRY_REPORTING=
mk_add_options MOZ_DATA_REPORTING=
# Support 32-bit builds
ac_add_options --target=i686

View File

@ -0,0 +1,8 @@
ac_add_options --target=x86_64-pc-mingw32
ac_add_options --enable-js-shell
ac_add_options --enable-rust-simd
ac_add_options --enable-crashreporter
# Disable telemetry and tracking
mk_add_options MOZ_TELEMETRY_REPORTING=
mk_add_options MOZ_DATA_REPORTING=

View File

@ -0,0 +1,16 @@
# Optimise builds
ac_add_options --enable-application=browser
ac_add_options --enable-hardening
ac_add_options --enable-rust-simd
ac_add_options --enable-release
ac_add_options --enable-optimize
ac_add_options --with-ccache=sccache
ac_add_options --disable-debug
ac_add_options --enable-updater
# Disable telemetry and tracking
mk_add_options MOZ_TELEMETRY_REPORTING=
mk_add_options MOZ_DATA_REPORTING=
# Support 32-bit builds
ac_add_options --target=i686

2
melon

@ -1 +1 @@
Subproject commit f1d2b50490c033913e8d26bef43bdb9a131c7109
Subproject commit f23019e26677caac5001e2af87a6d24e57e016f7

10
melon.json Normal file
View File

@ -0,0 +1,10 @@
{
"name": "Focus browser",
"vendor": "Fushra",
"appId": "com.fushra.focus.desktop",
"version": {
"product": "firefox",
"version": "94.0.1",
"displayVersion": "1.0.0"
}
}

1
src/README.md Normal file
View File

@ -0,0 +1 @@
# Melon build tool

View File

@ -0,0 +1,13 @@
diff --git a/browser/themes/linux/browser.css b/browser/themes/linux/browser.css
index ac03145433960f8abcfad5f285545843f02e7f1e..108dc7b290206be7158e914f2760226cb2c219ea 100644
--- a/browser/themes/linux/browser.css
+++ b/browser/themes/linux/browser.css
@@ -6,6 +6,8 @@
@namespace html url("http://www.w3.org/1999/xhtml");
+%include ../custom/linux/linux.inc.css
+
%include ../shared/browser.inc.css
/**
* We intentionally do not include browser-custom-colors.inc.css,

View File

@ -0,0 +1,13 @@
diff --git a/browser/themes/osx/browser.css b/browser/themes/osx/browser.css
index 01036f1e2e08f2a033c439ed6796668704e39b02..0e07dc2ae161c0dca88c634577c4788755bf2324 100644
--- a/browser/themes/osx/browser.css
+++ b/browser/themes/osx/browser.css
@@ -4,6 +4,8 @@
@namespace html url("http://www.w3.org/1999/xhtml");
+%include ../custom/macos/macos.inc.css
+
%include ../shared/browser.inc.css
%include ../shared/browser-custom-colors.inc.css

View File

@ -0,0 +1,13 @@
diff --git a/browser/themes/shared/browser.inc.css b/browser/themes/shared/browser.inc.css
index b345560225ee8619524481c4570540746be9fcba..cafddff0e4febe056fceb35d705f3ef43cc08b1f 100644
--- a/browser/themes/shared/browser.inc.css
+++ b/browser/themes/shared/browser.inc.css
@@ -2,6 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+%include ../custom/shared/shared.inc.css
+
%include downloads/indicator.inc.css
%include addons/extension-controlled.inc.css

View File

@ -0,0 +1,13 @@
diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css
index 2cb1a094bc42d045992bf42ccd4c79e89795d971..c2fab339d4ddb7dd394d73f686c1b6e569d2a1be 100644
--- a/browser/themes/windows/browser.css
+++ b/browser/themes/windows/browser.css
@@ -4,6 +4,8 @@
@namespace html url("http://www.w3.org/1999/xhtml");
+%include ../custom/windows/windows.inc.css
+
%include ../shared/browser.inc.css
%include ../shared/browser-custom-colors.inc.css
%filter substitution