Browse Source

add appdata file

split_cycle
parent
commit
a4d4491a6d
Signed by: alex
GPG Key ID: 022EAE42313D70F3
  1. 2
      .builds/archlinux.yml
  2. 57
      data/meson.build
  3. 63
      data/org.zrythm.Zrythm.appdata.xml.in
  4. 4
      data/zrythm.desktop.in
  5. 33
      doc/dev/windows-build.md
  6. 4
      meson.build
  7. 1
      scripts/collect_translatables.sh

2
.builds/archlinux.yml

@ -116,7 +116,7 @@ tasks: @@ -116,7 +116,7 @@ tasks:
cd zrythm
DESTDIR=/tmp ninja -C build install
glib-compile-schemas /tmp/usr/local/share/glib-2.0/schemas
/tmp/usr/local/bin/zrythm_launch --version | grep "built with"
GSETTINGS_SCHEMA_DIR=/tmp/usr/local/share/glib-2.0/schemas /tmp/usr/local/bin/zrythm_launch --version | grep "built with"
- install-sudo: |
cd zrythm
sudo ninja -C build install

57
data/meson.build

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
# Copyright (C) 2019-2021 Alexandros Theodotou <alex at zrythm dot org>
# Copyright (C) 2019-2022 Alexandros Theodotou <alex at zrythm dot org>
#
# This file is part of Zrythm
#
@ -15,12 +15,13 @@ @@ -15,12 +15,13 @@
# You should have received a copy of the GNU Affero General Public License
# along with Zrythm. If not, see <https://www.gnu.org/licenses/>.
gschema_top = 'org.' + prog_name_lowercase + '.' + prog_name
app_id = 'org.zrythm.Zrythm'
gschema = configure_file (
input: gen_gschema_wrap,
output: gschema_top + '.gschema.xml',
output: app_id + '.gschema.xml',
command: [
'@INPUT0@', '@OUTPUT@', gschema_top,
'@INPUT0@', '@OUTPUT@', app_id,
],
install: true,
install_dir: schemasdir)
@ -80,13 +81,14 @@ if os_gnu or os_freebsd @@ -80,13 +81,14 @@ if os_gnu or os_freebsd
install_dir: bindir,
install_mode: 'r-xr-xr-x')
# desktop entry
desktop_file = configure_file (
input: 'zrythm.desktop.in',
output: 'zrythm.desktop.in',
configuration: zrythm_launcher_config)
localized_desktop_file = i18n.merge_file (
input: desktop_file,
output: gschema_top + '.desktop',
output: app_id + '.desktop',
type: 'desktop',
po_dir: '../po',
install: true,
@ -95,11 +97,52 @@ if os_gnu or os_freebsd @@ -95,11 +97,52 @@ if os_gnu or os_freebsd
desktop_utils = find_program (
'desktop-file-validate', required: false)
if desktop_utils.found()
test('Validate desktop file', desktop_utils,
test ('Validate desktop file', desktop_utils,
args: [localized_desktop_file]
)
endif
elif os_darwin
# appdata
# TODO generate <releases/> based on CHANGELOG.md
appdata_config = configuration_data ({
'HOMEPAGE_URL': 'https://www.zrythm.org/en/index.html',
'DONATION_URL': 'https://www.zrythm.org/en/community.html',
'BUG_REPORT_URL': 'https://todo.sr.ht/~alextee/zrythm-bug',
'USER_MANUAL_URL': 'https://manual.zrythm.org/en/index.html',
'PIANO_ROLL_SCREENSHOT_URL': 'https://www.zrythm.org/static/images/screenshots/Screenshot_20220110_152402.png',
'MIXER_SCREENSHOT_URL': 'https://www.zrythm.org/static/images/screenshots/Screenshot_20220110_152001.png',
'APP_ID': app_id,
})
appdata_file_in = configure_file (
input: '@0@.appdata.xml.in'.format (app_id),
output: '@0@.appdata.xml.in'.format (app_id),
configuration: appdata_config)
appdata_file = i18n.merge_file (
input: appdata_file_in,
output: '@0@.appdata.xml'.format (app_id),
type: 'xml',
po_dir: '../po',
install: true,
install_dir: datadir / 'metainfo',
)
# Validate the appdata file
appstream_util = find_program (
'appstream-util', required: false)
if appstream_util.found ()
test ('validate-appdata', appstream_util,
suite: 'data',
args: [
'validate-relax', '--nonet',
appdata_file.full_path()
],
depends: [
appdata_file,
],
)
endif
endif # gnu or freebsd
if os_darwin
zrythm_gdb = configure_file (
input: 'zrythm_lldb.in',
output: prog_name_lowercase + '_lldb',

63
data/org.zrythm.Zrythm.appdata.xml.in

@ -0,0 +1,63 @@ @@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>org.zrythm.Zrythm</id>
<!--
The tag 'metadata_license' means the licence of
this file, not the whole product
-->
<metadata_license>CC0-1.0</metadata_license>
<project_license>AGPL-3.0-or-later</project_license>
<developer_name>The Zrythm contributors</developer_name>
<name>Zrythm DAW</name>
<summary>A highly automated and intuitive digital audio workstation</summary>
<description>
<p>
Zrythm is a digital audio workstation designed to
be featureful and easy to use. It allows
limitless automation through curves, LFOs and
envelopes, supports multiple plugin formats
including LV2, VST2 and VST3, works with
multiple backends including JACK, RtAudio/RtMidi
and SDL2, assists with chord progressions via a
special Chord Track and chord pads, and can be
used in multiple languages including English,
French, Portuguese, Japanese and German.
</p>
<p>
Zrythm can be extended using GNU Guile.
</p>
</description>
<url type="bugtracker">@BUG_REPORT_URL@</url>
<url type="donation">@DONATION_URL@</url>
<url type="help">@USER_MANUAL_URL@</url>
<url type="homepage">@HOMEPAGE_URL@</url>
<screenshots>
<screenshot type="default">
<image>@PIANO_ROLL_SCREENSHOT_URL@</image>
<caption>Composing MIDI in Zrythm</caption>
</screenshot>
<screenshot type="default">
<image>@MIXER_SCREENSHOT_URL@</image>
<caption>Mixer view</caption>
</screenshot>
</screenshots>
<update_contact>alex_at_zrythm.org</update_contact>
<keywords>
<keyword>Zrythm</keyword>
<keyword>DAW</keyword>
</keywords>
<kudos>
<kudo>HiDpiIcon</kudo>
<kudo>ModernToolkit</kudo>
</kudos>
<project_group>Zrythm</project_group>
<translation type="gettext">zrythm</translation>
<launchable type="desktop-id">@APP_ID@.desktop</launchable>
<provides>
<binary>zrythm_launch</binary>
<id>@APP_ID@</id>
</provides>
<content_rating type="oars-1.1" />
</component>

4
data/zrythm.desktop.in

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
# Copyright (C) 2019-2020 Alexandros Theodotou <alex at zrythm dot org>
# Copyright (C) 2019-2020, 2022 Alexandros Theodotou <alex at zrythm dot org>
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
@ -10,6 +10,8 @@ Name=Zrythm @@ -10,6 +10,8 @@ Name=Zrythm
GenericName=Digital Audio Workstation
Version=1.0
Comment=highly automated and intuitive digital audio workstation
# Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
Keywords=daw;audio;midi;music;
Exec=@BIN_DIR@/zrythm_launch
# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
Icon=zrythm

33
doc/dev/windows-build.md

@ -103,35 +103,18 @@ To open the terminal hit `ctrl`+`` ` `` @@ -103,35 +103,18 @@ To open the terminal hit `ctrl`+`` ` ``
### ASIO
Because of licensing issues, you cannot distribute a build of ASIO. However, you can build one for yourself.
Zrythm uses the RtAudio library on Windows, which
can be built with ASIO support, however,
ASIO is proprietary and Zrythm uses code under the
GPL so distribution of Zrythm with ASIO support is
illegal. For more information on why this is not
allowed by the GPL, consider:
## Building rtaudio with ASIO support
<https://gitlab.com/gnu-clisp/clisp/blob/dd313099db351c90431c1c90332192edce2bb5c9/doc/Why-CLISP-is-under-GPL>
Download and install visual studio community edition and cmake. Make sure cmake is available in your path.
Start a windows cmd.
```
# Clone the rt audio repository
git clone https://github.com/thestk/rtaudio.git --single-branch
cd rtaudio
mkdir build
cd build
# Configure with asio enabled, and point the prefix to your mingw64 install dir (no trailing slash!)
cmake .. -DRTAUDIO_API_ASIO=ON -DCMAKE_INSTALL_PREFIX="C:/msys64/mingw64"
# Build and install
cmake --build . --config Release
cmake --install .
```
## Activate rtaudio from meson
Then from msys2 mingw64, you can build with:
```
# non empty output means install was successful
pkg-config --list-all | grep rtaudio
meson build -Denable_rtaudio=auto
```
----
Copyright (C) 2022 Alexandros Theodotou
Copyright (C) 2020 Sidar Talei, Matthieu Talbot
Copying and distribution of this file, with or without modification,

4
meson.build

@ -1159,7 +1159,9 @@ rtaudio_dep = dependency ( @@ -1159,7 +1159,9 @@ rtaudio_dep = dependency (
# TODO use shared in the future so .dll can be
# replaced on windows
'default_library=static',
# ASIO disabled for legal reasons
# distribution of Zrythm with ASIO support is
# illegal. see the discussion in
# https://gitlab.com/gnu-clisp/clisp/blob/dd313099db351c90431c1c90332192edce2bb5c9/doc/Why-CLISP-is-under-GPL
'asio=disabled',])
if rtaudio_dep.found ()
cdata.set('HAVE_RTAUDIO', 1)

1
scripts/collect_translatables.sh

@ -35,6 +35,7 @@ for path in ['inc', 'src', 'resources', 'data']: @@ -35,6 +35,7 @@ for path in ['inc', 'src', 'resources', 'data']:
f for f in filenames if f.endswith('.c') or
f.endswith('.h') or f.endswith('.ui') or
f.endswith('.gschema.xml') or
f.endswith('.appdata.xml.in') or
f.endswith('.desktop.in')]:
str = os.path.join(dirpath, filename)
potfiles.write (str + '\n')

Loading…
Cancel
Save