Compare commits

...

11 Commits

Author SHA1 Message Date
Dave Griffiths 43bd1eff3e added liblo to mac build instructions 2022-09-26 12:14:13 +01:00
Dave Griffiths f521ccafc9 removed ci script 2022-09-26 12:03:38 +01:00
Dave Griffiths 11ed7413b3 fixed broken link duh fixes: #35 2022-09-26 12:01:40 +01:00
Dave Griffiths 0af0d8e20c new binaries added 2022-09-26 10:46:24 +01:00
dave griffiths dcdf481a02 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:45:38 +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 182 additions and 80 deletions

View File

@ -1,46 +0,0 @@
# This file is a template, and might need editing before it works on your project.
# This is a sample GitLab CI/CD configuration file that should run without any modifications.
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
# it uses echo commands to simulate the pipeline execution.
#
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
# Stages run in sequential order, but jobs within stages run in parallel.
#
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages
#
# You can copy and paste this template into a new `.gitlab-ci.yml` file.
# You should not add this template to an existing `.gitlab-ci.yml` file by using the `include:` keyword.
#
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml
# 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
stages:
- build
- test
before_script:
- echo "started by ${GITLAB_USER_NAME}"
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"

View File

@ -19,7 +19,7 @@ Quick start:
1. Load a bunch of samples into the brain 1. Load a bunch of samples into the brain
2. Click (re)generate brain 2. Click (re)generate brain
3. Load a loop sample into the target 3. Load a loop sample into the target
4. Click (re)generate target 4. Click (re)generate blocks
5. Press play 5. Press play
6. Tweak brain 6. Tweak brain
@ -38,17 +38,24 @@ behind it.
# Binaries # Binaries
* **Windows**: [samplebrain_0.18_win.zip](https://static.thentrythis.org/samplebrain/samplebrain_0.18_win.zip) * **Windows**: (new fix for ridiculous CPU usage) [samplebrain_0.18.1_win.zip](https://static.thentrythis.org/samplebrain/samplebrain_0.18.1_win.zip)
* **Mac (intel)**: [samplebrain_0.18_macintel.zip](https://static.thentrythis.org/samplebrain/samplebrain_0.18_macintel.zip) * **Mac (new fix for silence/should work on m1)**: [samplebrain_0.18.1_macintel.zip](https://static.thentrythis.org/samplebrain/samplebrain_0.18.1_macintel.app.zip)
* **Mac (m1 VERSION 2!)**: [samplebrain_0.18_m1_v2.dmg](https://static.thentrythis.org/samplebrain/samplebrain_0.18_m1_v2.dmg)
Thank you to [Nik Gaffney](http://fo.am) for help with the Apple builds. Thank you to [Nik Gaffney](http://fo.am) for help with the Apple builds
Mac note: As this software is not on the apple store, to run the Mac note: As this software is not on the apple store, to run the
binary you need to tell your mac it's ok: Go to System Preferences > binary you need to tell your mac it's ok: Go to System Preferences >
Security & Privacy > General. At the bottom of the window, select Security & Privacy > General. At the bottom of the window, select
"Allow apps to be downloaded from Anywhere". "Allow apps to be downloaded from Anywhere".
Windows note: Some people are reporting problems with windows 11.
# Old/broken/spurious binaries
* **Windows* *: [samplebrain_0.18_win.zip](https://static.thentrythis.org/samplebrain/samplebrain_0.18_win.zip)
* **Mac (intel)**: [samplebrain_0.18_macintel.zip](https://static.thentrythis.org/samplebrain/samplebrain_0.18_macintel.zip)
* **Mac (m1)**: [samplebrain_0.18_m1_v2.dmg](https://static.thentrythis.org/samplebrain/samplebrain_0.18_m1_v2.dmg)
**Linux install (Ubuntu)** **Linux install (Ubuntu)**
$ sudo add-apt-repository ppa:thentrythis/samplebrain $ sudo add-apt-repository ppa:thentrythis/samplebrain
@ -60,7 +67,7 @@ If you'd like the right font, optionally:
$ sudo apt install ttf-mscorefonts-installer $ sudo apt install ttf-mscorefonts-installer
# Building from source # Building from source
## Linux (Ubuntu)
Install libraries for the sample engine (use brew on mac, MinGW on win): Install libraries for the sample engine (use brew on mac, MinGW on win):
$ sudo apt install libsndfile1-dev portaudio19-dev liblo-dev libfftw3-dev $ sudo apt install libsndfile1-dev portaudio19-dev liblo-dev libfftw3-dev
@ -71,8 +78,28 @@ Install dependancies for the interface:
Build & run it: Build & run it:
$ cd app $ mkdir build
$ qmake $ cd build
$ qmake ..
$ make
$ sudo make install
$ samplebrain
## Mac
Install libraries for sample engine:
$ brew install fftw portaudio liblo
Install dependancies for the interface:
$ brew install qt
$ brew link qt
Build & run it:
$ mkdir build
$ cd build
$ qmake ..
$ make $ make
$ sudo make install $ sudo make install
$ samplebrain $ samplebrain
@ -81,9 +108,21 @@ Build & run it:
To make a mac app bundle: To make a mac app bundle:
* Run `macdeployqt` to copy all dependancies inside the app. Run `macdeployqt` to copy all dependencies 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. 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 ## 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 Type=Application
Name=Samplebrain Name=Samplebrain
Comment=A sample masher designed by Aphex Twin Comment=A sample masher designed by Aphex Twin
Exec=/usr/bin/samplebrain Exec=samplebrain
Icon=/usr/share/icons/hicolor/scalable/apps/samplebrain.svg Icon=samplebrain
Terminal=false Terminal=false
Categories=GNOME;Application; Categories=GNOME;Application;
StartupNotify=true StartupNotify=true

View File

@ -51,10 +51,15 @@ QMAKE_CXXFLAGS += -O3 -Wall -Wno-unused -std=c++11
# assets # assets
RESOURCES = app/samplebrain.qrc 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: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 unix:iconfile.files = desktop/samplebrain.svg
target.path = /usr/bin target.path = $$PREFIX/bin
INSTALLS += target desktopfile iconfile INSTALLS += target desktopfile iconfile