guix_mirror_bot pushed a commit to branch master
in repository guix.
commit 81b40ef16991b977110e50226ca4ea26cc499cfc
Author: Carlos Durán Domínguez <[email protected]>
AuthorDate: Sun Feb 22 16:32:27 2026 +0100
gnu: Add solarus-launcher.
* gnu/packages/games.scm (solarus-launcher): New variable.
*
gnu/packages/patches/solarus-launcher-qlementine-and-qtappinstancemanager-reference.patch:
New file.
* gnu/local.mk (dist_patch_DATA): Register patch.
Fixes: guix/guix#6231
Change-Id: I9398a842f5d122423510bd4bf2dd1e7452154783
Signed-off-by: Liliana Marie Prikler <[email protected]>
---
gnu/local.mk | 1 +
gnu/packages/games.scm | 30 ++++
...entine-and-qtappinstancemanager-reference.patch | 199 +++++++++++++++++++++
3 files changed, 230 insertions(+)
diff --git a/gnu/local.mk b/gnu/local.mk
index 97eb359cd3..279052ea38 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2132,6 +2132,7 @@ dist_patch_DATA =
\
%D%/packages/patches/smalltalk-multiplication-overflow.patch \
%D%/packages/patches/soci-mysql-ddl-types.patch \
%D%/packages/patches/solarus-quest-editor-qlementine-reference.patch \
+
%D%/packages/patches/solarus-launcher-qlementine-and-qtappinstancemanager-reference.patch
\
%D%/packages/patches/sqlite-hurd.patch \
%D%/packages/patches/squeak-vm-gcc-14-fix.patch \
%D%/packages/patches/stepmania-ffmpeg-compat.patch \
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index a8b8462b6e..6bd6e2bb97 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -3586,6 +3586,36 @@ in mind.")
"Solarus Quest Editor is a graphical user interface to create and modify
quests for the Solarus engine.")))
+(define-public solarus-launcher
+ (package
+ (inherit solarus)
+ (name "solarus-launcher")
+ (source
+ (origin
+ (inherit (package-source solarus))
+ (patches (search-patches
+
"solarus-launcher-qlementine-and-qtappinstancemanager-reference.patch"))))
+ (build-system qt-build-system)
+ (arguments
+ (list
+ #:tests? #f ;no tests
+ #:qtbase qtbase
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "launcher"))))))
+ (native-inputs (modify-inputs (package-inputs solarus)
+ (prepend qlementine qlementine-icons qtappinstancemanager
+ qttools)))
+ (inputs (modify-inputs (package-inputs solarus)
+ (prepend solarus)
+ (append qtbase qtsvg qtwayland)))
+ (synopsis "Game launcher and browser for Solarus")
+ (description
+ "Solarus Launcher is a game launcher and browser for Solarus. It is
+written in C++ with QtWidgets.")))
+
(define-public superfluous-returnz-data
(package
(name "superfluous-returnz-data")
diff --git
a/gnu/packages/patches/solarus-launcher-qlementine-and-qtappinstancemanager-reference.patch
b/gnu/packages/patches/solarus-launcher-qlementine-and-qtappinstancemanager-reference.patch
new file mode 100644
index 0000000000..92f43bd7bc
--- /dev/null
+++
b/gnu/packages/patches/solarus-launcher-qlementine-and-qtappinstancemanager-reference.patch
@@ -0,0 +1,199 @@
+From 9f6078375ed0bbd459d5d77c54957abf3ba781dc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Carlos=20Dur=C3=A1n=20Dom=C3=ADnguez?= <[email protected]>
+Date: Mon, 23 Feb 2026 23:49:27 +0100
+Subject: [PATCH] Change Qlementine, Qlementine Icons, and QtAppInstanceManager
+ references.
+
+---
+ launcher/cmake/addDependencies.cmake | 49 ++-----------------
+ launcher/cmake/addTarget.cmake | 9 ++--
+ launcher/cmake/modules/FindQlementine.cmake | 23 +++++++++
+ .../cmake/modules/FindQlementineIcons.cmake | 23 +++++++++
+ .../modules/FindQtAppInstanceManager.cmake | 23 +++++++++
+ 5 files changed, 78 insertions(+), 49 deletions(-)
+ create mode 100644 launcher/cmake/modules/FindQlementine.cmake
+ create mode 100644 launcher/cmake/modules/FindQlementineIcons.cmake
+ create mode 100644 launcher/cmake/modules/FindQtAppInstanceManager.cmake
+
+diff --git a/launcher/cmake/addDependencies.cmake
b/launcher/cmake/addDependencies.cmake
+index 2a688266d..74903023d 100644
+--- a/launcher/cmake/addDependencies.cmake
++++ b/launcher/cmake/addDependencies.cmake
+@@ -12,52 +12,9 @@ if (Qt6_VERSION VERSION_LESS 6.4)
+ message(FATAL_ERROR "At least Qt 6.4 is needed for this project.")
+ endif()
+
+-#
------------------------------------------------------------------------------
+-
+-include(FetchContent)
+-
+-#
------------------------------------------------------------------------------
+-
+-# Qlementine-Icons: an SVG icon library made for Qt.
+-FetchContent_Declare(qlementine-icons
+- GIT_REPOSITORY "https://github.com/oclero/qlementine-icons.git"
+- GIT_TAG v1.13.0
+- EXCLUDE_FROM_ALL
+-)
+-FetchContent_MakeAvailable(qlementine-icons)
+-set_target_properties(qlementine-icons
+- PROPERTIES
+- FOLDER dependencies
+-)
+-
+-#
------------------------------------------------------------------------------
+-
+-# Qlementine: the QStyle library to have a modern look n' feel.
+-FetchContent_Declare(qlementine
+- GIT_REPOSITORY "https://github.com/oclero/qlementine.git"
+- GIT_TAG v1.4.1
+- EXCLUDE_FROM_ALL
+-)
+-FetchContent_MakeAvailable(qlementine)
+-set_target_properties(qlementine
+- PROPERTIES
+- FOLDER dependencies
+-)
+-
+-#
------------------------------------------------------------------------------
+-
+-# QtAppInstanceManager: a library to manage multiple instances of a Qt
application.
+-FetchContent_Declare(QtAppInstanceManager
+- GIT_REPOSITORY "https://github.com/oclero/qtappinstancemanager.git"
+- GIT_TAG v1.3.1
+- EXCLUDE_FROM_ALL
+-)
+-FetchContent_MakeAvailable(QtAppInstanceManager)
+-set_target_properties(QtAppInstanceManager
+- PROPERTIES
+- FOLDER dependencies
+-)
+-
++find_package(QtAppInstanceManager REQUIRED)
++find_package(Qlementine REQUIRED)
++find_package(QlementineIcons REQUIRED)
+ #
------------------------------------------------------------------------------
+
+ # Solarus: the engine.
+diff --git a/launcher/cmake/addTarget.cmake b/launcher/cmake/addTarget.cmake
+index 9c1581033..34ef321b7 100644
+--- a/launcher/cmake/addTarget.cmake
++++ b/launcher/cmake/addTarget.cmake
+@@ -25,6 +25,9 @@ target_include_directories(${PROJECT_NAME}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../build/include
+ ${CMAKE_CURRENT_BINARY_DIR}/sources
+ "${OPENAL_INCLUDE_DIR}"
++ "${QLEMENTINE_INCLUDE_DIR}"
++ "${QLEMENTINE_ICONS_INCLUDE_DIR}"
++ "${QTAPPINSTANCEMANAGER_INCLUDE_DIR}"
+ )
+
+ qt_add_resources(${PROJECT_NAME} "resources"
+@@ -79,10 +82,10 @@ target_link_libraries(${PROJECT_NAME}
+ Qt6::Widgets
+ Qt6::Svg
+ Qt6::Network
+- qlementine
+- qlementine-icons
++ "${QLEMENTINE_LIBRARY}"
++ "${QLEMENTINE_ICONS_LIBRARY}"
+ solarus
+- oclero::QtAppInstanceManager
++ "${QTAPPINSTANCEMANAGER_LIBRARY}"
+ )
+
+ set(COMPONENT_NAME "${PROJECT_NAME}")
+diff --git a/launcher/cmake/modules/FindQlementine.cmake
b/launcher/cmake/modules/FindQlementine.cmake
+new file mode 100644
+index 000000000..002515855
+--- /dev/null
++++ b/launcher/cmake/modules/FindQlementine.cmake
+@@ -0,0 +1,23 @@
++find_path(QLEMENTINE_INCLUDE_DIR
++ NAMES oclero/qlementine.hpp
++ PATHS ${CMAKE_INCLUDE_PATH}
++ PATH_SUFFIXES qlementine
++)
++
++# Find the static library
++find_library(QLEMENTINE_LIBRARY
++ NAMES qlementine
++ PATHS ${CMAKE_LIBRARY_PATH}
++ PATH_SUFFIXES lib
++)
++
++# Handle standard args
++include(FindPackageHandleStandardArgs)
++find_package_handle_standard_args(Qlementine DEFAULT_MSG QLEMENTINE_LIBRARY
QLEMENTINE_INCLUDE_DIR)
++
++# Set the results if found
++if(QLEMENTINE_FOUND)
++ set(Qlementine_INCLUDE_DIRS ${QLEMENTINE_INCLUDE_DIR} CACHE PATH
"Qlementine include directory")
++ set(Qlementine_LIBRARIES ${QLEMENTINE_LIBRARY} CACHE PATH "Qlementine
library")
++ mark_as_advanced(Qlementine_INCLUDE_DIRS Qlementine_LIBRARIES)
++endif()
+\ No newline at end of file
+diff --git a/launcher/cmake/modules/FindQlementineIcons.cmake
b/launcher/cmake/modules/FindQlementineIcons.cmake
+new file mode 100644
+index 000000000..e7e21516d
+--- /dev/null
++++ b/launcher/cmake/modules/FindQlementineIcons.cmake
+@@ -0,0 +1,23 @@
++find_path(QLEMENTINE_ICONS_INCLUDE_DIR
++ NAMES oclero/qlementine/icons/QlementineIcons.hpp
++ PATHS ${CMAKE_INCLUDE_PATH}
++ PATH_SUFFIXES qlementine-icons
++)
++
++# Find the static library
++find_library(QLEMENTINE_ICONS_LIBRARY
++ NAMES qlementine-icons
++ PATHS ${CMAKE_LIBRARY_PATH}
++ PATH_SUFFIXES lib
++)
++
++# Handle standard args
++include(FindPackageHandleStandardArgs)
++find_package_handle_standard_args(QlementineIcons DEFAULT_MSG
QLEMENTINE_ICONS_LIBRARY QLEMENTINE_ICONS_INCLUDE_DIR)
++
++# Set the results if found
++if(QLEMENTINE_ICONS_FOUND)
++ set(QlementineIcons_INCLUDE_DIRS ${QLEMENTINE_ICONS_INCLUDE_DIR} CACHE
PATH "Qlementine icons include directory")
++ set(QlementineIcons_LIBRARIES ${QLEMENTINE_ICONS_LIBRARY} CACHE PATH
"Qlementine icons library")
++ mark_as_advanced(QlementineIcons_INCLUDE_DIRS QlementineIcons_LIBRARIES)
++endif()
+\ No newline at end of file
+diff --git a/launcher/cmake/modules/FindQtAppInstanceManager.cmake
b/launcher/cmake/modules/FindQtAppInstanceManager.cmake
+new file mode 100644
+index 000000000..ec624854d
+--- /dev/null
++++ b/launcher/cmake/modules/FindQtAppInstanceManager.cmake
+@@ -0,0 +1,23 @@
++find_path(QTAPPINSTANCEMANAGER_INCLUDE_DIR
++ NAMES oclero/QtAppInstanceManager.hpp
++ PATHS ${CMAKE_INCLUDE_PATH}
++ PATH_SUFFIXES qtappinstancemanager
++)
++
++# Find the static library
++find_library(QTAPPINSTANCEMANAGER_LIBRARY
++ NAMES QtAppInstanceManager
++ PATHS ${CMAKE_LIBRARY_PATH}
++ PATH_SUFFIXES lib
++)
++
++# Handle standard args
++include(FindPackageHandleStandardArgs)
++find_package_handle_standard_args(QtAppInstanceManager DEFAULT_MSG
QTAPPINSTANCEMANAGER_LIBRARY QTAPPINSTANCEMANAGER_INCLUDE_DIR)
++
++# Set the results if found
++if(QTAPPINSTANCEMANAGER_FOUND)
++ set(QtAppInstanceManager_INCLUDE_DIRS ${QTAPPINSTANCEMANAGER_INCLUDE_DIR}
CACHE PATH "QtAppInstanceManager include directory")
++ set(QtAppInstanceManager_LIBRARIES ${QTAPPINSTANCEMANAGER_LIBRARY} CACHE
PATH "QtAppInstanceManager library")
++ mark_as_advanced(QtAppInstanceManager_INCLUDE_DIRS
QtAppInstanceManager_LIBRARIES)
++endif()
+\ No newline at end of file
+
+base-commit: 706f85299aecb5e8f15ff1b05280cddefc7338b4
+--
+Carlos Durán Domínguez
\ No newline at end of file