Skip to content

Support package-manager builds without CPM/FetchContent downloads #14569

Description

@res2500

Feature Description

I was able to build and run QGroundControl on FreeBSD 15.0 with Qt 6.10.2.

However, packaging it for FreeBSD Ports is currently blocked by the build system dependency model.

FreeBSD Ports builds with network access disabled during configure/build. Because of that, FetchContent/CPM cannot download dependencies during the build.

Currently QGroundControl tries to fetch several dependencies through CPM, for example:

  • px4-gpsdrivers
  • zlib
  • xz / liblzma
  • zstd
  • libarchive
  • MAVLink-related dependencies
  • SDL-related dependencies

This causes configure failures when FETCHCONTENT_FULLY_DISCONNECTED is enabled.

Would you consider adding a package-manager/system-libraries mode, for example:

-DQGC_USE_SYSTEM_LIBS=ON

In that mode, CMake could prefer find_package() / pkg-config for system libraries, while keeping CPM as the fallback for normal developer builds.

This would help FreeBSD Ports and likely other package systems too.

Related PR:
#14568

Use Case

Build FreeBSD ports https://forums.freebsd.org/threads/ardupilot-sitl-on-freebsd-15-0-successful-build-and-a-question-about-porting.102939/

Flight Stacks

ArduPilot

Vehicle Types

Multirotor

Platforms

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions