Provide both app IDs in our linux metainfo

FlatHub uses org.kicad.KiCad and everyone else uses org.kicad.kicad,
which leads to two entries in the Gnome Software search list for kicad.
To unify this into one entry, have each just provide the other app ID to
link them together.
This commit is contained in:
Ian McInerney 2025-02-14 18:06:22 +00:00
parent 633aaff654
commit 5cfa946cda
2 changed files with 13 additions and 0 deletions

View File

@ -5,9 +5,18 @@ if( APPLE )
#TODO Generate this at runtime as well
include( ${KICAD_CMAKE_MODULE_PATH}/WritePlatformMetadata_macos.cmake )
elseif( UNIX )
# Note: We use two different app IDs here for legacy reasons. The org.kicad.KiCad
# ID is from FlatHub Flatpaks, while the org.kicad.kicad ID is used everywhere else.
# Having these two be separate causes problems in Gnome Software because they wll
# each appear as their own app, so KiCad gets two entries.
#
# To work around this, we include a provides statement in the metainfo for the other
# app ID to link the two IDs together.
# Default values for regular builds
set( KICAD_REVERSE_DOMAIN "org.kicad" )
set( KICAD_APP_NAME "${KICAD_REVERSE_DOMAIN}.kicad" )
set( KICAD_PROVIDES_APP_ID "${KICAD_REVERSE_DOMAIN}.KiCad" )
set( KICAD_APP_PREFIX "${KICAD_REVERSE_DOMAIN}" )
set( KICAD_ICON_PREFIX "" )
set( KICAD_DESKTOP_FILE_ICON_PREFIX "" )
@ -18,8 +27,10 @@ elseif( UNIX )
# Override default values from above if we are building a flatpak
if( KICAD_BUILD_FLATPAK )
set( KICAD_APP_NAME "${KICAD_REVERSE_DOMAIN}.KiCad" )
set( KICAD_PROVIDES_APP_ID "${KICAD_REVERSE_DOMAIN}.kicad" )
if( KICAD_BUILD_NIGHTLY_FLATPAK )
set( KICAD_APP_NAME "${KICAD_APP_NAME}.Nightly" )
set( KICAD_PROVIDES_APP_ID "${KICAD_PROVIDES_APP_ID}.Nightly" )
endif()
set( KICAD_APP_PREFIX "${KICAD_APP_NAME}" )
set( KICAD_ICON_PREFIX "${KICAD_APP_NAME}" )
@ -37,6 +48,7 @@ elseif( UNIX )
-DBUILD_PATH=${PROJECT_BINARY_DIR}
-DKICAD_CMAKE_MODULE_PATH=${PROJECT_SOURCE_DIR}/cmake
-DKICAD_APP_NAME=${KICAD_APP_NAME}
-DKICAD_PROVIDES_APP_ID=${KICAD_PROVIDES_APP_ID}
-P ${KICAD_CMAKE_MODULE_PATH}/BuildSteps/WritePlatformMetadata_linux.cmake
DEPENDS ${KICAD_CMAKE_MODULE_PATH}/BuildSteps/WritePlatformMetadata_linux.cmake
COMMENT "Configuring Linux metainfo"

View File

@ -14,6 +14,7 @@
<summary>An EDA suite for schematic and circuit board design</summary>
<provides>
<id>@KICAD_PROVIDES_APP_ID@</id>
<binary>kicad</binary>
<binary>eeschema</binary>
<binary>pcbnew</binary>