Compare commits

...

7 Commits

Author SHA1 Message Date
Owen D'Aprile d1f7b01067 Merge branch 'packaging/flatpak' into 'main'
packaging: Add support for building a Flatpak

See merge request then-try-this/samplebrain!4
2022-09-26 07:42:23 +00:00
Dave Griffiths e741246b1f turned off ci runner thing 2022-09-26 08:42:13 +01:00
dave griffiths 6241b1030d Merge branch 'development' into 'main'
fix build instructions and add mac deps list

See merge request then-try-this/samplebrain!5
2022-09-26 07:41:02 +00:00
Andrew Teta 70a277afb8 fix build instructions and add mac deps list 2022-09-25 22:07:30 -06:00
Owen D'Aprile 129b6ea416
linux: add a Flatpak manifest
This manifest will build a Flatpak from the current local source
directory.
2022-09-25 16:43:21 -04:00
Owen D'Aprile 9d7931c8c2
linux: don't use hardcoded path for Exec and Icon
Desktop files respect $PATH and $XDG_DATA_DIRS, so the full path does
not need to be specified to either.

This fixes the Flatpak build by allowing Flatpak to rewrite these to
match the app ID.
2022-09-25 16:21:17 -04:00
Owen D'Aprile 74b00570dd
build: allow setting installation prefix
Allow $PREFIX to be set during compilation, changing where the app is
installed.

This is used to change where the app is installed inside the Flatpak
sandbox.
2022-09-25 16:21:07 -04:00
6 changed files with 190 additions and 49 deletions

View File

@ -18,29 +18,29 @@
# see also https://docs.gitlab.com/ee/ci/runners/saas/macos_saas_runner.html
.macos_saas_runners:
tags:
- shared-macos-amd64
image: macos-11-xcode-12
# .macos_saas_runners:
# tags:
# - shared-macos-amd64
# image: macos-11-xcode-12
stages:
- build
- test
# stages:
# - build
# - test
before_script:
- echo "started by ${GITLAB_USER_NAME}"
# before_script:
# - echo "started by ${GITLAB_USER_NAME}"
build:
extends:
- .macos_saas_runners
stage: build
script:
- echo "running scripts in the build job"
# build:
# extends:
# - .macos_saas_runners
# stage: build
# script:
# - echo "running scripts in the build job"
test:
extends:
- .macos_saas_runners
stage: test
script:
- echo "running scripts in the test job"
# test:
# extends:
# - .macos_saas_runners
# stage: test
# script:
# - echo "running scripts in the test job"

View File

@ -19,7 +19,7 @@ Quick start:
1. Load a bunch of samples into the brain
2. Click (re)generate brain
3. Load a loop sample into the target
4. Click (re)generate target
4. Click (re)generate blocks
5. Press play
6. Tweak brain
@ -60,7 +60,7 @@ If you'd like the right font, optionally:
$ sudo apt install ttf-mscorefonts-installer
# Building from source
## Linux (Ubuntu)
Install libraries for the sample engine (use brew on mac, MinGW on win):
$ sudo apt install libsndfile1-dev portaudio19-dev liblo-dev libfftw3-dev
@ -71,8 +71,28 @@ Install dependancies for the interface:
Build & run it:
$ cd app
$ qmake
$ mkdir build
$ cd build
$ qmake ..
$ make
$ sudo make install
$ samplebrain
## Mac
Install libraries for sample engine:
$ brew install fftw portaudio
Install dependancies for the interface:
$ brew install qt
$ brew link qt
Build & run it:
$ mkdir build
$ cd build
$ qmake ..
$ make
$ sudo make install
$ samplebrain
@ -81,9 +101,21 @@ Build & run it:
To make a mac app bundle:
* Run `macdeployqt` to copy all dependancies inside the app.
* Copy desktop/samplebrain.icns (the icon) to the Resources directory in the bundle.
* Edit Info.plist to add samplebrain.icns to CFBundleIconFile.
Run `macdeployqt` to copy all dependencies inside the app.
Create Mac app bundle:
$ cd build
$ macdeployqt
Copy desktop/samplebrain.icns (the icon) to the Resources directory in the bundle.
$ cp ../desktop/samplebrain.icns samplebrain.app/Contents/Resources
Edit Info.plist to add samplebrain.icns to CFBundleIconFile. Key `CFBundleIconFile` should match:
<key>CFBundleIconFile</key>
<string>samplebrain.icns</string>
## What's here

View File

@ -0,0 +1,31 @@
# Flatpak Build Instructions
## Prerequisites
To build the Flatpak, install the `flatpak` and `flatpak-builder` packages
from your repositories. Then, [add Flathub](https://flatpak.org/setup/).
Now, install the KDE SDK:
```sh
flatpak install flathub org.kde.Sdk//5.15-22.08
```
## Building and installing
To build and install the app locally:
```sh
flatpak-builder --force-clean --install --user builddir build-aux/flatpak/org.thentrythis.Samplebrain.yaml
```
## Building and exporting
To build and export a Flatpak bundle:
```sh
flatpak-builder --force-clean --repo=repo builddir build-aux/flatpak/org.thentrythis.Samplebrain.yaml
flatpak build-bundle repo org.thentrythis.Samplebrain.flatpak org.thentrythis.Samplebrain
```
To install the bundle:
```sh
flatpak install org.thentrythis.Samplebrain.flatpak
```

View File

@ -0,0 +1,73 @@
id: org.thentrythis.Samplebrain
runtime: org.kde.Platform
runtime-version: "5.15-22.08"
sdk: org.kde.Sdk
rename-desktop-file: samplebrain.desktop
rename-icon: samplebrain
command: samplebrain
finish-args:
- "--share=ipc"
- "--socket=wayland"
- "--socket=fallback-x11"
- "--socket=pulseaudio"
- "--device=dri"
- "--share=network"
cleanup:
- "/include"
- "/lib/cmake"
- "/lib/pkgconfig"
- "/share/doc"
modules:
- name: libsndfile
buildsystem: cmake-ninja
config-opts:
- "-DCMAKE_BUILD_TYPE=Release"
- "-DBUILD_SHARED_LIBS=ON"
- "-DENABLE_EXTERNAL_LIBS=NO"
- "-DENABLE_CPACK=NO"
- "-DBUILD_PROGRAMS=OFF"
- "-DBUILD_EXAMPLES=OFF"
sources:
- type: archive
url: https://github.com/libsndfile/libsndfile/releases/download/1.1.0/libsndfile-1.1.0.tar.xz
sha256: 0f98e101c0f7c850a71225fb5feaf33b106227b3d331333ddc9bacee190bcf41
- name: portaudio
buildsystem: autotools
config-opts:
- "--with-alsa"
- "--without-jack"
- "--without-oss"
- "--without-asihpi"
sources:
- type: archive
url: http://files.portaudio.com/archives/pa_stable_v190700_20210406.tgz
sha256: 47efbf42c77c19a05d22e627d42873e991ec0c1357219c0d74ce6a2948cb2def
- name: liblo
buildsystem: autotools
config-opts:
- "--disable-tests"
- "--disable-network-tests"
- "--disable-tools"
- "--disable-examples"
sources:
- type: archive
url: https://versaweb.dl.sourceforge.net/project/liblo/liblo/0.31/liblo-0.31.tar.gz
sha256: 2b4f446e1220dcd624ecd8405248b08b7601e9a0d87a0b94730c2907dbccc750
- name: samplebrain
buildsystem: qmake
build-options:
env:
PREFIX: /app
config-opts:
- "LIBS+=-L/app/lib"
sources:
- type: dir
path: ../../

View File

@ -3,8 +3,8 @@ Encoding=UTF-8
Type=Application
Name=Samplebrain
Comment=A sample masher designed by Aphex Twin
Exec=/usr/bin/samplebrain
Icon=/usr/share/icons/hicolor/scalable/apps/samplebrain.svg
Exec=samplebrain
Icon=samplebrain
Terminal=false
Categories=GNOME;Application;
StartupNotify=true

View File

@ -51,10 +51,15 @@ QMAKE_CXXFLAGS += -O3 -Wall -Wno-unused -std=c++11
# assets
RESOURCES = app/samplebrain.qrc
unix:desktopfile.path = /usr/share/applications/
PREFIX = $$(PREFIX)
isEmpty(PREFIX) {
PREFIX = /usr
}
unix:desktopfile.path = $$PREFIX/share/applications/
unix:desktopfile.files = desktop/samplebrain.desktop
unix:iconfile.path = /usr/share/icons/hicolor/scalable/apps
unix:iconfile.path = $$PREFIX/share/icons/hicolor/scalable/apps
unix:iconfile.files = desktop/samplebrain.svg
target.path = /usr/bin
target.path = $$PREFIX/bin
INSTALLS += target desktopfile iconfile