Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,24 @@ jobs:
working-directory: ${{ env.APP_DIR }}
run: 7z a -aoa -tzip ${{ env.ZIP_FILE_NAME }} ${{ matrix.app }}

# Run the packaged app away from the build tree, as a user would, so anything
# that only resolves on the build machine (e.g. a dylib rpath) fails here
# rather than in a published release.
- name: Smoke test the zip
shell: bash
run: |
# The macOS binary also has the build tree's rtcheck directory as an rpath,
# which exists on this runner but not on a user's machine, so hide it to
# make sure the dylib bundled in the app is the one that's found.
rtcheck_build="$PWD/${{ env.BUILD_DIR }}/_deps/rtcheck-build"
if [ -d "$rtcheck_build" ]; then mv "$rtcheck_build" "$rtcheck_build.hidden"; fi

mkdir -p "$RUNNER_TEMP/smoke"
7z x -y -o"$RUNNER_TEMP/smoke" "${{ env.APP_DIR }}/${{ env.ZIP_FILE_NAME }}" > /dev/null
cd "$RUNNER_TEMP/smoke"
chmod +x ${{ matrix.test-binary }}
${{ matrix.test-binary }} --version

- name: Upload zip files
uses: actions/upload-artifact@v4
with:
Expand Down
1 change: 1 addition & 0 deletions CHANGELIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
- Fixed false failures in the "Plugin state restoration" test where the first parameter was compared against the last value sent by a previous test rather than the plugin's own value
- Below strictness level 8, two-step (on/off) parameters are now only sent 0 or 1 when tests randomise parameter values. Arbitrary values are still sent to them at level 8 and above, and to all other parameters at every level
- Fixed the "Plugin state restoration" test's exact binary state comparison never running. It was documented as running at strictness level 8 and above but checked the test's own level instead of the run's
- Fixed the macOS app failing to start on any machine other than the one that built it ("Library not loaded: @rpath/librtcheck.dylib"); this affected the `v2.0.0-beta1` and `v2.0.0-beta2` releases
- Enabled the editor stress and extreme (real-time allocation / oversized block) tests that were present in the source tree but had not been compiled into the build

### 1.0.5
Expand Down
5 changes: 5 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,11 @@ if (PLUGINVAL_ENABLE_RTCHECK)
rtcheck)

if (APPLE)
# The dylib is copied into the app bundle (below), so also look for it there.
# Otherwise the only rpath is the build tree's, and the app only starts on the
# machine that built it.
set_target_properties(pluginval PROPERTIES BUILD_RPATH "@executable_path/../Libraries")

add_custom_command(TARGET pluginval POST_BUILD
COMMAND ${CMAKE_COMMAND} -E echo "Executable path: $<TARGET_FILE_DIR:pluginval>")
add_custom_command(TARGET pluginval POST_BUILD
Expand Down
Loading