summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Kundiman <erik@megapahit.org>2026-07-28 13:58:54 +0800
committerErik Kundiman <erik@megapahit.org>2026-07-28 14:40:41 +0800
commit76728f724b7ee0d5c013b9671eab6cc00f37c02d (patch)
tree5be5fc41d21a5a8699296188b4e284a6a7d001c7
parentc4a00d17a5fa81b53c3b88b5eeb9ae7e58ef92f4 (diff)
Add support for Arch ARM
No cef package yet, so at-spi2-core & minizip must be directly depended on. Also, the package compression used in Arch ARM is different.
-rw-r--r--README.md17
-rw-r--r--indra/cmake/CEFPlugin.cmake4
-rw-r--r--indra/media_plugins/cef/CMakeLists.txt10
-rw-r--r--indra/newview/CMakeLists.txt5
-rw-r--r--indra/newview/PKGBUILD.in2
5 files changed, 31 insertions, 7 deletions
diff --git a/README.md b/README.md
index 6e15ce8036..cca1d69062 100644
--- a/README.md
+++ b/README.md
@@ -17,14 +17,27 @@ $ mkdir build-`uname -s|tr '[:upper:]' '[:lower:]'`-`uname -m`
$ cd build-`uname -s|tr '[:upper:]' '[:lower:]'`-`uname -m`
```
-### Arch
+### Arch ARM
```
-$ sudo pacman -S cmake base-devel patchelf python freealut apr-util boost cef fltk glm glu hunspell minizip nanosvg libnghttp2 openjpeg2 libpipewire sdl2 vlc libvorbis xxhash
+$ sudo pacman -S cmake base-devel patchelf python freealut apr-util boost fltk glm glu hunspell minizip nanosvg libnghttp2 openjpeg2 libpipewire sdl2 vlc libvorbis xxhash
+$ export LL_BUILD="-O3 -std=c++20 -fPIC -DLL_LINUX=1"
+$ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DADDRESS_SIZE:STRING=64 -DUSE_OPENAL:BOOL=ON -DUSE_FMODSTUDIO:BOOL=OFF -DENABLE_MEDIA_PLUGINS:BOOL=ON -DLL_TESTS:BOOL=OFF -DNDOF:BOOL=ON -DROOT_PROJECT_NAME:STRING=Megapahit -DVIEWER_CHANNEL:STRING=Megapahit -DVIEWER_BINARY_NAME:STRING=megapahit -DBUILD_SHARED_LIBS:BOOL=OFF -DINSTALL:BOOL=ON -DPACKAGE:BOOL=ON -DCMAKE_INSTALL_PREFIX=/usr ../indra
+$ make -j`nproc`
+$ makepkg -R
+$ sudo pacman -U megapahit-`cat newview/viewer_version.txt|sed 's/\(.*\)\./\1-/'`-`uname -m`.pkg.tar.xz
+$ sudo pacman -D --asdeps freealut apr-util fltk glu hunspell minizip libnghttp2 openjpeg2 sdl2 vlc libvorbis
+$ megapahit
+```
+
+### Arch x86-64
+```
+$ sudo pacman -S cmake base-devel patchelf python freealut apr-util boost cef fltk glm glu hunspell nanosvg libnghttp2 openjpeg2 libpipewire sdl2 vlc libvorbis xxhash
$ export LL_BUILD="-O3 -std=c++20 -fPIC -DLL_LINUX=1"
$ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DADDRESS_SIZE:STRING=64 -DUSE_OPENAL:BOOL=ON -DUSE_FMODSTUDIO:BOOL=OFF -DENABLE_MEDIA_PLUGINS:BOOL=ON -DLL_TESTS:BOOL=OFF -DNDOF:BOOL=ON -DROOT_PROJECT_NAME:STRING=Megapahit -DVIEWER_CHANNEL:STRING=Megapahit -DVIEWER_BINARY_NAME:STRING=megapahit -DBUILD_SHARED_LIBS:BOOL=OFF -DINSTALL:BOOL=ON -DPACKAGE:BOOL=ON -DCMAKE_INSTALL_PREFIX=/usr ../indra
$ make -j`nproc`
$ makepkg -R
$ sudo pacman -U megapahit-`cat newview/viewer_version.txt|sed 's/\(.*\)\./\1-/'`-`uname -m`.pkg.tar.zst
+$ sudo pacman -D --asdeps freealut apr-util cef fltk glu hunspell libnghttp2 openjpeg2 sdl2 vlc libvorbis
$ megapahit
```
diff --git a/indra/cmake/CEFPlugin.cmake b/indra/cmake/CEFPlugin.cmake
index 1fc28ad415..dd670e6cf8 100644
--- a/indra/cmake/CEFPlugin.cmake
+++ b/indra/cmake/CEFPlugin.cmake
@@ -5,7 +5,7 @@ include(Prebuilt)
include_guard()
add_library( ll::cef INTERFACE IMPORTED )
-if (${LINUX_DISTRO} MATCHES arch)
+if (${LINUX_DISTRO} MATCHES arch AND (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64))
if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/dullahan_installed OR NOT ${dullahan_installed} EQUAL 0)
file(
COPY /usr/src/cef/libcef_dll
@@ -290,7 +290,7 @@ elseif (LINUX)
WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/bin/release
)
endif ()
- if (${LINUX_DISTRO} MATCHES arch OR (${LINUX_DISTRO} MATCHES fedora))
+ if (${LINUX_DISTRO} MATCHES arch AND (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64) OR (${LINUX_DISTRO} MATCHES fedora))
target_include_directories( ll::cef SYSTEM INTERFACE /usr/include/cef/include)
if (${LINUX_DISTRO} MATCHES fedora)
set(LIB_SUFFIX ${ADDRESS_SIZE})
diff --git a/indra/media_plugins/cef/CMakeLists.txt b/indra/media_plugins/cef/CMakeLists.txt
index 1a4d61616c..1622d3091f 100644
--- a/indra/media_plugins/cef/CMakeLists.txt
+++ b/indra/media_plugins/cef/CMakeLists.txt
@@ -51,7 +51,7 @@ if (LINUX)
list(APPEND media_plugin_cef_SOURCE_FILES ${LINUX_VOLUME_CATCHER})
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--build-id")
- if (${LINUX_DISTRO} MATCHES arch OR (${LINUX_DISTRO} MATCHES fedora))
+ if (${LINUX_DISTRO} MATCHES arch AND (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64) OR (${LINUX_DISTRO} MATCHES fedora))
if (${LINUX_DISTRO} MATCHES fedora)
set(LIB_SUFFIX ${ADDRESS_SIZE})
endif ()
@@ -178,6 +178,12 @@ if (INSTALL)
PROGRAMS ${AUTOBUILD_INSTALL_DIR}/bin/release/dullahan_host
DESTINATION lib/${VIEWER_BINARY_NAME}
)
+ if (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
+ install(
+ PROGRAMS ${AUTOBUILD_INSTALL_DIR}/bin/release/chrome-sandbox
+ DESTINATION lib/${VIEWER_BINARY_NAME}
+ )
+ endif ()
elseif (${LINUX_DISTRO} MATCHES fedora)
install(
PROGRAMS ${AUTOBUILD_INSTALL_DIR}/bin/release/dullahan_host
@@ -191,7 +197,7 @@ if (INSTALL)
DESTINATION libexec/${VIEWER_BINARY_NAME}
)
endif ()
- if (NOT (${LINUX_DISTRO} MATCHES arch OR (${LINUX_DISTRO} MATCHES fedora)))
+ if (NOT (${LINUX_DISTRO} MATCHES arch AND (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64) OR (${LINUX_DISTRO} MATCHES fedora)))
install(
FILES
${ARCH_PREBUILT_DIRS_RELEASE}/libEGL.so
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 6ff0b3977a..d42561d05e 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -2369,6 +2369,11 @@ if (LINUX)
if (PACKAGE)
if (${LINUX_DISTRO} MATCHES arch)
+ if (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64)
+ set(ARCH_DEPS cef)
+ else ()
+ set(ARCH_DEPS "at-spi2-core minizip")
+ endif ()
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/PKGBUILD.in
${CMAKE_BINARY_DIR}/PKGBUILD
diff --git a/indra/newview/PKGBUILD.in b/indra/newview/PKGBUILD.in
index b2830ed145..8b57e62f58 100644
--- a/indra/newview/PKGBUILD.in
+++ b/indra/newview/PKGBUILD.in
@@ -6,7 +6,7 @@ pkgdesc="${VIEWER_PACKAGE_COMMENT}"
arch=('${CMAKE_SYSTEM_PROCESSOR}')
url="https://${VIEWER_PACKAGE_DOMAIN_NAME}"
license=('LGPL-2.1')
-depends=(freealut apr-util at-spi2-core boost-libs cef fltk glu hunspell libnghttp2 openjpeg2 sdl2 vlc libvorbis)
+depends=(freealut apr-util boost-libs fltk glu hunspell libnghttp2 openjpeg2 sdl2 vlc libvorbis ${ARCH_DEPS})
package() {
cd "$startdir"