gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

commit bf20ac83d4d6e54db46ea84fc0d220f7caebe403
parent 95c0cff17cde3dc821a4c5f880b9bcd90ed732e6
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Sun, 21 Apr 2024 02:22:07 +0200

prepare CI to work on our new main branch

Diffstat:
Mscripts/deploy.cmake | 4++--
Ascripts/deployAll.cmake | 22++++++++++++++++++++++
Ascripts/example.bat | 32++++++++++++++++++++++++++++++++
Mscripts/generate.cmake | 31++++---------------------------
Ascripts/synths.cmake | 40++++++++++++++++++++++++++++++++++++++++
5 files changed, 100 insertions(+), 29 deletions(-)

diff --git a/scripts/deploy.cmake b/scripts/deploy.cmake @@ -13,8 +13,8 @@ if(NOT EXISTS ${RCLONE_CONF}) endif() if(UPLOAD_LOCAL) - copyArtefacts("dsp56300:deploy" ${FOLDER} "") + copyArtefacts("dsp56300:deploy" "${FOLDER}" "${FILTER}") endif() if(UPLOAD_REMOTE) - copyArtefacts("dsp56300_ftp:builds" ${FOLDER} "") + copyArtefacts("dsp56300_ftp:builds" "${FOLDER}" "${FILTER}") endif() diff --git a/scripts/deployAll.cmake b/scripts/deployAll.cmake @@ -0,0 +1,22 @@ +include(${CMAKE_CURRENT_LIST_DIR}/synths.cmake) + +if(NOT FOLDER) + message(FATAL_ERROR "No upload folder specified") +endif() + +if(NOT gearmulator_BINARY_DIR) + message(FATAL_ERROR "Source of binaries to be uploaded 'gearmulator_BINARY_DIR' not specified") +endif() + +macro(deploySynth NAME) + message(STATUS "Deploying synth ${${NAME}_name}") + set(uploadFolder ${FOLDER}/${${NAME}_folder}) + set(filter "${${NAME}_name}") + execute_process(COMMAND cmake -DFOLDER=${uploadFolder} -DFILTER=${filter} -DUPLOAD_LOCAL=${UPLOAD_LOCAL} -DUPLOAD_REMOTE=${UPLOAD_REMOTE} -P ${CMAKE_CURRENT_LIST_DIR}/deploy.cmake COMMAND_ECHO STDOUT WORKING_DIRECTORY ${gearmulator_BINARY_DIR} COMMAND_ERROR_IS_FATAL ANY) +endmacro() + +foreach(S IN LISTS synths) + if(${S}) + deploySynth(${S}) + endif() +endforeach() diff --git a/scripts/example.bat b/scripts/example.bat @@ -0,0 +1,32 @@ +:: -------- setup -------- + +:: source folder +set IN=..\ + +:: build system output folder +set OUT=..\temp\test + +:: which synths should be built? +set SYNTHS=-Dgearmulator_SYNTH_OSIRUS=on -Dgearmulator_SYNTH_OSTIRUS=on -Dgearmulator_SYNTH_VAVRA=on -Dgearmulator_SYNTH_XENIA=on + +:: -------- generate project configuration -------- + +cmake -Dgearmulator_SOURCE_DIR=%IN% -Dgearmulator_BINARY_DIR=%OUT% %SYNTHS% -Dgearmulator_BUILD_JUCEPLUGIN=on -Dgearmulator_BUILD_FX_PLUGIN=off -P generate.cmake + +:: -------- build the project -------- + +cmake --build %OUT% --config Release --parallel 24 + +:: -------- run tests -------- + +ctest -C Release -VV --output-on-failure --test-dir %OUT% + +:: -------- create packages -------- + +pushd %OUT% +cmake -P %~dp0/pack.cmake +popd + +:: -------- deploy packages -------- + +cmake %SYNTHS% -DUPLOAD_LOCAL=1 -DFOLDER=test -Dgearmulator_BINARY_DIR=%OUT% -P deployAll.cmake diff --git a/scripts/generate.cmake b/scripts/generate.cmake @@ -1,29 +1,7 @@ -set(synths - gearmulator_SYNTH_OSIRUS - gearmulator_SYNTH_OSTIRUS - gearmulator_SYNTH_VAVRA - gearmulator_SYNTH_XENIA -) - -macro(validateToggle NAME) - if(NOT DEFINED ${NAME} OR (NOT ${${NAME}} STREQUAL "on" AND NOT ${${NAME}} STREQUAL "off")) - message(FATAL_ERROR "Variable " ${NAME} " needs to be set to on or off but got '" ${${NAME}} "'") - else() - message(STATUS ${NAME}=${${NAME}}) - endif() -endmacro() - -# turn off all synths that are not explicitly specified -foreach(S IN LISTS synths) - if(NOT DEFINED ${S}) - set(${S} off) - message(STATUS "Synth ${S} unspecified, turning off") - else() - validateToggle(${S}) - endif() -endforeach() +include(${CMAKE_CURRENT_LIST_DIR}/synths.cmake) # these need to be specified explicitly + validateToggle(gearmulator_BUILD_JUCEPLUGIN) validateToggle(gearmulator_BUILD_FX_PLUGIN) @@ -35,7 +13,7 @@ if(NOT DEFINED gearmulator_BINARY_DIR) message(FATAL_ERROR "gearmulator_BINARY_DIR needs to be specified") endif() -# build Release by default +# build Release by default if not specified otherwise if(NOT DEFINED CMAKE_BUILD_TYPE) message(STATUS "CMAKE_BUILD_TYPE unspecified, setting to Release") set(CMAKE_BUILD_TYPE Release) @@ -44,6 +22,7 @@ endif() set(args ${gearmulator_SOURCE_DIR}) if(APPLE) + # We need Xcode for macOS builds to prevent that the VST3 bundles Info.plist is missing information set(args ${args} -G Xcode) endif() @@ -57,6 +36,4 @@ foreach(S IN LISTS synths) set(args ${args} -D${S}=${${S}}) endforeach() -message(STATUS "Executing command: cmake ${args}") - execute_process(COMMAND cmake ${args} COMMAND_ECHO STDOUT WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} COMMAND_ERROR_IS_FATAL ANY) diff --git a/scripts/synths.cmake b/scripts/synths.cmake @@ -0,0 +1,40 @@ +set(synths + gearmulator_SYNTH_OSIRUS + gearmulator_SYNTH_OSTIRUS + gearmulator_SYNTH_VAVRA + gearmulator_SYNTH_XENIA +) + +set(gearmulator_SYNTH_OSIRUS_name Osirus) +set(gearmulator_SYNTH_OSTIRUS_name OsTIrus) +set(gearmulator_SYNTH_VAVRA_name Vavra) +set(gearmulator_SYNTH_XENIA_name Xenia) + +set(gearmulator_SYNTH_OSIRUS_folder osirus) +set(gearmulator_SYNTH_OSTIRUS_folder ostirus) +set(gearmulator_SYNTH_VAVRA_folder vavra) +set(gearmulator_SYNTH_XENIA_folder xenia) + +macro(validateToggle NAME) + if(NOT DEFINED ${NAME} OR (NOT ${${NAME}} STREQUAL "on" AND NOT ${${NAME}} STREQUAL "off")) + message(FATAL_ERROR "Variable " ${NAME} " needs to be set to on or off but got '" ${${NAME}} "'") + else() + message(STATUS ${NAME}=${${NAME}}) + endif() +endmacro() + +# turn off all synths that are not explicitly specified +foreach(S IN LISTS synths) + if(NOT DEFINED ${S}_name) + message(FATAL_ERROR "No name defined for synth ${S}") + endif() + if(NOT DEFINED ${S}_folder) + message(FATAL_ERROR "No folder defined for synth ${S}") + endif() + if(NOT DEFINED ${S}) + set(${S} off) + message(STATUS "Synth ${S} unspecified, turning off") + else() + validateToggle(${S}) + endif() +endforeach()