Merge pull request #1087 from michaelwillis/macos-installer
Mac OS Installer
This commit is contained in:
commit
fc1afb1480
28 changed files with 164 additions and 391 deletions
File diff suppressed because one or more lines are too long
68
.github/workflows/build.yml
vendored
68
.github/workflows/build.yml
vendored
|
|
@ -80,9 +80,12 @@ jobs:
|
|||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: cmake --build . --config "$BUILD_TYPE" -j 2 --target sfizz_tests
|
||||
- name: Test
|
||||
- name: Run tests
|
||||
shell: bash
|
||||
run: ${{runner.workspace}}/build/tests/sfizz_tests
|
||||
# Reenable with newer cmakes
|
||||
# working-directory: ${{runner.workspace}}/build
|
||||
# run: ctest -j 2 -C "$BUILD_TYPE" --output-on-failure
|
||||
- name: Build all
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
|
|
@ -98,6 +101,69 @@ jobs:
|
|||
name: Linux tarball
|
||||
path: ${{runner.workspace}}/build/${{env.install_name}}.tar.gz
|
||||
|
||||
build_for_macos:
|
||||
runs-on: macos-10.15
|
||||
steps:
|
||||
- name: Set install name
|
||||
run: |
|
||||
echo "install_ref=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
|
||||
echo "install_name=sfizz-${GITHUB_REF##*/}-macos" >> "$GITHUB_ENV"
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Create Build Environment
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}
|
||||
run: cmake -E make_directory build
|
||||
- name: Configure CMake
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: |
|
||||
cmake "$GITHUB_WORKSPACE" \
|
||||
-DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
|
||||
-DSFIZZ_AU=ON \
|
||||
-DSFIZZ_LV2=ON \
|
||||
-DSFIZZ_LV2_UI=ON \
|
||||
-DSFIZZ_VST=ON \
|
||||
-DSFIZZ_JACK=OFF \
|
||||
-DSFIZZ_TESTS=ON \
|
||||
-DSFIZZ_SHARED=OFF \
|
||||
-DSFIZZ_STATIC_DEPENDENCIES=OFF
|
||||
- name: Build tests
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: |
|
||||
cmake --build . --config "$BUILD_TYPE" -j 2 --target sfizz_tests
|
||||
- name: Run tests
|
||||
shell: bash
|
||||
run: ${{runner.workspace}}/build/tests/sfizz_tests
|
||||
# Reenable with newer cmakes
|
||||
# working-directory: ${{runner.workspace}}/build
|
||||
# run: ctest -j 2 -C "$BUILD_TYPE" --output-on-failure
|
||||
- name: Build plugins
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: cmake --build . --config "$BUILD_TYPE" -j 2
|
||||
- name: Package OSX bundles
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}
|
||||
run: ./sfizz/scripts/package-osx-bundles.sh
|
||||
- name: Create OSX installer
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: |
|
||||
productbuild \
|
||||
--distribution $GITHUB_WORKSPACE/scripts/plugin.pkg/package.xml \
|
||||
--identifier "sfz.tools.sfizz" \
|
||||
--package-path "${{runner.workspace}}/build" \
|
||||
--version 0 \
|
||||
${{env.install_name}}.pkg
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: MacOS installer
|
||||
path: |
|
||||
${{runner.workspace}}/build/${{env.install_name}}.pkg
|
||||
|
||||
build_for_mod:
|
||||
runs-on: ubuntu-18.04
|
||||
container:
|
||||
|
|
|
|||
68
.travis.yml
68
.travis.yml
|
|
@ -1,68 +0,0 @@
|
|||
language: cpp
|
||||
os: linux
|
||||
dist: bionic
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- vst/download/
|
||||
|
||||
jobs:
|
||||
include:
|
||||
- name: "Linux arm64 test and build"
|
||||
arch: arm64-graviton2
|
||||
group: edge
|
||||
virt: lxd
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libjack-jackd2-dev
|
||||
- libsndfile1-dev
|
||||
- libcairo2-dev
|
||||
- libfontconfig1-dev
|
||||
- libx11-xcb-dev
|
||||
- libxcb-util-dev
|
||||
- libxcb-cursor-dev
|
||||
- libxcb-xkb-dev
|
||||
- libxkbcommon-dev
|
||||
- libxkbcommon-x11-dev
|
||||
- libxcb-keysyms1-dev
|
||||
install: .travis/download_cmake.sh
|
||||
script: .travis/script_test_and_build.sh
|
||||
|
||||
- name: "Linux arm64 static plugins"
|
||||
arch: arm64-graviton2
|
||||
group: edge
|
||||
virt: lxd
|
||||
env:
|
||||
- INSTALL_DIR="sfizz-plugins-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}"
|
||||
- ENABLE_VST_PLUGIN=OFF
|
||||
- ENABLE_LV2_UI=OFF
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libjack-jackd2-dev
|
||||
- libsndfile1-dev
|
||||
install:
|
||||
- .travis/download_cmake.sh
|
||||
- .travis/download_static_libs.sh
|
||||
script: .travis/script_plugins.sh
|
||||
after_success: .travis/prepare_tarball.sh
|
||||
|
||||
- name: "Discord Webhook"
|
||||
install: skip
|
||||
script: bash ${TRAVIS_BUILD_DIR}/.travis/discord_webhook.sh success
|
||||
|
||||
# Signal discord on failure
|
||||
after_failure:
|
||||
- bash ${TRAVIS_BUILD_DIR}/.travis/discord_webhook.sh failure
|
||||
|
||||
deploy:
|
||||
edge: true
|
||||
provider: releases
|
||||
file: "${INSTALL_DIR}.tar.gz"
|
||||
token:
|
||||
secure: jBIMWMPva8OazC8Wnqc2vqATa3exjvGDGvejEu6fgwt/BMDkgJCsJ7gS3ITpYFuO0HoHtLGfTVrFcZIE+agGVRdRGRni5xZRp5Vuf9hvLf8hCTaxkS/HYoliYYPp9FLY6J4yq9mp/R/QyGrwgssQEjhYlI2GL4+lJzt750AcmYibnQo2AMe5SSOp3q8KdLBG1vca1o1BZWBhW/S7l2hA1aJ7y1ytwm0ETIdrTZHxgfz7bqdqQcw/Ytqjm1rgzty6iQKX3B/InaZNB6CqXy6FoGLf771lery8nWJbjTjKYD4QK2NelExldyp1vrdHGvknWguFk+8vlQ16Dt0+R7Byr/LOPRLTCf/T+IehMQGtVA9/gjrkH8LqHy9oVFB+33p11gGu3h6hvg7yB6z3sSck0u4FHjrlpNd5XmmCsKQVQ9vI1cPPkVkbMHIewc7uOu+bD6cmotFj1vJ9UYesvN6n4siyCiPOIhgV9++bjcyiLqX3DWP5UWyZ9/VT8bz5VcxUdJnEYtdNPx4x5pRW4081VUjIf2EmHhQTrjb1iz6FAGwNU/fpefA8x+bBxXP9MkFFgU0tbCDKw2y6o0GOXX82mZr/IB0/DIBg7UllTzCBKTuiJQV1prFPlZLc6V22H5ozAXHgu3E+qNjvHoMsoYjGssX3+AYHwu8isBINo/gGo6Y=
|
||||
on:
|
||||
repo: "sfztools/sfizz"
|
||||
tags: true
|
||||
condition: ${TRAVIS_TAG} =~ ^v?[0-9]
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
# Travis Webhook
|
||||
wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh
|
||||
chmod +x send.sh
|
||||
./send.sh ${1} ${WEBHOOK_URL}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
cmake_dir="cmake-3.13.0-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}"
|
||||
cmake_arc="${cmake_dir}.tar.gz"
|
||||
cmake_url="https://github.com/sfztools/cmake/releases/download/${TRAVIS_OS_NAME}/${cmake_arc}"
|
||||
|
||||
wget -q ${cmake_url}
|
||||
tar xzf ${cmake_arc}
|
||||
cd ${TRAVIS_BUILD_DIR}/${cmake_dir}
|
||||
sudo cp bin/* /usr/local/bin/
|
||||
sudo cp -r share/* /usr/local/share/
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
wget -q https://github.com/sfztools/sndfile-libraries/releases/download/${TRAVIS_OS_NAME}/sndfile-libraries-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}.tar.gz
|
||||
tar xf sndfile-libraries-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}.tar.gz
|
||||
sudo cp -R sndfile-libraries-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}/usr /
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
cd build
|
||||
make DESTDIR=${PWD}/${INSTALL_DIR} install
|
||||
tar -zcvf "${INSTALL_DIR}.tar.gz" ${INSTALL_DIR}
|
||||
|
||||
# Only release a tarball if there is a tag
|
||||
if [[ ${TRAVIS_TAG} != "" ]] && [[ ${DEPLOY_BUILD} ]]; then
|
||||
mv "${INSTALL_DIR}.tar.gz" ${TRAVIS_BUILD_DIR}
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
mkdir -p build/${INSTALL_DIR} && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release \
|
||||
-DSFIZZ_LV2=OFF \
|
||||
-DSFIZZ_VST=OFF \
|
||||
-DSFIZZ_TESTS=OFF \
|
||||
-DCMAKE_CXX_STANDARD=17 \
|
||||
..
|
||||
make -j2
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
mkdir -p build/${INSTALL_DIR} && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release \
|
||||
-DSFIZZ_JACK=OFF \
|
||||
-DSFIZZ_VST="$ENABLE_VST_PLUGIN" \
|
||||
-DSFIZZ_LV2_UI="$ENABLE_LV2_UI" \
|
||||
-DSFIZZ_TESTS=OFF \
|
||||
-DSFIZZ_SHARED=OFF \
|
||||
-DSFIZZ_STATIC_DEPENDENCIES=ON \
|
||||
-DCMAKE_CXX_STANDARD=17 \
|
||||
..
|
||||
make -j2
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release \
|
||||
-DSFIZZ_JACK=ON \
|
||||
-DSFIZZ_VST=ON \
|
||||
-DSFIZZ_LV2_UI=ON \
|
||||
-DSFIZZ_TESTS=ON \
|
||||
-DSFIZZ_SHARED=OFF \
|
||||
-DSFIZZ_STATIC_DEPENDENCIES=OFF \
|
||||
-DSFIZZ_LV2=ON \
|
||||
-DCMAKE_CXX_STANDARD=17 \
|
||||
..
|
||||
make -j2 sfizz_tests
|
||||
tests/sfizz_tests
|
||||
make -j2 sfizz_jack
|
||||
make -j2 sfizz_render
|
||||
make -j2 sfizz_lv2
|
||||
make -j2 sfizz_lv2_ui
|
||||
make -j2 sfizz_vst3
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
# sfizz
|
||||
|
||||
[![Travis Build Status]](https://travis-ci.com/sfztools/sfizz)
|
||||
[![AppVeyor Build Status]](https://ci.appveyor.com/project/sfztools/sfizz)
|
||||

|
||||
|
||||
[![Discord Badge Image]](https://discord.gg/3ArE9Mw)
|
||||
[![SFZv1 Status Image]](https://sfz.tools/sfizz/development/status/opcodes/?v=1)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
set(VSTPLUGIN_NAME "sfizz")
|
||||
set(VSTPLUGIN_VENDOR "Paul Ferrand")
|
||||
set(VSTPLUGIN_VENDOR "SFZTools")
|
||||
set(VSTPLUGIN_URL "http://sfztools.github.io/sfizz")
|
||||
set(VSTPLUGIN_EMAIL "paul@ferrand.cc")
|
||||
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@ public:
|
|||
memSize_ = numOutputs % 4 == 0 ? numOutputs * sizeof(float) : (numOutputs / 4 + 1) * 4 * sizeof(float);
|
||||
#ifdef _WIN32
|
||||
mem_ = (float *)_aligned_malloc(memSize_, 4 * sizeof(float));
|
||||
#elif __APPLE__
|
||||
mem_ = (float *)malloc(memSize_); // Should be 16 aligned
|
||||
#else
|
||||
mem_ = (float *)aligned_alloc(4 * sizeof(float), memSize_);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1042,7 +1042,7 @@ void Editor::Impl::createFrameContents()
|
|||
return panel;
|
||||
};
|
||||
|
||||
auto createCheckbox = [this, &palette](const CRect& bounds, int tag, const char* label, CHoriTxtAlign, int) {
|
||||
auto createCheckbox = [this](const CRect& bounds, int tag, const char* label, CHoriTxtAlign, int) {
|
||||
auto* checkbox = new CCheckBox(bounds, this, tag, label);
|
||||
return checkbox;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -25,10 +25,10 @@ protected:
|
|||
void onKeyboardEvent(KeyboardEvent& event, CFrame* frame) override;
|
||||
void onMouseEvent(MouseEvent& event, CFrame* frame) override;
|
||||
#else
|
||||
int32_t onKeyDown(const VstKeyCode&, CFrame*) { return enabled_ ? -1 : 1; }
|
||||
int32_t onKeyUp(const VstKeyCode&, CFrame*) { return enabled_ ? -1 : 1; }
|
||||
CMouseEventResult onMouseMoved(CFrame*, const CPoint&, const CButtonState&) { return enabled_ ? kMouseEventNotHandled : kMouseEventHandled; }
|
||||
CMouseEventResult onMouseDown(CFrame*, const CPoint&, const CButtonState&) { return enabled_ ? kMouseEventNotHandled : kMouseEventHandled; }
|
||||
int32_t onKeyDown(const VstKeyCode&, CFrame*) override { return enabled_ ? -1 : 1; }
|
||||
int32_t onKeyUp(const VstKeyCode&, CFrame*) override { return enabled_ ? -1 : 1; }
|
||||
CMouseEventResult onMouseMoved(CFrame*, const CPoint&, const CButtonState&) override { return enabled_ ? kMouseEventNotHandled : kMouseEventHandled; }
|
||||
CMouseEventResult onMouseDown(CFrame*, const CPoint&, const CButtonState&) override { return enabled_ ? kMouseEventNotHandled : kMouseEventHandled; }
|
||||
#endif
|
||||
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -244,9 +244,10 @@ elseif(SFIZZ_AU)
|
|||
set(SFIZZ_AU_BUNDLE_IDENTIFIER "tools.sfz.sfizz.au")
|
||||
set(SFIZZ_AU_BUNDLE_TYPE "aumu")
|
||||
set(SFIZZ_AU_BUNDLE_SUBTYPE "samp")
|
||||
set(SFIZZ_AU_BUNDLE_MANUFACTURER "Sfzt")
|
||||
set(SFIZZ_AU_BUNDLE_MANUFACTURER "sfzt")
|
||||
set(SFIZZ_AU_BUNDLE_AUTHOR "SFZTools")
|
||||
math(EXPR SFIZZ_AU_DECIMAL_VERSION
|
||||
"${PROJECT_VERSION_MAJOR}*10000 + ${PROJECT_VERSION_MINOR}*100 + ${PROJECT_VERSION_PATCH}")
|
||||
"${PROJECT_VERSION_MAJOR}*256*256 + ${PROJECT_VERSION_MINOR}*256 + ${PROJECT_VERSION_PATCH}")
|
||||
execute_process(
|
||||
COMMAND "sh" "-c" "echo 'obase=16;${SFIZZ_AU_DECIMAL_VERSION}' | bc"
|
||||
OUTPUT_VARIABLE SFIZZ_AU_HEXADECIMAL_VERSION
|
||||
|
|
|
|||
|
|
@ -655,44 +655,44 @@ bool SfizzVstProcessor::processUpdate(FUnknown* changedUnknown, int32 message)
|
|||
}
|
||||
|
||||
if (OSCUpdate* update = FCast<OSCUpdate>(changedUnknown)) {
|
||||
if (IPtr<Vst::IMessage> message = update->convertToMessage(this))
|
||||
sendMessage(message);
|
||||
if (IPtr<Vst::IMessage> msg = update->convertToMessage(this))
|
||||
sendMessage(msg);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (PlayStateUpdate* update = FCast<PlayStateUpdate>(changedUnknown)) {
|
||||
if (IPtr<Vst::IMessage> message = update->convertToMessage(this))
|
||||
sendMessage(message);
|
||||
if (IPtr<Vst::IMessage> msg = update->convertToMessage(this))
|
||||
sendMessage(msg);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (NoteUpdate* update = FCast<NoteUpdate>(changedUnknown)) {
|
||||
if (IPtr<Vst::IMessage> message = update->convertToMessage(this))
|
||||
sendMessage(message);
|
||||
if (IPtr<Vst::IMessage> msg = update->convertToMessage(this))
|
||||
sendMessage(msg);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (SfzUpdate* update = FCast<SfzUpdate>(changedUnknown)) {
|
||||
if (IPtr<Vst::IMessage> message = update->convertToMessage(this))
|
||||
sendMessage(message);
|
||||
if (IPtr<Vst::IMessage> msg = update->convertToMessage(this))
|
||||
sendMessage(msg);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (SfzDescriptionUpdate* update = FCast<SfzDescriptionUpdate>(changedUnknown)) {
|
||||
if (IPtr<Vst::IMessage> message = update->convertToMessage(this))
|
||||
sendMessage(message);
|
||||
if (IPtr<Vst::IMessage> msg = update->convertToMessage(this))
|
||||
sendMessage(msg);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (ScalaUpdate* update = FCast<ScalaUpdate>(changedUnknown)) {
|
||||
if (IPtr<Vst::IMessage> message = update->convertToMessage(this))
|
||||
sendMessage(message);
|
||||
if (IPtr<Vst::IMessage> msg = update->convertToMessage(this))
|
||||
sendMessage(msg);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (AutomationUpdate* update = FCast<AutomationUpdate>(changedUnknown)) {
|
||||
if (IPtr<Vst::IMessage> message = update->convertToMessage(this))
|
||||
sendMessage(message);
|
||||
if (IPtr<Vst::IMessage> msg = update->convertToMessage(this))
|
||||
sendMessage(msg);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
<key>manufacturer</key>
|
||||
<string>@SFIZZ_AU_BUNDLE_MANUFACTURER@</string>
|
||||
<key>name</key>
|
||||
<string>@SFIZZ_AU_BUNDLE_MANUFACTURER@: @PROJECT_NAME@</string>
|
||||
<string>@SFIZZ_AU_BUNDLE_AUTHOR@: @PROJECT_NAME@</string>
|
||||
<key>sandboxSafe</key>
|
||||
<true/>
|
||||
<key>type</key>
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
#define kAudioUnitBundleIdentifier @SFIZZ_AU_BUNDLE_IDENTIFIER@
|
||||
#define kAudioUnitVersion 0x@SFIZZ_AU_HEXADECIMAL_VERSION@
|
||||
#define kAUPluginName @SFIZZ_AU_BUNDLE_MANUFACTURER@: @PROJECT_NAME@
|
||||
#define kAUPluginName @SFIZZ_AU_BUNDLE_AUTHOR@: @PROJECT_NAME@
|
||||
#define kAUPluginDescription @PROJECT_NAME@
|
||||
#define kAUPluginType @SFIZZ_AU_BUNDLE_TYPE@
|
||||
#define kAUPluginSubType @SFIZZ_AU_BUNDLE_SUBTYPE@
|
||||
#define kAUPluginManufacturer @SFIZZ_AU_BUNDLE_MANUFACTURER@
|
||||
|
||||
#define kAudioUnitName "@SFIZZ_AU_BUNDLE_MANUFACTURER@: @PROJECT_NAME@"
|
||||
#define kAudioUnitName "@SFIZZ_AU_BUNDLE_AUTHOR@: @PROJECT_NAME@"
|
||||
#define kAudioUnitDescription "@PROJECT_NAME@"
|
||||
#define kAudioUnitType '@SFIZZ_AU_BUNDLE_TYPE@'
|
||||
#define kAudioUnitComponentSubType '@SFIZZ_AU_BUNDLE_SUBTYPE@'
|
||||
|
|
|
|||
|
|
@ -1,75 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
make DESTDIR=${PWD}/${INSTALL_DIR} install
|
||||
|
||||
# Set bundle icons
|
||||
# Note: disabled, rejected by the code-sign step
|
||||
if false; then
|
||||
bundle_icns=/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/KEXT.icns
|
||||
for bundle in sfizz.vst3 sfizz.component sfizz.lv2; do
|
||||
fileicon set "${INSTALL_DIR}"/"$bundle" "$bundle_icns"
|
||||
done
|
||||
fi
|
||||
|
||||
# Perform code-signing
|
||||
if test -z "${CODESIGN_PASSWORD}"; then
|
||||
echo "! Secrets not available, skip code-signing"
|
||||
else
|
||||
# unlock the keychain
|
||||
security unlock-keychain -p dummypasswd build.keychain
|
||||
# code-sign VST3 and dylibs
|
||||
codesign --sign "${CODESIGN_IDENTITY}" --deep --keychain build.keychain --force --verbose \
|
||||
"${INSTALL_DIR}"/sfizz.vst3
|
||||
# code-sign AudioUnit and dylibs
|
||||
codesign --sign "${CODESIGN_IDENTITY}" --deep --keychain build.keychain --force --verbose \
|
||||
"${INSTALL_DIR}"/sfizz.component
|
||||
# code-sign LV2 and dylibs (note: manual, LV2 are not real bundles)
|
||||
codesign --sign "${CODESIGN_IDENTITY}" --keychain build.keychain --force --verbose \
|
||||
"${INSTALL_DIR}"/sfizz.lv2/Contents/Binary/*.so
|
||||
if ls "${INSTALL_DIR}"/sfizz.lv2/Contents/Frameworks/*.dylib &> /dev/null; then
|
||||
codesign --sign "${CODESIGN_IDENTITY}" --keychain build.keychain --force --verbose \
|
||||
"${INSTALL_DIR}"/sfizz.lv2/Contents/Frameworks/*.dylib
|
||||
fi
|
||||
# code-sign Puredata and dylibs
|
||||
codesign --sign "${CODESIGN_IDENTITY}" --keychain build.keychain --force --verbose \
|
||||
"${INSTALL_DIR}"/Puredata/*/*.pd_darwin
|
||||
if ls "${INSTALL_DIR}"/Puredata/*/*.dylib &> /dev/null; then
|
||||
codesign --sign "${CODESIGN_IDENTITY}" --keychain build.keychain --force --verbose \
|
||||
"${INSTALL_DIR}"/Puredata/*/*.dylib
|
||||
fi
|
||||
fi
|
||||
|
||||
# Create the DMG
|
||||
cat > sfizz-dmg.json << EOF
|
||||
{
|
||||
"title": "sfizz",
|
||||
"background": "${APPVEYOR_BUILD_FOLDER}/mac/dmg-back.png",
|
||||
"window": {
|
||||
"size": { "width": 650, "height": 500 }
|
||||
},
|
||||
"contents": [
|
||||
{ "x": 100, "y": 50, "type": "file", "path": "${INSTALL_DIR}/sfizz.vst3" },
|
||||
{ "x": 250, "y": 50, "type": "file", "path": "${INSTALL_DIR}/sfizz.component" },
|
||||
{ "x": 400, "y": 50, "type": "file", "path": "${INSTALL_DIR}/sfizz.lv2" },
|
||||
{ "x": 550, "y": 50, "type": "file", "path": "${INSTALL_DIR}/Puredata" },
|
||||
{ "x": 100, "y": 400, "type": "link", "path": "/Library/Audio/Plug-Ins/VST3" },
|
||||
{ "x": 250, "y": 400, "type": "link", "path": "/Library/Audio/Plug-Ins/Components" },
|
||||
{ "x": 400, "y": 400, "type": "link", "path": "/Library/Audio/Plug-Ins/LV2" }
|
||||
]
|
||||
}
|
||||
EOF
|
||||
~/node_modules/appdmg/bin/appdmg.js sfizz-dmg.json "${INSTALL_DIR}.dmg"
|
||||
|
||||
# Code-sign the DMG
|
||||
if test ! -z "${CODESIGN_PASSWORD}"; then
|
||||
security unlock-keychain -p dummypasswd build.keychain
|
||||
codesign --sign "${CODESIGN_IDENTITY}" --keychain build.keychain --force --verbose "${INSTALL_DIR}.dmg"
|
||||
fi
|
||||
|
||||
# Only release a tarball if there is a tag
|
||||
if [[ ${APPVEYOR_REPO_TAG} ]]; then
|
||||
mv "${INSTALL_DIR}.dmg" ${APPVEYOR_BUILD_FOLDER}
|
||||
fi
|
||||
|
||||
cd ${APPVEYOR_BUILD_FOLDER}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
git submodule update --init --recursive
|
||||
mkdir -p build/${INSTALL_DIR} && cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
|
||||
-DSFIZZ_VST=ON \
|
||||
-DSFIZZ_AU=ON \
|
||||
-DSFIZZ_PUREDATA=ON \
|
||||
-DSFIZZ_RENDER=OFF \
|
||||
-DSFIZZ_SHARED=OFF \
|
||||
-DSFIZZ_TESTS=ON \
|
||||
-DCMAKE_CXX_STANDARD=14 \
|
||||
-DLV2PLUGIN_INSTALL_DIR=/ \
|
||||
-DVSTPLUGIN_INSTALL_DIR=/ \
|
||||
-DAUPLUGIN_INSTALL_DIR=/ \
|
||||
-DPDPLUGIN_INSTALL_DIR=/Puredata \
|
||||
..
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
# do not `set -x` until after processing the secrets
|
||||
|
||||
# -- secret --
|
||||
echo "* Set up code-signing"
|
||||
|
||||
if test -z "${CODESIGN_PASSWORD}"; then
|
||||
echo "! Secrets not available, skip code-signing"
|
||||
else
|
||||
echo "1. Extract PKCS12"
|
||||
echo "${CODESIGN_P12}" | base64 -D -o codesign.p12
|
||||
stat codesign.p12
|
||||
echo "2. Extract CA certificate"
|
||||
echo "${SFZTOOLS_CRT}" | base64 -D -o sfztools.crt
|
||||
stat sfztools.crt
|
||||
|
||||
echo "3. Create a new keychain"
|
||||
security create-keychain -p dummypasswd build.keychain
|
||||
echo "4. Configure the new keychain as default"
|
||||
security default-keychain -s build.keychain
|
||||
echo "5. Unlock the new keychain"
|
||||
security unlock-keychain -p dummypasswd build.keychain
|
||||
|
||||
echo "6. Import the code-signing key pair"
|
||||
security import codesign.p12 -k build.keychain -P "${CODESIGN_PASSWORD}" -T /usr/bin/codesign
|
||||
rm -f codesign.p12
|
||||
echo "7. Import the trusted CA certificate"
|
||||
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain sfztools.crt
|
||||
rm -f sfztools.crt
|
||||
|
||||
echo "8. Set up the code-signing ACL"
|
||||
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k dummypasswd build.keychain
|
||||
|
||||
echo "9. Check the code-signing identity"
|
||||
security find-identity -p codesigning build.keychain
|
||||
fi
|
||||
# -- /secret --
|
||||
|
||||
set -x
|
||||
|
||||
# -- Install if necessary; only if using external libraries (eg. jack, sndfile)
|
||||
#brew install dylibbundler
|
||||
|
||||
cd ~; npm install appdmg; cd -
|
||||
~/node_modules/appdmg/bin/appdmg.js --version
|
||||
40
scripts/package-osx-bundles.sh
Executable file
40
scripts/package-osx-bundles.sh
Executable file
|
|
@ -0,0 +1,40 @@
|
|||
#!/bin/bash
|
||||
# Adapted from Distrho's package-osx-bundles.sh script
|
||||
|
||||
set -e
|
||||
|
||||
if [ -d build ]; then
|
||||
cd build
|
||||
else
|
||||
echo "Please run this script from the root folder"
|
||||
exit
|
||||
fi
|
||||
|
||||
rm -rf au
|
||||
rm -rf lv2
|
||||
rm -rf vst3
|
||||
|
||||
mkdir au lv2 vst3
|
||||
mv sfizz.component au/
|
||||
mv sfizz.lv2 lv2/
|
||||
mv sfizz.vst3 vst3/
|
||||
|
||||
pkgbuild \
|
||||
--identifier "sfz.tools.sfizz.au.bundle" \
|
||||
--install-location "/Library/Audio/Plug-Ins/Components/" \
|
||||
--root "${PWD}/au/" \
|
||||
sfz-tools-sfizz-au-bundle.pkg
|
||||
|
||||
pkgbuild \
|
||||
--identifier "sfz.tools.sfizz.lv2.bundle" \
|
||||
--install-location "/Library/Audio/Plug-Ins/LV2/" \
|
||||
--root "${PWD}/lv2/" \
|
||||
sfz-tools-sfizz-lv2-bundle.pkg
|
||||
|
||||
pkgbuild \
|
||||
--identifier "sfz.tools.sfizz.vst3.bundle" \
|
||||
--install-location "/Library/Audio/Plug-Ins/VST3/" \
|
||||
--root "${PWD}/vst3/" \
|
||||
sfz-tools-sfizz-vst3-bundle.pkg
|
||||
|
||||
cd ..
|
||||
22
scripts/plugin.pkg/package.xml
Normal file
22
scripts/plugin.pkg/package.xml
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<installer-gui-script minSpecVersion="1">
|
||||
<title>sfizz</title>
|
||||
<domains enable_anywhere="false" enable_currentUserHome="false" enable_localSystem="true"/>
|
||||
<options customize="always" hostArchitectures="x86_64" require-scripts="false" rootVolumeOnly="true"/>
|
||||
<pkg-ref id="sfz.tools.sfizz"/>
|
||||
<welcome file="welcome.txt" mime-type="text/plain"/>
|
||||
<choice id="sfz.tools.sfizz.au" title="AU" description="Install AU plugin" visible="true">
|
||||
<pkg-ref id="sfz.tools.sfizz.au.bundle" version="0">sfz-tools-sfizz-au-bundle.pkg</pkg-ref>
|
||||
</choice>
|
||||
<choice id="sfz.tools.sfizz.lv2" title="LV2" description="Install LV2 plugins" visible="true">
|
||||
<pkg-ref id="sfz.tools.sfizz.lv2.bundle" version="0">sfz-tools-sfizz-lv2-bundle.pkg</pkg-ref>
|
||||
</choice>
|
||||
<choice id="sfz.tools.sfizz.vst3" title="VST3" description="Install VST3 plugins" visible="true">
|
||||
<pkg-ref id="sfz.tools.sfizz.vst3.bundle" version="0">sfz-tools-sfizz-vst3-bundle.pkg</pkg-ref>
|
||||
</choice>
|
||||
<choices-outline>
|
||||
<line choice="sfz.tools.sfizz.au"/>
|
||||
<line choice="sfz.tools.sfizz.lv2"/>
|
||||
<line choice="sfz.tools.sfizz.vst3"/>
|
||||
</choices-outline>
|
||||
</installer-gui-script>
|
||||
3
scripts/plugin.pkg/welcome.txt
Normal file
3
scripts/plugin.pkg/welcome.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
OSX installer for sfizz
|
||||
|
||||
sfizz is a sample-based musical synthesizer.
|
||||
|
|
@ -300,6 +300,7 @@ int sfz::MidiState::getProgram() const noexcept
|
|||
|
||||
void sfz::MidiState::programChangeEvent(int delay, int program) noexcept
|
||||
{
|
||||
UNUSED(delay);
|
||||
ASSERT(program >= 0 && program <= 127);
|
||||
currentProgram = program;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -293,7 +293,7 @@ void Parser::processOpcode()
|
|||
// If we're parsing a base64 data field, ignore comments and process until the next header/directive
|
||||
if (nameExpanded == "base64data") {
|
||||
std::string valueRaw;
|
||||
reader.extractWhile(&valueRaw, [&reader](char c) {
|
||||
reader.extractWhile(&valueRaw, [&](char c) {
|
||||
if (c == '<' || c == '#')
|
||||
return false;
|
||||
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ void gainSSE(const float* gain, const float* input, float* output, unsigned size
|
|||
|
||||
#if SFIZZ_HAVE_SSE2
|
||||
const auto* lastAligned = prevAligned<ByteAlignment>(sentinel);
|
||||
while (unaligned<ByteAlignment>(input, output) && output < lastAligned)
|
||||
while (unaligned<ByteAlignment>(input, output, gain) && output < lastAligned)
|
||||
*output++ = (*gain++) * (*input++);
|
||||
|
||||
while (output < lastAligned) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue