mobile icon indicating copy to clipboard operation
mobile copied to clipboard

WIP: Remove dep on mobile-sdk

Open PeterPetrik opened this issue 8 months ago • 2 comments

Move vcpkg build of dependancies to main mobile repo, so we are not dependent on 2 separate repos anymore. This is stage 1, so we are keeping exactly the same vcpkg overrides as we have in latest build SDK from mobile-sdk.

DONE:

  • MacOS local build on my laptop (running app) 1/ cmake 4.0.1 (latest from homebrew) is broken for macOS 15.4; e.g. constructs empty -isysroot (use cmake 3.x)
brew install cmake automake bison flex gnu-sed autoconf-archive libtool ninja pkg-config

export PATH=$(brew --prefix flex)/bin:$(brew --prefix bison)/bin:$(brew --prefix gettext)/bin:$PATH;\
export PATH=${PWD}/../vcpkg:$PATH;\
export DEPLOYMENT_TARGET=11.0;\
PATH=/Applications/CMake.app/Contents/bin/:$PATH

cmake \
    -DQGIS_QUICK_DATA_PATH=/Users/peterpetrik/Projects/quick/mobile/app/android/assets/qgis-data \
    -GNinja \
    -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake \
    -DVCPKG_TARGET_TRIPLET=arm64-osx \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_MAKE_PROGRAM=ninja \
    -DCMAKE_INSTALL_PREFIX:PATH=../install-mobile-macos \
    ../../mobile

ninja 
ninja install

TODO:

  • [ ] local builds for android and iOS
  • [x] binary caching of NuGet binaries between builds
  • [ ] fix CI for all platforms
  • [ ] fix INSTALL.md and other documentation
  • [ ] cleanup CMakelists
  • [ ] test binaries
  • [ ] generate GDAL supported formats as artefact on one platform (for docs)
  • [ ] icon in macOS installer, notarise the dmg
  • [ ] install step (desktop platforms)

fixes https://github.com/MerginMaps/mobile/issues/620

PeterPetrik avatar Apr 12 '25 11:04 PeterPetrik

Pull Request Test Coverage Report for Build 17454806243

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-40.2%) to 19.571%

Totals Coverage Status
Change from base Build 17407935984: -40.2%
Covered Lines: 13867
Relevant Lines: 70855

💛 - Coveralls

github-actions[bot] avatar Jun 20 '25 12:06 github-actions[bot]

Some notes from using VCPKG on Fedora 41:

  • There was a necessary fix for patchelf (dependency of FFMPEG I think)
  • Openssl doesn't work out of the box on Fedora 41/42, but workaround exists #3801
  • While using wayland on host, build is using x11
    • qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
  • Bluetooth is not working out of the box
    • qt.bluetooth: Dummy backend running. Qt Bluetooth module is non-functional.
  • New error, I'm not sure to what it's tied (SQLite ?)
    • Case insensitive sorting unsupported in the posix collation implementation

Withalion avatar Jun 25 '25 12:06 Withalion

For future reference: https://doc.qt.io/qt-6/build-optimized-qt.html We should be able to optimize the app size this way

tomasMizera avatar Jul 24 '25 09:07 tomasMizera

should also fix #4000

Withalion avatar Aug 14 '25 08:08 Withalion