From c520c291f03099b4da8a75e18ff5f27c02933359 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 13 Sep 2023 19:54:31 -0500 Subject: [PATCH] and here we go CMake should run make-appdata.sh --- .gitignore | 1 + CMakeLists.txt | 22 +++++++++++++++++++++- res/furnace.appdata.xml.in | 2 +- res/make-appdata.sh | 23 ++++++++++++++--------- scripts/release-linux-AppImage.sh | 4 ++-- 5 files changed, 39 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 26d7f5904..6bd68968c 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ res/binary_to_compressed_c.exe res/docpdf/manual.html res/docpdf/manual.pdf res/docpdf/.venv +res/furnace.appdata.xml diff --git a/CMakeLists.txt b/CMakeLists.txt index 593dfb265..8e0e76f9e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,15 @@ set(SYSTEM_SDL2_DEFAULT OFF) include(CheckIncludeFile) include(TestBigEndian) +execute_process(COMMAND git status RESULT_VARIABLE DONT_HAVE_GIT WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) +if (NOT DONT_HAVE_GIT) + message(STATUS "Git is available") +else() + message(WARNING "either Git is not available, or this Git repository has not been initialized. +if you have used the \"Source code\" option in the GitHub release page, you are doing it wrong! unless you manually initialize submodules, the build is guaranteed to FAIL spectacularly! +read the \"developer info\" section of README.md for more information.") +endif() + if (ANDROID) set(USE_RTMIDI_DEFAULT OFF) set(WITH_PORTAUDIO_DEFAULT OFF) @@ -922,6 +931,15 @@ if (WARNINGS_ARE_ERRORS) ) endif() +if (NOT ANDROID OR TERMUX) + if (NOT WIN32 AND NOT APPLE) + if (NOT DONT_HAVE_GIT) + add_custom_command(OUTPUT furnace.appdata.xml COMMAND res/make-appdata.sh ARGS ${CMAKE_SOURCE_DIR}/res/furnace.appdata.xml.in ${CMAKE_BINARY_DIR}/furnace.appdata.xml DEPENDS res/furnace.appdata.xml.in WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) + list(APPEND USED_SOURCES furnace.appdata.xml) + endif() + endif() +endif() + if(ANDROID AND NOT TERMUX) add_library(furnace SHARED ${USED_SOURCES}) elseif(WIN32) @@ -952,7 +970,9 @@ if (NOT ANDROID OR TERMUX) include(GNUInstallDirs) install(TARGETS furnace RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) install(FILES res/furnace.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) - install(FILES res/furnace.appdata.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo) + if (NOT DONT_HAVE_GIT) + install(FILES ${CMAKE_BINARY_DIR}/furnace.appdata.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo) + endif() install(DIRECTORY doc DESTINATION ${CMAKE_INSTALL_DOCDIR}) install(DIRECTORY papers DESTINATION ${CMAKE_INSTALL_DOCDIR}/other) install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DATADIR}/licenses/furnace) diff --git a/res/furnace.appdata.xml.in b/res/furnace.appdata.xml.in index 8a3baae3f..6103fef1f 100644 --- a/res/furnace.appdata.xml.in +++ b/res/furnace.appdata.xml.in @@ -11,7 +11,7 @@

- the biggest chiptune tracker ever made! + Furnace - the biggest chiptune tracker ever made!

it allows you to create songs using a music tracker interface for several computer/game console/arcade sound chips. diff --git a/res/make-appdata.sh b/res/make-appdata.sh index ac94df108..90c3e193b 100755 --- a/res/make-appdata.sh +++ b/res/make-appdata.sh @@ -1,10 +1,15 @@ #!/bin/bash -echo "generating furnace.appdata.xml..." +if [ $# -lt 2 ]; then + echo "usage: $0 input output" + exit 1 +fi -cat furnace.appdata.xml.in > furnace.appdata.xml +#echo "generating $2..." -echo " " >> furnace.appdata.xml +cat "$1" > "$2" + +echo " " >> "$2" for i in `git log --tags='v*' --no-walk --format="%as/%(describe:tags)"`; do releaseDate=${i%/*} @@ -13,13 +18,13 @@ for i in `git log --tags='v*' --no-walk --format="%as/%(describe:tags)"`; do if [[ $releaseVer =~ "pre" ]]; then releaseType=development fi - echo " " >> furnace.appdata.xml - echo " https://github.com/tildearrow/furnace/releases/tag/$releaseVer" >> furnace.appdata.xml - echo " " >> furnace.appdata.xml + echo " " >> "$2" + echo " https://github.com/tildearrow/furnace/releases/tag/$releaseVer" >> "$2" + echo " " >> "$2" done -echo " " >> furnace.appdata.xml +echo " " >> "$2" -echo "" >> furnace.appdata.xml +echo "" >> "$2" -echo "done." +#echo "done." diff --git a/scripts/release-linux-AppImage.sh b/scripts/release-linux-AppImage.sh index 4cf8a8cd4..c535d2f6e 100755 --- a/scripts/release-linux-AppImage.sh +++ b/scripts/release-linux-AppImage.sh @@ -30,8 +30,8 @@ cp -v ../../../res/logo.png furnace.png || exit 1 ln -s furnace.png .DirIcon || exit 1 cp -v ../../../res/furnace.desktop . || exit 1 #mkdir -p usr/share/metainfo || exit 1 -cp -v ../../../res/furnace.appdata.xml usr/share/metainfo/org.tildearrow.furnace.metainfo.xml || exit 1 -rm usr/share/metainfo/furnace.appdata.xml || exit 1 +#cp -v ../../../res/furnace.appdata.xml usr/share/metainfo/org.tildearrow.furnace.metainfo.xml || exit 1 +#rm usr/share/metainfo/furnace.appdata.xml || exit 1 cp -v ../../../res/AppRun . || exit 1 #cp /usr/lib/libm.so.6 usr/lib/ || exit 1