diff options
| author | Erik Kundiman <erik@megapahit.org> | 2024-10-20 21:10:34 +0800 | 
|---|---|---|
| committer | Erik Kundiman <erik@megapahit.org> | 2024-10-20 21:10:34 +0800 | 
| commit | bdd8da4c5e4a3c2d9d58b1d72eda73c9f452c825 (patch) | |
| tree | 9528828c505403e8fb4af6886a261adf7c3c3cc5 | |
| parent | ceca01eb37ea7c56be87474b6488eecdf0b7c893 (diff) | |
Working Arch port but CEF & WebRTC are still broken
I've tried using FMOD instead, but CEF didn't work either.
At first I used crow-misia's WebRTC build but it would cause a
segmentation fault, but LL's build seems to break CEF.
Gotta find a way so CM's build doesn't crash the viewer.
PKGBUILD should be moved to indra/newview as an .in to be configured
by CMake for dynamic version numbers, and adjust the instruction
too to run makepkg -R from the folder where the generated PKGBUILD
will be.
| -rwxr-xr-x | .gitignore | 6 | ||||
| -rw-r--r-- | PKGBUILD | 14 | ||||
| -rw-r--r-- | README.md | 6 | ||||
| -rw-r--r-- | indra/cmake/LibraryInstall.cmake | 2 | ||||
| -rw-r--r-- | indra/cmake/UnixInstall.cmake | 2 | ||||
| -rw-r--r-- | indra/cmake/WebRTC.cmake | 4 | ||||
| -rw-r--r-- | indra/llprimitive/llphysicsextensions/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | indra/llwebrtc/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | indra/media_plugins/cef/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | indra/media_plugins/libvlc/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | indra/newview/ViewerInstall.cmake | 2 | 
11 files changed, 34 insertions, 12 deletions
| diff --git a/.gitignore b/.gitignore index d2587ec49c..cf76d037e4 100755 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@  *.depend  *.stamp  *.rc +*.pkg.tar.zst  *~ @@ -20,7 +21,7 @@  CMakeCache.txt  cmake_install.cmake  LICENSES -build/ +pkg/  build-darwin-*  build-freebsd-*  build-linux-* @@ -94,3 +95,6 @@ web/secondlife.com.*  .env  .vscode +.BUILDINFO +.MTREE +.PKGINFO diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000000..74d9ef460f --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,14 @@ +# Maintainer: Erik Kundiman <erik@megapahit.net> +pkgname=megapahit +pkgver=7.1.10 +pkgrel=52697 +pkgdesc="A fork of the Second Life viewer" +arch=('x86_64') +url="https://megapahit.net" +license=('LGPL-2.1') +depends=(freealut apr-util boost-libs fltk glu hunspell libnghttp2 sdl2 uriparser vlc libvorbis) + +package() { +	cd "$startdir/build-linux-x86_64" +	make DESTDIR="$pkgdir/" install +} @@ -119,10 +119,12 @@ $ make -j`nproc`  ### Arch  ``` -$ sudo pacman -S cmake pkgconf freealut apr-util boost-libs fltk glm hunspell minizip nanosvg libnghttp2 pcre libpipewire sdl2 uriparser vlc libvorbis xxhash +$ sudo pacman -S cmake base-devel python freealut apr-util boost fltk glm glu hunspell minizip nanosvg libnghttp2 pcre libpipewire sdl2 uriparser vlc libvorbis xxhash  $ export LL_BUILD="-O3 -std=c++17 -fPIC -DLL_LINUX=1" -$ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DADDRESS_SIZE:STRING=64 -DUSESYSTEMLIBS:BOOL=ON -DUSE_OPENAL:BOOL=ON -DUSE_FMODSTUDIO:BOOL=OFF -DENABLE_MEDIA_PLUGINS:BOOL=ON -DLL_TESTS:BOOL=OFF -DNDOF:BOOL=OFF -DROOT_PROJECT_NAME:STRING=Megapahit -DVIEWER_CHANNEL:STRING=Megapahit -DVIEWER_BINARY_NAME:STRING=megapahit -DBUILD_SHARED_LIBS:BOOL=OFF -DINSTALL:BOOL=ON -DPACKAGE:BOOL=OFF ../indra +$ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DADDRESS_SIZE:STRING=64 -DUSESYSTEMLIBS:BOOL=ON -DUSE_OPENAL:BOOL=ON -DUSE_FMODSTUDIO:BOOL=OFF -DENABLE_MEDIA_PLUGINS:BOOL=ON -DLL_TESTS:BOOL=OFF -DNDOF:BOOL=OFF -DROOT_PROJECT_NAME:STRING=Megapahit -DVIEWER_CHANNEL:STRING=Megapahit -DVIEWER_BINARY_NAME:STRING=megapahit -DBUILD_SHARED_LIBS:BOOL=OFF -DINSTALL:BOOL=ON -DPACKAGE:BOOL=OFF -DCMAKE_INSTALL_PREFIX:PATH=/usr ../indra  $ make -j`nproc` +$ cd .. +$ makepkg -R  ```  ### Windows diff --git a/indra/cmake/LibraryInstall.cmake b/indra/cmake/LibraryInstall.cmake index b94841897c..e98d71f044 100644 --- a/indra/cmake/LibraryInstall.cmake +++ b/indra/cmake/LibraryInstall.cmake @@ -4,7 +4,7 @@ list(REMOVE_ITEM ${PROJECT_NAME}_HEADER_FILES CMakeLists.txt)  if (BUILD_SHARED_LIBS)  	if (EXISTS ${CMAKE_SYSROOT}/usr/lib/${ARCH}-linux-gnu)  		set(_LIB lib/${ARCH}-linux-gnu) -	elseif (EXISTS /lib64) +	elseif (EXISTS /lib64 AND NOT ${LINUX_DISTRO} MATCHES arch)  		set(_LIB lib64)  	else ()  		set(_LIB lib) diff --git a/indra/cmake/UnixInstall.cmake b/indra/cmake/UnixInstall.cmake index 7aa05ff5a6..0751e1caa5 100644 --- a/indra/cmake/UnixInstall.cmake +++ b/indra/cmake/UnixInstall.cmake @@ -16,7 +16,7 @@ if (INSTALL)    if (EXISTS ${CMAKE_SYSROOT}/usr/lib/${ARCH}-linux-gnu)      set(_LIB lib/${ARCH}-linux-gnu) -  elseif (EXISTS /lib64) +  elseif (EXISTS /lib64 AND NOT ${LINUX_DISTRO} MATCHES arch)      set(_LIB lib64)    else (EXISTS ${CMAKE_SYSROOT}/usr/lib/${ARCH}-linux-gnu)      set(_LIB lib) diff --git a/indra/cmake/WebRTC.cmake b/indra/cmake/WebRTC.cmake index eec4e2ce7a..3491a511f5 100644 --- a/indra/cmake/WebRTC.cmake +++ b/indra/cmake/WebRTC.cmake @@ -6,7 +6,7 @@ include_guard()  add_library( ll::webrtc INTERFACE IMPORTED )  target_include_directories( ll::webrtc SYSTEM INTERFACE "${LIBS_PREBUILT_DIR}/include/webrtc" "${LIBS_PREBUILT_DIR}/include/webrtc/third_party/abseil-cpp") -if (${LINUX_DISTRO} MATCHES debian OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64) +if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES arch) OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64)  use_prebuilt_binary(webrtc)  elseif (NOT (WINDOWS OR CMAKE_SYSTEM_NAME MATCHES FreeBSD))      target_compile_definitions(ll::webrtc INTERFACE CM_WEBRTC=1) @@ -75,7 +75,7 @@ elseif (NOT (WINDOWS OR CMAKE_SYSTEM_NAME MATCHES FreeBSD))          endif (CMAKE_OSX_ARCHITECTURES MATCHES arm64)          file(WRITE ${PREBUILD_TRACKING_DIR}/webrtc_installed "0")      endif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/webrtc_installed OR NOT ${webrtc_installed} EQUAL 0) -endif (${LINUX_DISTRO} MATCHES debian OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64) +endif (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES arch) OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64)  if (WINDOWS)      target_link_libraries( ll::webrtc INTERFACE webrtc.lib ) diff --git a/indra/llprimitive/llphysicsextensions/CMakeLists.txt b/indra/llprimitive/llphysicsextensions/CMakeLists.txt index 258cea5dd7..d3fe503e8c 100644 --- a/indra/llprimitive/llphysicsextensions/CMakeLists.txt +++ b/indra/llprimitive/llphysicsextensions/CMakeLists.txt @@ -82,7 +82,7 @@ list(REMOVE_ITEM ${PROJECT_NAME}_HEADER_FILES  if (BUILD_SHARED_LIBS)  	if (EXISTS ${CMAKE_SYSROOT}/usr/lib/${ARCH}-linux-gnu)  		set(_LIB lib/${ARCH}-linux-gnu) -	elseif (EXISTS /lib64) +	elseif (EXISTS /lib64 AND NOT ${LINUX_DISTRO} MATCHES arch)  		set(_LIB lib64)  	else ()  		set(_LIB lib) diff --git a/indra/llwebrtc/CMakeLists.txt b/indra/llwebrtc/CMakeLists.txt index 939dc96dda..7700eeb7c6 100644 --- a/indra/llwebrtc/CMakeLists.txt +++ b/indra/llwebrtc/CMakeLists.txt @@ -82,7 +82,7 @@ if (INSTALL)          set(_LIB ../Frameworks)      elseif (EXISTS ${CMAKE_SYSROOT}/usr/lib/${ARCH}-linux-gnu)          set(_LIB lib/${ARCH}-linux-gnu) -    elseif (EXISTS /lib64) +    elseif (EXISTS /lib64 AND NOT ${LINUX_DISTRO} MATCHES arch)          set(_LIB lib64)      else (DARWIN)          set(_LIB lib) diff --git a/indra/media_plugins/cef/CMakeLists.txt b/indra/media_plugins/cef/CMakeLists.txt index d6c4ab0ee6..4ca43e06b7 100644 --- a/indra/media_plugins/cef/CMakeLists.txt +++ b/indra/media_plugins/cef/CMakeLists.txt @@ -145,8 +145,10 @@ if (INSTALL)      elseif (LINUX)          if (EXISTS ${CMAKE_SYSROOT}/usr/lib/${ARCH}-linux-gnu)              set(_LIB lib/${ARCH}-linux-gnu) -        elseif (EXISTS /lib64) +        elseif (EXISTS /lib64 AND NOT ${LINUX_DISTRO} MATCHES arch)              set(_LIB lib64) +        else (EXISTS ${CMAKE_SYSROOT}/usr/lib/${ARCH}-linux-gnu) +            set(_LIB lib)          endif (EXISTS ${CMAKE_SYSROOT}/usr/lib/${ARCH}-linux-gnu)          install(              PROGRAMS diff --git a/indra/media_plugins/libvlc/CMakeLists.txt b/indra/media_plugins/libvlc/CMakeLists.txt index cacc83bef4..6d005bb6d2 100644 --- a/indra/media_plugins/libvlc/CMakeLists.txt +++ b/indra/media_plugins/libvlc/CMakeLists.txt @@ -92,7 +92,7 @@ if (INSTALL)              )      elseif (EXISTS ${CMAKE_SYSROOT}/usr/lib/${ARCH}-linux-gnu)          set(_LIB lib/${ARCH}-linux-gnu) -    elseif (EXISTS /lib64) +    elseif (EXISTS /lib64 AND NOT ${LINUX_DISTRO} MATCHES arch)          set(_LIB lib64)      else (DARWIN)          set(_LIB lib) diff --git a/indra/newview/ViewerInstall.cmake b/indra/newview/ViewerInstall.cmake index e6d8f500a0..ab52c63a91 100644 --- a/indra/newview/ViewerInstall.cmake +++ b/indra/newview/ViewerInstall.cmake @@ -92,7 +92,7 @@ install(PROGRAMS linux_tools/launch_url.sh  if (LINUX)          if (EXISTS ${CMAKE_SYSROOT}/usr/lib/${ARCH}-linux-gnu)                  set(_LIB lib/${ARCH}-linux-gnu) -        elseif (EXISTS /lib64) +        elseif (EXISTS /lib64 AND NOT ${LINUX_DISTRO} MATCHES arch)                  set(_LIB lib64)          else ()                  set(_LIB lib) | 
