From afb7442e8a20ccab74147c150e63430709cc6224 Mon Sep 17 00:00:00 2001 From: Laurent Trinques Date: Sat, 15 Aug 2026 16:17:10 +0200 Subject: [PATCH] cmake: use vendored SingleApplication submodule when available FetchContent_Declare unconditionally tries to clone SingleApplication from GitHub, which breaks offline builds (e.g. Debian/Ubuntu pbuilder with FETCHCONTENT_FULLY_DISCONNECTED=ON, Launchpad PPA builds). If the SingleApplication submodule is already checked out in the source tree, point FETCHCONTENT_SOURCE_DIR_SINGLEAPPLICATION at it so FetchContent skips the network step entirely and reuses the local copy. Falls back to the existing git clone behavior otherwise, so this is a no-op for setups that don't vendor the submodule. --- cmake/fetch_singleapplication.cmake | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cmake/fetch_singleapplication.cmake b/cmake/fetch_singleapplication.cmake index c01cc408c..80e2d040e 100644 --- a/cmake/fetch_singleapplication.cmake +++ b/cmake/fetch_singleapplication.cmake @@ -23,6 +23,14 @@ set(QAPPLICATION_CLASS QApplication) Include(FetchContent) +if(EXISTS "${CMAKE_SOURCE_DIR}/SingleApplication/CMakeLists.txt") + # Submodule deja present dans l'arbre source (clone --recursive, tarball + # de distro deja peuple via "git submodule update", etc.) : on l'utilise + # tel quel, sans acces reseau. Necessaire pour les builds hors-ligne + # (pbuilder/sbuild avec FETCHCONTENT_FULLY_DISCONNECTED=ON, Launchpad PPA...). + set(FETCHCONTENT_SOURCE_DIR_SINGLEAPPLICATION "${CMAKE_SOURCE_DIR}/SingleApplication") +endif() + FetchContent_Declare( SingleApplication GIT_REPOSITORY https://github.com/itay-grudev/SingleApplication.git