Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generate PDFs on CI #274

Merged
merged 36 commits into from
Mar 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
fa63bee
Update gitignore for temp codesigning artefacts
firthm01 Mar 14, 2024
70c8ffe
Look for setup files in setup app bundle
firthm01 Mar 14, 2024
166983f
Don't require hyphen before "tweak" portion of version tag
firthm01 Mar 15, 2024
0c60a7a
Update changelog and release process
firthm01 Mar 15, 2024
926a08d
Update readmes and license
firthm01 Mar 15, 2024
7155b52
Setup app icon (MacOS)
firthm01 Mar 15, 2024
87af62a
Collate a list of EPS VST targets
firthm01 Mar 17, 2024
86da81e
Copy setup resources in to bundle as post build step
firthm01 Mar 17, 2024
d09c41b
Update packaging install locations
firthm01 Mar 17, 2024
7b1680f
Try install components to app resources during packaging
firthm01 Mar 18, 2024
bb24cda
Correct install paths
firthm01 Mar 18, 2024
dc04001
Fix setup install path on macos when packaging
firthm01 Mar 18, 2024
2b26eb1
Correct "Content" in paths
firthm01 Mar 18, 2024
bef3c71
Correct path for readmes and license on macos
firthm01 Mar 18, 2024
ece886d
Don't forget proj upgrade tools
firthm01 Mar 18, 2024
05e7396
Don't forget Templates (and general tidy)
firthm01 Mar 18, 2024
ce3b897
Codesigning status
firthm01 Mar 18, 2024
6cb5d2b
Merge branch 'translocation-fix' of github.com:ebu/ear-production-sui…
firthm01 Mar 18, 2024
e21b6e2
Update codesign.py paths
firthm01 Mar 18, 2024
6de4863
Update comment
firthm01 Mar 19, 2024
56a1b23
Revert "Update comment"
firthm01 Mar 19, 2024
bd911d5
Use common target_sources call for setup
firthm01 Mar 19, 2024
976ea2e
Fix tab/space mess
firthm01 Mar 19, 2024
f8afca7
Avoid passing up var by using CACHE INTERNAL
firthm01 Mar 19, 2024
3f87ba4
Update build.yml
firthm01 Mar 18, 2024
e293fc0
Gen readme.md and run pdf action
firthm01 Mar 18, 2024
6bd0c54
Fix extra hyphen
firthm01 Mar 18, 2024
455b391
Make ls work in powershell
firthm01 Mar 18, 2024
be0fe19
Do doc gen as seperate job
firthm01 Mar 18, 2024
5f21767
Silly mistake
firthm01 Mar 18, 2024
82f2b22
rm extra hyphen
firthm01 Mar 18, 2024
435181d
Simplify build.yml for debugging
firthm01 Mar 18, 2024
24d44b4
Del existing PDFs to prove working
firthm01 Mar 18, 2024
a821f20
Try implement pdf DL from other jobs
firthm01 Mar 18, 2024
8b08d00
Try fix artefact DL
firthm01 Mar 18, 2024
ef498ef
Tidies
firthm01 Mar 18, 2024
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
52 changes: 47 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,38 @@ on:
- '*'

jobs:
gendocs:
name: Generate PDF Documents
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Generate readme.md from readme.md.in
shell: cmake -P {0}
run: |
file(READ CHANGELOG.md CHANGELOG ENCODING UTF-8)
configure_file(packaging/README.md.in packaging/README.md @ONLY)

- name: Generate PDFs
uses: baileyjm02/markdown-to-pdf@v1
with:
input_dir: packaging
output_dir: packaging/pdfs
build_html: false

- name: Upload PDFs
uses: actions/upload-artifact@v2
with:
name: pdfs
path: packaging/pdfs

build:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
needs: gendocs
env:
CCACHE_WIN_VERSION: 4.2.1
CCACHE_DIR: ${{ github.workspace }}/.ccache
Expand Down Expand Up @@ -72,7 +101,15 @@ jobs:
with:
submodules: recursive
fetch-depth: 0


- name: Download generated PDFs
uses: actions/download-artifact@v2
with:
name: 'pdfs'
path: packaging
- name: Display structure of downloaded files
run: ls packaging

- name: 'Install ninja-build tool.'
uses: seanmiddleditch/gha-setup-ninja@v3

Expand Down Expand Up @@ -147,9 +184,14 @@ jobs:
file(TO_CMAKE_PATH "$ENV{RUNNER_WORKSPACE}" RUNNER_WORKSPACE)
set(INSTALL_DIR "${NAME_NO_SPACES}")
file(TO_NATIVE_PATH "${RUNNER_WORKSPACE}/${INSTALL_DIR}" PREFIX)
file(APPEND "$ENV{GITHUB_OUTPUT}" "install_prefix=${PREFIX}\n")
file(APPEND "$ENV{GITHUB_OUTPUT}" "install_prefix_setup=${PREFIX}\n")
file(APPEND "$ENV{GITHUB_OUTPUT}" "install_dir=${INSTALL_DIR}\n")

if(APPLE)
file(APPEND "$ENV{GITHUB_OUTPUT}" "install_prefix=${PREFIX}/Setup\ EAR\ Production\ Suite.app/Contents/Resources\n")
else()
file(APPEND "$ENV{GITHUB_OUTPUT}" "install_prefix=${PREFIX}\n")
endif()

- name: 'Windows: set up developer environment'
uses: ilammy/msvc-dev-cmd@v1
if: matrix.config.os == 'windows-latest'
Expand Down Expand Up @@ -202,7 +244,7 @@ jobs:

- name: 'unix: Tar output dir.'
if: ${{ matrix.config.package && !startsWith(matrix.config.os, 'windows') }}
run: tar -cvf ${{ steps.cmake_install_prefix.outputs.install_dir }}.tar -C ${{ steps.cmake_install_prefix.outputs.install_prefix }} .
run: tar -cvf ${{ steps.cmake_install_prefix.outputs.install_dir }}.tar -C ${{ steps.cmake_install_prefix.outputs.install_prefix_setup }} .

- name: 'unix: Upload Tar as build artifact.'
if: ${{ matrix.config.package && !startsWith(matrix.config.os, 'windows') }}
Expand All @@ -216,7 +258,7 @@ jobs:
uses: actions/upload-artifact@v2
with:
name: ${{ steps.cmake_install_prefix.outputs.install_dir }}
path: ${{ steps.cmake_install_prefix.outputs.install_prefix }}
path: ${{ steps.cmake_install_prefix.outputs.install_prefix_setup }}

- name: 'Windows Disk Space'
if: matrix.config.os == 'windows-latest'
Expand Down
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,8 @@ docs/venv
reaper-adm-extension/test/reaper_adm/data/UserPlugins/
shared/version/eps_version.cpp
submodules/visr
submodules/VST3
submodules/VST3
packaging/codesign/*.dmg
packaging/codesign/*.tar
packaging/codesign/*.zip
packaging/codesign/tmp
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
Version 1.1.0b

* Fix installation on MacOS where Gatekeeper enforces translocation [#273](https://github.com/ebu/ear-production-suite/pull/273)

Version 1.1.0

* Support for 128 channels when using REAPER >=v7.0 [#244](https://github.com/ebu/ear-production-suite/issues/244) [#254](https://github.com/ebu/ear-production-suite/pull/254) [#267](https://github.com/ebu/ear-production-suite/pull/267)
Expand Down
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ set(EPS_SHARED_DIR ${CMAKE_CURRENT_SOURCE_DIR}/shared)
set(JUCE_SUPPORT_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/shared/resources)
add_subdirectory(${EPS_SHARED_DIR}/version)

set(EPS_PLUGIN_TARGETS "" CACHE INTERNAL "")
add_subdirectory(ear-production-suite-plugins)
add_subdirectory(reaper-adm-extension)
add_subdirectory(reaper-adm-export-source-plugin)
Expand Down
6 changes: 4 additions & 2 deletions cmake_modules/get_git_version.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@ endfunction()
function(update_version_from_git NUMERIC_VERSION DESCRIPTIVE_VERSION)
find_package(Git)
if(Git_FOUND)

#TODO: This is very similar to code in shared/version/gen_version.cmake - consolidate!

git_describe(_GIT_REVISION --tags --abbrev=4 --dirty --match v[0-9]*)
string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${_GIT_REVISION}")
string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${_GIT_REVISION}")
string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${_GIT_REVISION}")
string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+-(.*)" "\\1" VERSION_TWEAK "${_GIT_REVISION}")
string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+(.*)" "\\1" VERSION_TWEAK "${_GIT_REVISION}")

if(_GIT_REVISION)
set(${NUMERIC_VERSION}_MAJOR ${VERSION_MAJOR} PARENT_SCOPE)
Expand All @@ -36,7 +38,7 @@ function(update_version_from_git NUMERIC_VERSION DESCRIPTIVE_VERSION)

if(NOT VERSION_TWEAK STREQUAL _GIT_REVISION)
# Tweak is present
set(${DESCRIPTIVE_VERSION} "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_TWEAK}" PARENT_SCOPE)
set(${DESCRIPTIVE_VERSION} "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}${VERSION_TWEAK}" PARENT_SCOPE)
if(VERSION_TWEAK MATCHES "^[0-9]+$")
# Tweak is numeric
set(${NUMERIC_VERSION}_TWEAK ${VERSION_TWEAK} PARENT_SCOPE)
Expand Down
7 changes: 6 additions & 1 deletion cmake_modules/juce_helpers.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
function(add_juce_vst3_plugin PLUGIN_NAME)
set(options)
set(oneValueArgs IDE_FOLDER DESCRIPTION DISPLAY_NAME OUTPUT_NAME CODE_PREFIX CODE_SUFFIX)
set(oneValueArgs IDE_FOLDER DESCRIPTION DISPLAY_NAME OUTPUT_NAME CODE_PREFIX CODE_SUFFIX IS_EPS_PLUGIN)
set(multiValueArgs SOURCES)
cmake_parse_arguments(PLUGIN "${options}" "${oneValueArgs}"
"${multiValueArgs}" ${ARGN} )
Expand Down Expand Up @@ -38,6 +38,11 @@ function(add_juce_vst3_plugin PLUGIN_NAME)
target_include_directories(${PLUGIN_NAME}_VST3 PRIVATE ${_SUPPORT_PATH}/ ${EPS_SHARED_DIR})
target_link_libraries(${PLUGIN_NAME}_VST3 PRIVATE Juce::VST3)

if(PLUGIN_IS_EPS_PLUGIN)
list(APPEND EPS_PLUGIN_TARGETS ${PLUGIN_NAME}_VST3)
set(EPS_PLUGIN_TARGETS ${EPS_PLUGIN_TARGETS} CACHE INTERNAL "")
endif()

set_target_properties(${PLUGIN_NAME}_VST3 PROPERTIES
BUNDLE TRUE
OUTPUT_NAME "${PLUGIN_OUTPUT_NAME}"
Expand Down
1 change: 0 additions & 1 deletion ear-production-suite-plugins/plugins/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,3 @@ add_subdirectory(hoa)
add_subdirectory(scene)
add_subdirectory(monitoring)
add_subdirectory(binaural_monitoring)

Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,9 @@ add_juce_vst3_plugin(
CODE_SUFFIX "F0" # Speaker Monitoring suffixes start from A0 and increment. For bin, lets use F0 (Note FF is scene)
DISPLAY_NAME "EAR Binaural Monitoring"
DESCRIPTION "The binaural monitoring plugin"
OUTPUT_NAME "EAR Binaural Monitoring")

OUTPUT_NAME "EAR Binaural Monitoring"
IS_EPS_PLUGIN ON)

target_link_libraries(ear_binaural_monitoring_VST3 PRIVATE ear-plugin-base ear-version bear)
install(TARGETS ear_binaural_monitoring_VST3 COMPONENT Plugins DESTINATION "${EPS_PLUGIN_INSTALL_PREFIX}ear-production-suite")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,9 @@ add_juce_vst3_plugin(direct_speakers
CODE_SUFFIX "10"
DISPLAY_NAME "EAR DirectSpeakers"
DESCRIPTION "The metadata input plugin for channel-based audio"
OUTPUT_NAME "EAR DirectSpeakers")

OUTPUT_NAME "EAR DirectSpeakers"
IS_EPS_PLUGIN ON)

target_link_libraries(direct_speakers_VST3 PRIVATE ear-plugin-base ear-version)
target_compile_definitions(direct_speakers_VST3 PRIVATE USE_NEW_DESIGN)

Expand Down
5 changes: 3 additions & 2 deletions ear-production-suite-plugins/plugins/hoa/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,9 @@ add_juce_vst3_plugin(hoa
CODE_SUFFIX "12"
DISPLAY_NAME "EAR HOA"
DESCRIPTION "The metadata input plugin for scene-based audio"
OUTPUT_NAME "EAR HOA")

OUTPUT_NAME "EAR HOA"
IS_EPS_PLUGIN ON)

target_link_libraries(hoa_VST3 PRIVATE ear-plugin-base ear-version)

install_juce_vst3_plugin(hoa "${EPS_PLUGIN_INSTALL_PREFIX}ear-production-suite")
Original file line number Diff line number Diff line change
Expand Up @@ -45,18 +45,20 @@ function(add_monitoring_plugin SPEAKER_LAYOUT SPEAKER_LAYOUT_NAME AUDIO_PACK_FOR
add_juce_vst3_plugin(
ear_monitoring_${SPEAKER_LAYOUT}
SOURCES ${SOURCES_MONITORING} ${HEADERS_MONITORING}
CODE_SUFFIX ${PLUGIN_CODE_SUFFIX}
CODE_SUFFIX ${PLUGIN_CODE_SUFFIX}
DISPLAY_NAME "EAR Monitoring ${SPEAKER_LAYOUT}"
DESCRIPTION "The monitoring plugin (${SPEAKER_LAYOUT})"
OUTPUT_NAME "EAR Monitoring ${SPEAKER_LAYOUT}"
IDE_FOLDER ${IDE_FOLDER_PLUGINS}
)
IS_EPS_PLUGIN ON)

target_compile_definitions(
ear_monitoring_${SPEAKER_LAYOUT}_VST3 PRIVATE
SPEAKER_LAYOUT="${SPEAKER_LAYOUT}"
SPEAKER_LAYOUT_NAME="${SPEAKER_LAYOUT_NAME}"
AUDIO_PACK_FORMAT_ID="${AUDIO_PACK_FORMAT_ID}"
AUDIO_PACK_FORMAT_ID="${AUDIO_PACK_FORMAT_ID}"
)

target_link_libraries(ear_monitoring_${SPEAKER_LAYOUT}_VST3 PRIVATE ear-plugin-base ear-version)
install_juce_vst3_plugin(ear_monitoring_${SPEAKER_LAYOUT} "${EPS_PLUGIN_INSTALL_PREFIX}ear-production-suite")
endfunction()
Expand Down
5 changes: 3 additions & 2 deletions ear-production-suite-plugins/plugins/object/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,9 @@ add_juce_vst3_plugin(object
CODE_SUFFIX "11"
DISPLAY_NAME "EAR Object"
DESCRIPTION "The metadata input plugin for objects"
OUTPUT_NAME "EAR Object")

OUTPUT_NAME "EAR Object"
IS_EPS_PLUGIN ON)

target_include_directories(object_VST3 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(object_VST3 PRIVATE ear-plugin-base ear-version)
install_juce_vst3_plugin(object "${EPS_PLUGIN_INSTALL_PREFIX}ear-production-suite")
5 changes: 3 additions & 2 deletions ear-production-suite-plugins/plugins/scene/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,9 @@ add_juce_vst3_plugin(scene
CODE_SUFFIX "FF"
DISPLAY_NAME "EAR Scene"
DESCRIPTION "The scene plugin"
OUTPUT_NAME "EAR Scene")

OUTPUT_NAME "EAR Scene"
IS_EPS_PLUGIN ON)

target_link_libraries(scene_VST3 PRIVATE ear-plugin-base ear-version)
install_juce_vst3_plugin(scene "${EPS_PLUGIN_INSTALL_PREFIX}ear-production-suite")

Expand Down
55 changes: 34 additions & 21 deletions packaging/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,37 +30,50 @@ add_custom_target(generate-package-docs
"${CMAKE_CURRENT_LIST_DIR}/README.pdf"
"${CMAKE_CURRENT_LIST_DIR}/LICENSE.pdf"
)

install(DIRECTORY
Templates
DESTINATION
.)


# Common Files (all OS)
# note: '.' is "Setup EAR Production Suite.app/Contents/Resources" on MacOS
install(FILES
README.pdf
LICENSE.pdf
DESTINATION
.)

if(NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
if(WIN32)
install(FILES
install_list.xml
uninstall_list.xml
DESTINATION
./SetupFiles)
endif()
install(TARGETS
setup
DESTINATION
.)
endif()

install(TARGETS
project_upgrade
project_upgrade_gui
DESTINATION
./Tools)
install(DIRECTORY
Templates
DESTINATION
.)

if(APPLE)
# '.' is currectly Resources dir. Need these installing at base dir too.
install(FILES
README.pdf
LICENSE.pdf
DESTINATION
../../../)
# Back-up to base dir for setup install location
install(TARGETS
setup
DESTINATION
../../../)
endif()

if(WIN32)
# Win tidies manifests in to a subdir. Note MacOS doesn't need as already has manifests in bundle (as a build-time copy step).
install(FILES
install_list.xml
uninstall_list.xml
DESTINATION
./SetupFiles)
install(TARGETS
setup
DESTINATION
.)
endif()

set(CPACK_GENERATOR "ZIP")
set(CPACK_PACKAGE_NAME "EAR Production Suite")
Expand Down
Binary file modified packaging/LICENSE.pdf
Binary file not shown.
10 changes: 6 additions & 4 deletions packaging/README.md.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# EAR Production Suite (v1.1.0 release)
# EAR Production Suite (v1.1.0b release)

The latest builds of the EAR Production Suite are available under [GitHub Releases](https://github.com/ebu/ear-production-suite/releases) or from the [EAR Production Suite website.](https://ear-production-suite.ebu.io/)
Please download the files from there. The EAR Production Suite (EPS) download package comprises of multiple components:
Expand All @@ -11,6 +11,8 @@ Please download the files from there. The EAR Production Suite (EPS) download pa
- Setup application

## Release notes
v1.1.0b is a minor update to v1.1.0 which addresses installation issues on some Macs where Gatekeeper is enforcing app translocation (also known as Gatekeeper path randomisation.) This should not occur with signed disk images, but in some rare cases it still appears to happen. This fix does not affect the Windows or Linux builds, and only affects the setup application on MacOS.

v1.1.0 supports 128 channels in REAPER v7.0 or greater and improved compatibility with ADM generated by third-party tools. It also includes various bug fixes, performance fixes, and other feature improvements. Please see detailed changelog below.

### Known issues
Expand Down Expand Up @@ -50,16 +52,16 @@ You may install the EPS manually if you prefer (note that this is the only optio

1. Install [REAPER](https://www.reaper.fm/download.php) if you don't already have it.
2. Ensure REAPER is not running.
3. From the release package, copy the **VST plug-ins** from the `VST3` directory of the package into your common VST folder.
3. From the release package, copy the **VST plug-ins** from the `VST3` directory of the package (or within `Setup EAR Production Suite.app/Contents/Resources` on MacOS) into your common VST folder.
- Windows: `C:\Program Files\Common Files\VST3\`
- MacOS: `~/Library/Audio/Plug-Ins/VST3/`
- Linux: `~/.vst3/`
4. From the release package, copy the REAPER ADM **Extension** from the `UserPlugins` directory of the package into the REAPER UserPlugins folder. Ensure you include the `ADMPresets` subdirectory.
4. From the release package, copy the REAPER ADM **Extension** from the `UserPlugins` directory of the package (or within `Setup EAR Production Suite.app/Contents/Resources` on MacOS) into the REAPER UserPlugins folder. Ensure you include the `ADMPresets` subdirectory.
- Windows: `C:\Users\(username)\AppData\Roaming\REAPER\UserPlugins\`
Note: If you have a previous version of the REAPER Extension installed to `C:\Program Files\REAPER (x64)\Plugins\reaper_adm.dll`, then this should be deleted on installation of the latest version.
- MacOS: `~/Library/Application Support/REAPER/UserPlugins/`
- Linux: `~/.config/REAPER/UserPlugins/`
5. (Optional) From the release package, copy the `Tools` and `Templates` directories of the package into an `EAR Production Suite` directory in the relevant location listed below. This is the folder used by the "Browse tools and templates..." function of the EPS.
5. (Optional) From the release package, copy the `Tools` and `Templates` directories of the package (or from within `Setup EAR Production Suite.app/Contents/Resources` on MacOS) into an `EAR Production Suite` directory in the relevant location listed below. This is the folder used by the "Browse tools and templates..." function of the EPS.
- Windows: `C:\Users\(username)\AppData\Roaming\EAR Production Suite\`
- MacOS: `~/Library/Application Support/EAR Production Suite/`
- Linux: `~/.config/EAR Production Suite/`
Expand Down
Binary file modified packaging/README.pdf
Binary file not shown.
Loading
Loading