diff --git a/.github/workflows/linux.yaml b/.github/workflows/linux.yaml new file mode 100644 index 000000000..bd219db51 --- /dev/null +++ b/.github/workflows/linux.yaml @@ -0,0 +1,55 @@ +name: linux +on: + push: + pull_request: + +jobs: + build: + name: ${{ matrix.config.name }} + runs-on: ubuntu-latest + env: + SHELL: bash + GTK: ${{ matrix.config.gtk }} + CC: ccache gcc + CXX: ccache g++ + strategy: + fail-fast: false + matrix: + config: + - name: Ubuntu-GTK3 + gtk: GTK3 + - name: Ubuntu-GTK2 + gtk: GTK2 + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Dependencies + run: | + exec bash "scripts/dependencies.sh" + + - name: Configure + run: | + exec bash "scripts/configure.sh" + + - name: "Set up compiler cache" + uses: actions/cache@v2 + with: + path: "~/.ccache" + key: ${{ matrix.config.os }}-${{ matrix.config.gtk }}-${{ github.head_ref }}-${{ github.run_number }} + restore-keys: | + ${{ matrix.config.os }}-${{ matrix.config.gtk }}-${{ github.head_ref }}- + + - name: Build + run: | + exec bash "scripts/build.sh" + + - name: Upload artifact + uses: actions/upload-artifact@v2 + with: + name: Male-Poon_${{matrix.config.name}} + path: | + obj-x86_64-pc-linux-gnu/dist/malepoon-* + LICENSE + if-no-files-found: error + diff --git a/.github/workflows/windows.yaml b/.github/workflows/windows.yaml new file mode 100644 index 000000000..d064ad84c --- /dev/null +++ b/.github/workflows/windows.yaml @@ -0,0 +1,58 @@ +name: windows +on: + push: + pull_request: + +jobs: + build: + name: ${{ matrix.config.name }} + runs-on: windows-latest + env: + WIN: ${{ matrix.config.win }} + strategy: + fail-fast: false + matrix: + config: + - name: Windows-Win64 + win: WIN64 + arch: amd64 + + - name: Windows-Win32 + win: WIN32 + arch: x86 + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: "MSVC Developer Command Prompt" + uses: seanmiddleditch/gha-setup-vsdevenv@v3 + with: + arch: ${{ matrix.config.arch }} + + + - name: Dependencies + run: | + Invoke-WebRequest -Uri https://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-2.2.0.exe -OutFile MozillaBuildSetup-2.2.0.exe + ./scripts/InstallMozillaBuild.ps1 + shell: pwsh + + - name: Configure + run: | + scripts/configure.sh + shell: bash + + - name: Build + run: | + scripts/build.sh + shell: bash + + - name: Upload artifact + uses: actions/upload-artifact@v2 + with: + name: Male-Poon_${{matrix.config.name}} + path: | + obj-*/dist/malepoon-* + LICENSE + if-no-files-found: error + diff --git a/mach b/mach index 0fbedf463..278f5f87e 100755 --- a/mach +++ b/mach @@ -1,4 +1,3 @@ #!/bin/sh - MACH_CMD=./platform/mach $MACH_CMD $@ diff --git a/malepoon/configure.in b/malepoon/configure.in index 1c1b75081..e60bebc6b 100644 --- a/malepoon/configure.in +++ b/malepoon/configure.in @@ -7,6 +7,8 @@ dnl file, You can obtain one at http://mozilla.org/MPL/2.0/. dnl Things we need to carry from confvars.sh AC_DEFINE(MOZ_PHOENIX) AC_SUBST(MOZ_PHOENIX) +AC_DEFINE(MOZ_PHOENIX_EXTENSIONS) +AC_SUBST(MOZ_PHOENIX_EXTENSIONS) AC_DEFINE(MC_PALEMOON) AC_SUBST(MC_PALEMOON) diff --git a/malepoon/confvars.sh b/malepoon/confvars.sh index ede36c5fa..ae6bcec85 100644 --- a/malepoon/confvars.sh +++ b/malepoon/confvars.sh @@ -42,6 +42,7 @@ MC_PALEMOON=1 # Enables conditional code in the platform for historically # Firefox-like browsers MOZ_PHOENIX=1 +MOZ_PHOENIX_EXTENSIONS=1 # Lightweight Themes MOZ_PERSONAS=1 diff --git a/scripts/InstallMozillaBuild.ps1 b/scripts/InstallMozillaBuild.ps1 new file mode 100644 index 000000000..e7b7f607c --- /dev/null +++ b/scripts/InstallMozillaBuild.ps1 @@ -0,0 +1 @@ +& .\MozillaBuildSetup-2.2.0.exe /S /v/qn | Write-Output diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100644 index 000000000..f061a85e2 --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,7 @@ +#!/bin/bash +BASH="bash" +if [[ ! -z $WIN ]]; then + BASH=/c/mozilla-build/start-shell.bat +fi +$BASH mach build +$BASH mach package diff --git a/scripts/configure.sh b/scripts/configure.sh new file mode 100644 index 000000000..30de567f0 --- /dev/null +++ b/scripts/configure.sh @@ -0,0 +1,12 @@ +#!/bin/bash +git submodule init && git submodule update + +if [ $GTK == "GTK3" ]; then + cp scripts/mozconfig-gtk3 .mozconfig +elif [ $GTK == "GTK2" ]; then + cp scripts/mozconfig-gtk2 .mozconfig +elif [ $WIN == "WIN32"]; then + cp scripts/mozconfig-win32 .mozconfig +else + cp scripts/mozconfig-win64 .mozconfig +fi diff --git a/scripts/dependencies.sh b/scripts/dependencies.sh new file mode 100644 index 000000000..427d2b710 --- /dev/null +++ b/scripts/dependencies.sh @@ -0,0 +1,16 @@ +#!/bin/bash +if [[ ! -z "${GTK}" ]]; then + sudo apt-get update && sudo apt-get upgrade -y + sudo apt-get install ccache -y + if [ $GTK == "GTK3" ]; then + sudo apt-get install build-essential libgtk2.0-dev libdbus-glib-1-dev autoconf2.13 \ + yasm libegl1-mesa-dev libasound2-dev libxt-dev zlib1g-dev libssl-dev \ + libsqlite3-dev libbz2-dev libpulse-dev libgconf2-dev libx11-xcb-dev \ + zip python2.7 python-dbus libgtk-3-dev -y + elif [ $GTK == "GTK2" ]; then + sudo apt-get install build-essential libgtk2.0-dev libdbus-glib-1-dev autoconf2.13 \ + yasm libegl1-mesa-dev libasound2-dev libxt-dev zlib1g-dev libssl-dev \ + libsqlite3-dev libbz2-dev libpulse-dev libgconf2-dev libx11-xcb-dev \ + zip python2.7 python-dbus -y + fi +fi diff --git a/scripts/mozconfig-gtk2 b/scripts/mozconfig-gtk2 new file mode 100644 index 000000000..e38538c9b --- /dev/null +++ b/scripts/mozconfig-gtk2 @@ -0,0 +1,31 @@ +_BUILD_64=1 + +_GTK_VERSION=2 + +ac_add_options --enable-application=malepoon +ac_add_options --enable-optimize="-O3 -w" +ac_add_options --enable-default-toolkit=cairo-gtk$_GTK_VERSION +ac_add_options --enable-jemalloc +ac_add_options --enable-strip +ac_add_options --enable-devtools +ac_add_options --enable-av1 +ac_add_options --disable-eme +ac_add_options --disable-webrtc +ac_add_options --disable-gamepad +ac_add_options --disable-tests +ac_add_options --disable-debug +ac_add_options --disable-necko-wifi +ac_add_options --disable-updater +ac_add_options --with-pthreads + +ac_add_options --enable-official-branding +export MOZILLA_OFFICIAL=1 + +if [ -n "$_BUILD_64" ]; then + ac_add_options --x-libraries=/usr/lib64 +else + ac_add_options --x-libraries=/usr/lib +fi + +export MOZ_PKG_SPECIAL=gtk$_GTK_VERSION + diff --git a/scripts/mozconfig-gtk3 b/scripts/mozconfig-gtk3 new file mode 100644 index 000000000..85b6c3ff6 --- /dev/null +++ b/scripts/mozconfig-gtk3 @@ -0,0 +1,31 @@ +_BUILD_64=1 + +_GTK_VERSION=3 + +ac_add_options --enable-application=malepoon +ac_add_options --enable-optimize="-O3 -w" +ac_add_options --enable-default-toolkit=cairo-gtk$_GTK_VERSION +ac_add_options --enable-jemalloc +ac_add_options --enable-strip +ac_add_options --enable-devtools +ac_add_options --enable-av1 +ac_add_options --disable-eme +ac_add_options --disable-webrtc +ac_add_options --disable-gamepad +ac_add_options --disable-tests +ac_add_options --disable-debug +ac_add_options --disable-necko-wifi +ac_add_options --disable-updater +ac_add_options --with-pthreads + +ac_add_options --enable-official-branding +export MOZILLA_OFFICIAL=1 + +if [ -n "$_BUILD_64" ]; then + ac_add_options --x-libraries=/usr/lib64 +else + ac_add_options --x-libraries=/usr/lib +fi + +export MOZ_PKG_SPECIAL=gtk$_GTK_VERSION + diff --git a/scripts/mozconfig-win32 b/scripts/mozconfig-win32 new file mode 100644 index 000000000..41875d531 --- /dev/null +++ b/scripts/mozconfig-win32 @@ -0,0 +1,27 @@ +_BUILD_64= + +ac_add_options --enable-application=malepoon +ac_add_options --enable-optimize="-O2 -GS-" +ac_add_options --enable-jemalloc +ac_add_options --enable-strip +ac_add_options --enable-devtools +ac_add_options --enable-av1 +ac_add_options --disable-accessibility +ac_add_options --disable-eme +ac_add_options --disable-webrtc +ac_add_options --disable-gamepad +ac_add_options --disable-parental-controls +ac_add_options --disable-tests +ac_add_options --disable-debug +ac_add_options --disable-updater + +ac_add_options --enable-official-branding +export MOZILLA_OFFICIAL=1 + +if [ -n "$_BUILD_64" ]; then + _BUILD_ARCH=x64 + ac_add_options --target=x86_64-pc-mingw32 + ac_add_options --host=x86_64-pc-mingw32 +else + _BUILD_ARCH=x86 +fi \ No newline at end of file diff --git a/scripts/mozconfig-win64 b/scripts/mozconfig-win64 new file mode 100644 index 000000000..37ad16821 --- /dev/null +++ b/scripts/mozconfig-win64 @@ -0,0 +1,31 @@ +_BUILD_64=1 + +ac_add_options --enable-application=malepoon +ac_add_options --enable-optimize="-O2 -GS-" +ac_add_options --enable-jemalloc +ac_add_options --enable-strip +ac_add_options --enable-devtools +ac_add_options --enable-av1 +ac_add_options --disable-accessibility +ac_add_options --disable-eme +ac_add_options --disable-webrtc +ac_add_options --disable-gamepad +ac_add_options --disable-parental-controls +ac_add_options --disable-tests +ac_add_options --disable-debug +ac_add_options --disable-updater + +ac_add_options --enable-official-branding +export MOZILLA_OFFICIAL=1 + +if [ -n "$_BUILD_64" ]; then + _BUILD_ARCH=x64 + ac_add_options --target=x86_64-pc-mingw32 + ac_add_options --host=x86_64-pc-mingw32 +else + _BUILD_ARCH=x86 +fi + +WIN32_REDIST_DIR=$VCINSTALLDIR/redist/$_BUILD_ARCH/Microsoft.VC140.CRT +WIN_UCRT_REDIST_DIR="C:/Program Files (x86)/Windows Kits/10/Redist/10.0.19041.0/ucrt/DLLs/$_BUILD_ARCH" +