mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-21 16:38:06 -06:00
Tweak appdata file generation some more
Should make it easier for packagers to provide their own releases data.
This commit is contained in:
parent
7a16e04822
commit
dd18128927
@ -62,9 +62,15 @@ option (DISABLE_DEPRECATED_GNOME "don't use deprecated gnome functions" OFF)
|
|||||||
# Use gsettings-desktop-schemas for a better integration with GNOME
|
# Use gsettings-desktop-schemas for a better integration with GNOME
|
||||||
set(COMPILE_GSCHEMAS ON CACHE BOOL "Compile the GSettings schema")
|
set(COMPILE_GSCHEMAS ON CACHE BOOL "Compile the GSettings schema")
|
||||||
|
|
||||||
set(GNUCASH_BUILD_ID "" CACHE STRING "Overrides the GnuCash build identification (Build ID) which defaults to a description of the vcs commit from which gnucash is built. Distributions may want to insert a package management based version number instead")
|
|
||||||
# GENERATE_SWIG_WRAPPERS - Controls whether to generate the swig wrappers for guile and python. If not set the wrappers will only be generated when building from a git worktree, commented out here, but will be evaluated later on in this file
|
# GENERATE_SWIG_WRAPPERS - Controls whether to generate the swig wrappers for guile and python. If not set the wrappers will only be generated when building from a git worktree, commented out here, but will be evaluated later on in this file
|
||||||
|
|
||||||
|
# Support for downstream packagers
|
||||||
|
set(GNUCASH_BUILD_ID "" CACHE STRING "Overrides the GnuCash build identification (Build ID) which defaults to a description of the vcs commit from which gnucash is built. Distributions may want to insert a package management based version number instead")
|
||||||
|
# In addition to the GNUCASH_BUILD_ID environment variable, packagers can overwrite
|
||||||
|
# gnucash/gnome/gnucash.releases.xml with (package) release details to be included
|
||||||
|
# in the appdata file. It should follow appdata <release> node conventions.
|
||||||
|
|
||||||
|
|
||||||
# Check that all of the absolute install paths are inside
|
# Check that all of the absolute install paths are inside
|
||||||
# ${CMAKE_INSTALL_PREFIX}. If they're not, disable binreloc as it
|
# ${CMAKE_INSTALL_PREFIX}. If they're not, disable binreloc as it
|
||||||
# won't be able to find paths that aren't relative to the location of
|
# won't be able to find paths that aren't relative to the location of
|
||||||
|
@ -9,6 +9,6 @@ endif()
|
|||||||
|
|
||||||
|
|
||||||
set_dist_list(cmake_DIST CMakeLists.txt README_CMAKE.txt cmake_uninstall.cmake.in
|
set_dist_list(cmake_DIST CMakeLists.txt README_CMAKE.txt cmake_uninstall.cmake.in
|
||||||
insert-vcs-data.cmake configure-manpage.cmake git2version-info.cmake
|
configure-appdata.cmake configure-gnucash-desktop.cmake configure-manpage.cmake
|
||||||
version-info2env.cmake
|
git2version-info.cmake version-info2env.cmake
|
||||||
)
|
)
|
||||||
|
33
cmake/configure-appdata.cmake
Normal file
33
cmake/configure-appdata.cmake
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# Command to configure the gnucash appdata file
|
||||||
|
# These commands are stored in a separate cmake file as they have to be
|
||||||
|
# rerun depending on build conditions, not depending on cmake conditions
|
||||||
|
# (such as did the version string change or not)
|
||||||
|
#
|
||||||
|
# Logic is as follows:
|
||||||
|
# - the source file <current-source-dir>/releases.xml will be
|
||||||
|
# configured with version information found in gnc-vcs-info.h
|
||||||
|
# and an optional GNUCASH_BUILD_ID variable
|
||||||
|
# - the result of this configuration will be applied to the
|
||||||
|
# appdata input file
|
||||||
|
# The default releases.xml file will just be a single release line in
|
||||||
|
# appdata <release> node format. Handling this in a separate file allows
|
||||||
|
# packagers to override it to supply their own (package) release details.
|
||||||
|
#
|
||||||
|
# The following environment variables are used and should be properly set
|
||||||
|
# by the calling code:
|
||||||
|
# - SRC_DIR (top level source code directory)
|
||||||
|
# - SRC (full path to gnucash.appdata.xml.in)
|
||||||
|
# - DST (full path to destination for gnucash.appdata.xml)
|
||||||
|
# - REL_FILE (path to file containg (packaging) release info)
|
||||||
|
# - VCS_INFO_FILE (full path to gnc-vcs-info.h - can be in source tree (release builds) or build tree (git builds))
|
||||||
|
# - GNUCASH_BUILD_ID (optional, extra version information supplied by packagers)
|
||||||
|
|
||||||
|
include (${SRC_DIR}/cmake/version-info2env.cmake)
|
||||||
|
versioninfo2env (${VCS_INFO_FILE})
|
||||||
|
if (GNUCASH_BUILD_ID AND NOT "${GNUCASH_BUILD_ID}" STREQUAL "${GNC_VCS_REV}")
|
||||||
|
set (GNC_VCS_REV "${GNC_VCS_REV} (${GNUCASH_BUILD_ID})")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
file (READ ${REL_FILE} REL_INFO_IN)
|
||||||
|
string(CONFIGURE "${REL_INFO_IN}" REL_INFO)
|
||||||
|
configure_file(${SRC} ${DST})
|
@ -1,4 +1,4 @@
|
|||||||
# Command to configure the gnucash appdata file
|
# Command to configure the gnucash desktop file
|
||||||
# These commands are stored in a separate cmake file as they have to be
|
# These commands are stored in a separate cmake file as they have to be
|
||||||
# rerun depending on build conditions, not depending on cmake conditions
|
# rerun depending on build conditions, not depending on cmake conditions
|
||||||
# (such as did the version string change or not)
|
# (such as did the version string change or not)
|
||||||
@ -6,10 +6,10 @@
|
|||||||
# The following environment variables are used and should be properly set
|
# The following environment variables are used and should be properly set
|
||||||
# by the calling code:
|
# by the calling code:
|
||||||
# - SRC_DIR (top level source code directory)
|
# - SRC_DIR (top level source code directory)
|
||||||
# - SRC (full path to gnc-vcs-info.h.in)
|
# - SRC (full path to gnucash.desktop.in)
|
||||||
# - DST (full path to destination for gnc-vcs-info.h)
|
# - DST (full path to destination for gnucash.desktop)
|
||||||
# - VCS_INFO_FILE (full path to gnc-vcs-info.h - can be in source tree (release builds) or build tree (git builds))
|
# - VCS_INFO_FILE (full path to gnc-vcs-info.h - can be in source tree (release builds) or build tree (git builds))
|
||||||
# - DATADIR_BUILD (path to applicication data directory, typically {CMAKE_BINARY_DIR}/share)
|
# - DATADIR_BUILD (path to application data directory, typically {CMAKE_BINARY_DIR}/share)
|
||||||
|
|
||||||
include (${SRC_DIR}/cmake/version-info2env.cmake)
|
include (${SRC_DIR}/cmake/version-info2env.cmake)
|
||||||
versioninfo2env (${VCS_INFO_FILE})
|
versioninfo2env (${VCS_INFO_FILE})
|
@ -183,14 +183,14 @@ endif()
|
|||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/gnucash.appdata.xml
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/gnucash.appdata.xml
|
||||||
DEPENDS ${GNC_APPDATA_IN} ${VCS_INFO_FILE}
|
DEPENDS ${GNC_APPDATA_IN} ${VCS_INFO_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/gnucash.releases.xml
|
||||||
COMMAND ${CMAKE_COMMAND} -D SRC=${GNC_APPDATA_IN}
|
COMMAND ${CMAKE_COMMAND} -D SRC=${GNC_APPDATA_IN}
|
||||||
-D DST=${CMAKE_CURRENT_BINARY_DIR}/gnucash.appdata.xml
|
-D DST=${CMAKE_CURRENT_BINARY_DIR}/gnucash.appdata.xml
|
||||||
-D VCS_INFO_FILE=${VCS_INFO_FILE}
|
-D VCS_INFO_FILE=${VCS_INFO_FILE}
|
||||||
-D GNUCASH_BUILD_ID=${GNUCASH_BUILD_ID}
|
-D GNUCASH_BUILD_ID=${GNUCASH_BUILD_ID}
|
||||||
-D PROJECT_VERSION=${PROJECT_VERSION}
|
|
||||||
-D SRC_DIR=${CMAKE_SOURCE_DIR}
|
-D SRC_DIR=${CMAKE_SOURCE_DIR}
|
||||||
-P ${CMAKE_SOURCE_DIR}/cmake/insert-vcs-data.cmake)
|
-D REL_FILE=${CMAKE_CURRENT_SOURCE_DIR}/gnucash.releases.xml
|
||||||
|
-P ${CMAKE_SOURCE_DIR}/cmake/configure-appdata.cmake)
|
||||||
|
|
||||||
add_custom_target(gnucash-appdata ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/gnucash.appdata.xml)
|
add_custom_target(gnucash-appdata ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/gnucash.appdata.xml)
|
||||||
|
|
||||||
@ -234,7 +234,7 @@ add_custom_command (
|
|||||||
-D VCS_INFO_FILE=${VCS_INFO_FILE}
|
-D VCS_INFO_FILE=${VCS_INFO_FILE}
|
||||||
-D PROJECT_VERSION=${PROJECT_VERSION}
|
-D PROJECT_VERSION=${PROJECT_VERSION}
|
||||||
-D SRC_DIR=${CMAKE_SOURCE_DIR}
|
-D SRC_DIR=${CMAKE_SOURCE_DIR}
|
||||||
-P ${CMAKE_SOURCE_DIR}/cmake/insert-vcs-data.cmake)
|
-P ${CMAKE_SOURCE_DIR}/cmake/configure-gnucash-desktop.cmake)
|
||||||
|
|
||||||
add_custom_target(gnucash-desktop ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/gnucash.desktop)
|
add_custom_target(gnucash-desktop ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/gnucash.desktop)
|
||||||
|
|
||||||
@ -242,5 +242,5 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.desktop DESTINATION ${CMAKE_I
|
|||||||
|
|
||||||
set_dist_list(gnome_DIST
|
set_dist_list(gnome_DIST
|
||||||
CMakeLists.txt gnome.i gnucash.appdata.xml.in.in gnucash.desktop.in.in
|
CMakeLists.txt gnome.i gnucash.appdata.xml.in.in gnucash.desktop.in.in
|
||||||
${gnc_gnome_noinst_HEADERS} ${gnc_gnome_SOURCES})
|
gnucash.releases.xml ${gnc_gnome_noinst_HEADERS} ${gnc_gnome_SOURCES})
|
||||||
dist_add_generated(${BUILDING_FROM_VCS} gnucash.appdata.xml.in gnucash.desktop.in)
|
dist_add_generated(${BUILDING_FROM_VCS} gnucash.appdata.xml.in gnucash.desktop.in)
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
<metadata_license>CC0-1.0</metadata_license>
|
<metadata_license>CC0-1.0</metadata_license>
|
||||||
<project_license>GPL-2.0+</project_license>
|
<project_license>GPL-2.0+</project_license>
|
||||||
<releases>
|
<releases>
|
||||||
<release date="${GNC_VCS_REV_DATE}" version="${GNC_VCS_REV}" />
|
${REL_INFO}
|
||||||
</releases>
|
</releases>
|
||||||
|
|
||||||
<screenshots>
|
<screenshots>
|
||||||
|
1
gnucash/gnome/gnucash.releases.xml
Normal file
1
gnucash/gnome/gnucash.releases.xml
Normal file
@ -0,0 +1 @@
|
|||||||
|
<release date="${GNC_VCS_REV_DATE}" version="${GNC_VCS_REV}" />
|
Loading…
Reference in New Issue
Block a user