Skip to content

Commit

Permalink
Merge pull request #274 from pianobooster/release/1.0.0
Browse files Browse the repository at this point in the history
Release v1.0.0 and includes URL changes for the new website.
  • Loading branch information
pianobooster authored Dec 13, 2020
2 parents acaa3a2 + 88cb14b commit 7749d7b
Show file tree
Hide file tree
Showing 241 changed files with 37,401 additions and 37,178 deletions.
123 changes: 123 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
name: Build

on: [push, pull_request]

jobs:
linux-build:
runs-on: ubuntu-18.04
steps:
- name: Checkout
uses: actions/[email protected]
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install build-essential cmake pkg-config libftgl-dev qtbase5-dev qttools5-dev librtmidi-dev fluid-soundfont-gm libfluidsynth-dev
- name: Install linuxdeploy
run: |
wget -q https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
wget -q https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
chmod +x linuxdeploy*.AppImage
- name: Define variables
run: |
pb_ver=`grep PB_VERSION src/version.h | cut -d "\"" -f 2`
pb_app_name="PianoBooster-${pb_ver}-x86_64"
echo "PB_VERSION=${pb_ver}">> $GITHUB_ENV
echo "PB_APP_NAME=${pb_app_name}">> $GITHUB_ENV
echo "PB_APP_NAME=${pb_app_name}"
- name: Build
env:
pb_app_name: ${{ env.PB_APP_NAME }}
run: |
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make -j$(nproc)
make install DESTDIR=AppDir
# Package
export QT_SELECT=5
export QML_SOURCES_PATHS="${GITHUB_WORKSPACE}"/src
# initialize AppDir, bundle shared libraries for PianoBooster, use Qt plugin to bundle additional resources, and build AppImage, all in one single command
../linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt --output appimage
find .
echo "Done!"
chmod +x *AppImage
mv *AppImage ../${pb_app_name}.AppImage
cd ..
ls -lh ${pb_app_name}.AppImage
md5sum ${pb_app_name}.AppImage >checksum.txt
cat checksum.txt
- name: Upload Linux Build
uses: actions/upload-artifact@v2
with:
name: pianobooster-${{ env.PB_VERSION }}-linux
path: |
${{ env.PB_APP_NAME }}.AppImage
checksum.txt
macos-build:
runs-on: macos-10.15
steps:
- name: Checkout
uses: actions/[email protected]
- name: Install dependencies
run: |
brew update || brew update
brew uninstall [email protected]
rm -rf /usr/local/etc/openssl
rm -rf /usr/local/etc/[email protected]
brew upgrade
brew install cmake qt5 ftgl pkg-config fluid-synth
- name: Define variables
run: |
pb_ver=`grep PB_VERSION src/version.h | cut -d "\"" -f 2`
pb_app_name="PianoBooster-${pb_ver}"
echo "PB_VERSION=${pb_ver}">> $GITHUB_ENV
echo "PB_APP_NAME=${pb_app_name}">> $GITHUB_ENV
echo "PB_APP_NAME=${pb_app_name}"
- name: Build
env:
pb_app_name: ${{ env.PB_APP_NAME }}
run: |
mkdir build
cd build
cmake .. -DCMAKE_PREFIX_PATH="$(brew --prefix qt)"
make
make install-translations
$(brew --prefix qt)/bin/macdeployqt build/pianobooster.app -dmg
find .
echo "Done!"
mv build/*dmg ../${pb_app_name}.dmg
cd ..
ls -lh ${pb_app_name}.dmg
md5 -r ${pb_app_name}.dmg > checksum.txt
cat checksum.txt
- name: Upload Mac Build
uses: actions/upload-artifact@v2
with:
name: pianobooster-${{ env.PB_VERSION }}-macos
path: |
${{ env.PB_APP_NAME }}.dmg
checksum.txt
# windows-build:
# runs-on: windows-latest
# steps:
# - name: Checkout
# uses: actions/[email protected]
# - name: Install dependencies
# uses: lukka/run-vcpkg@v4
# with:
# vcpkgDirectory: ${{ github.workspace }}/vcpkg
# vcpkgArguments: fluidsynth qt5-base qt5-tools freetype ftgl
# vcpkgGitUrl: 'https://github.com/microsoft/vcpkg.git'
# vcpkgGitCommitId: '56fffbe49dfb4dd8fae0940f272c5fd2b86be991'
# vcpkgTriplet: x64-windows
# - name:
# run: |
# mkdir build
# cd build
# cmake .. -DWITH_INTERNAL_FLUIDSYNTH=OFF -DCMAKE_TOOLCHAIN_FILE="${GITHUB_WORKSPACE}"/vcpkg/scripts/buildsystems/vcpkg.cmake
# cmake --build .
# find .
# shell: bash
#
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
/build*/
/debug*/

/release*/
CMakeLists.txt.user*
CMakeCache.txt
CMakeFiles/
Makefile
cmake_install.cmake
install_manifest.txt
100 changes: 55 additions & 45 deletions BUILD.md
Original file line number Diff line number Diff line change
@@ -1,90 +1,100 @@
# Linux and BSD Unix
# Build instructions for Linux and BSD Unix

Ensure that the build required packages are installed. Full list of them you can find [here](pkgs).
Ensure that the following packages are installed:
`build-essential`, `cmake`, `pkg-config`, `libftgl-dev`, `qtbase5-dev`, `qttools5-dev`, `librtmidi-dev` , `libfluidsynth-dev`, `fluid-soundfont-gm`

Then type:

`cmake .`

or
To generate a project makefile using CMake, create a build folder
and then run CMake from it:
```
$ mkdir build
$ cd build
$ cmake ..
```

`cmake . -DCMAKE_INSTALL_PREFIX="/usr"`
To compile the PianoBooster source code type:

`make`
`make -j$(nproc)`

Finally as root type:
The pianobooster binary executable is now in a new build subdirectory.
PianoBooster is designed to run in place so you can type `build/pianobooster` to start running the program.

`make install -C build`
(Optional) If you wish to install PianoBooster as root type:

(The pianobooster binary executable is now in the "build" subdirectory.)
`make install`

To build a debug version create a dir called "debug" and change to that dir and then type:
There is no make uninstall command but the files that have been installed are listed in a file called `install_manifest.txt` which can then be used to manually delete the installed files.

`cmake -DCMAKE_BUILD_TYPE=Debug .`
To build a debug version create a directory called "debug" and change to that dir and then type:

(Alternatively you can use qmake followed by make.)
`cmake -DCMAKE_BUILD_TYPE=Debug ..`

See [DEB](pkgs/deb) for more details.

See [RPM](pkgs/rpm/pianobooster.spec) for more details.
# Build instructions for macOS

See [ARCH](pkgs/arch/PKGBUILD) for more details.
Install the latest Xcode (from Apple Developer Connection, free registration required).

See [TGZ](pkgs/slack) for more details.
Install CMake and QT libraries via Homebrew:

# macOS
`$ brew install cmake qt5 ftgl pkg-config fluid-synth`

Install latest Xcode (from Apple Developer Connection, free registration required).
To generate the project makefile first create a `build` directory
and then from that directory type:

Install CMake and QT libraries via Homebrew:
`cmake .. -DCMAKE_PREFIX_PATH="$(brew --prefix qt)"`

`$ brew install cmake qt5 ftgl jack`
To compile the PianoBooster source code type:

`make`

Generate XCode project file via CMake:
To copy the language translations into the build directory type:

`$ cmake -G Xcode . -DCMAKE_PREFIX_PATH=$(brew --prefix qt)`
`make install-translations`

Open the project file in XCode, set whatever options you like (universal or single architecture,
debug or release etc.) and compile.

To make a self contained application bundle use QT's macdeployqt tool (included in QT 4.5.0).
To make a self contained application bundle use QT's macdeployqt tool (included in QT).

# Windows
`$(brew --prefix qt)/bin/macdeployqt build/pianobooster.app -dmg`

To compile in Windows install the Open Source version of Qt and CMake and optionally Geany.
When installing Qt select the option to download and install the MinGW compiler. Open the
Qt Command Prompt and then change to the "PianoBooster" directory and then type the
command below:

`"C:\Program Files\CMake 2.6\bin\cmake.exe" -G "MinGW Makefiles" .`

# Build instructions for Windows

To compile in Windows install the Open Source version of Qt and CMake.
When installing Qt select the option to download and install the MinGW compiler. Open the Qt Command Prompt and change to the "PianoBooster" source code directory and then create a `build` directory and then from that directory type:

`cmake.exe -G "MinGW Makefiles" ..`

Once this is completed type:

`make`

Or alternatively you can install QtCreator and then open the pianobooster.pro.
Or alternatively you can install QtCreator and then open the `CMakeLists.txt`.

# Build options

**USE_FTGL**: link with ftgl; enabled by default; disabling notes localization.
Using `cmake` without any flags defaults to the recommended build options.
However the following build options below can be changed by using the `-D` flag to `cmake`.

**WITH_INTERNAL_FLUIDSYNTH:** build with an internal FluidSynth sound generator [Default:ON]

**NO_DOCS**: do not install documents; disabled by default.
**USE_BUNDLED_RTMIDI:** Build with bundled rtmidi (for older distributions only) [Default: OFF]

**NO_LICENSE**: do not install license; disabled by default.
**USE_FTGL:** Build with ftgl for notes localization [Default:ON]

**NO_CHANGELOG**: do not install changelog; disabled by default.
**USE_SYSTEM_FONT:** Build with system font [Default: OFF]

**WITH_MAN**: install man page; disabled by default.
**USE_JACK:** Build with Jack. The use of JACK is not required other than for BSD Unix. [Default: OFF]

**INSTALL_ALL_LANGS**: install all languages; disabled by default for cmake and always enabled for qmake.
**DATA_DIR**: Build with specified data directory; [Default:"share/games/pianobooster"]

**USE_BUNDLED_RTMIDI**: build with bundled (not system) rtmidi. This is only required
for older distributions that do not include the system rtmidi; disabled by default.
**NO_LANGS**: Do not install languages; [Default: OFF]

**USE_SYSTEM_FONT**: do not use and do not install bundled font, use system font instead; enabled by default.
**NO_DOCS**: Do not install documents [Default: OFF]

**USE_FONT**: build with specified font; null by default.
**NO_LICENSE**: Do not install license [Default: OFF].

**DATA_DIR**: build with specified data directory; "share/games/pianobooster" is default.
**NO_CHANGELOG**: Do not install changelog [Default: OFF].

**NO_LANGS**: do not install languages; disabled by default.
**WITH_MAN**: Install man page [Default: OFF].
11 changes: 11 additions & 0 deletions Changelog.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
1.0.0 (13 Dec 2020)
- Integrated fluidsynth as a build option.
- Changes necessary for building an AppImage.
- Added <System Language> to the manual language selection.
- Fixes required for the Windows build
- Fixes required for the Mac OS build
- Now reads left and right hand parts if held in different MIDI tracks.
- Automaticity detects the left and right hand piano parts.
- Now defaults to enabling the option mute your part when playing.
- Added more space for notes at the top of the page.

v0.7.2b (25 Feb 2020)
- Fixed a problem that prevented a connected MIDI piano keyboard from working.
- cmake with no options now works correctly (cmake .. && make).
Expand Down
Loading

0 comments on commit 7749d7b

Please sign in to comment.