You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm attempting to get MEGASync built from source on Raspberry Pi OS Bookworm ARM64 on a Raspberry Pi 5, as currently configured the build breaks because there is no ARM64 Linux target for CMake inside the SDK. I whipped up a quick CMake triplet file that does build with default options, cmake/vcpkg_overlay_triplets/arm64-linux.cmake:
set(VCPKG_TARGET_ARCHITECTURE arm64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_CMAKE_SYSTEM_NAME Linux)
if(PORT MATCHES "ffmpeg")
# build this library as dynamic (usually because it is LGPL licensed)
set(VCPKG_LIBRARY_LINKAGE dynamic)
else()
# build this library statically (much simpler installation, debugging, etc)
set(VCPKG_LIBRARY_LINKAGE static)
endif()
As well as the necessary edit to cmake/modules/vcpkg_management.cmake:
--- a/cmake/modules/vcpkg_management.cmake
+++ b/cmake/modules/vcpkg_management.cmake
@@ -28,6 +28,8 @@ macro(process_vcpkg_libraries overlays_path)
else()
if (CMAKE_SYSTEM_PROCESSOR MATCHES "armv7l" OR (NOT CMAKE_SYSTEM_PROCESSOR AND HOST_ARCH MATCHES "armv7l"))
set(VCPKG_TARGET_TRIPLET "arm-linux")
+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64" OR (NOT CMAKE_SYSTEM_PROCESSOR AND HOST_ARCH MATCHES "aarch64"))
+ set(VCPKG_TARGET_TRIPLET "arm64-linux")
else()
set(VCPKG_TARGET_TRIPLET "x64-linux-mega")
endif()
In order for this to build the only deviations from the README instructions are to:
Preface the build command with VCPKG_FORCE_SYSTEM_BINARIES, i.e. VCPKG_FORCE_SYSTEM_BINARIES=1 cmake -DVCPKG_ROOT=vcpkg -DCMAKE_BUILD_TYPE=Release -S sdk -B build_dir
Install additional prerequisites of cmake and ninja-build because of above; I also installed kernel headers just in case.
Without the force system binaries VCPKG complains that it's necessary on ARM and S390 platforms.
After applying the above changes to the SDK while building MEGASync I run into the issue with Google Breakpad (meganz/MEGAsync#801), but once that and this are resolved it should be enough to build ARM64 MEGASync on Linux.
I'm attempting to get MEGASync built from source on Raspberry Pi OS Bookworm ARM64 on a Raspberry Pi 5, as currently configured the build breaks because there is no ARM64 Linux target for CMake inside the SDK. I whipped up a quick CMake triplet file that does build with default options,
cmake/vcpkg_overlay_triplets/arm64-linux.cmake
:As well as the necessary edit to
cmake/modules/vcpkg_management.cmake
:In order for this to build the only deviations from the README instructions are to:
VCPKG_FORCE_SYSTEM_BINARIES=1 cmake -DVCPKG_ROOT=vcpkg -DCMAKE_BUILD_TYPE=Release -S sdk -B build_dir
cmake
andninja-build
because of above; I also installed kernel headers just in case.Without the force system binaries VCPKG complains that it's necessary on ARM and S390 platforms.
Build output attached.
cmake_config.txt
cmake_make.txt
The text was updated successfully, but these errors were encountered: