Build and deploy AU in Travis

This commit is contained in:
Jean Pierre Cimalando 2020-05-13 08:38:11 -07:00
parent 90d02a1be4
commit af6dbea70c
5 changed files with 58 additions and 21 deletions

2
.gitignore vendored
View file

@ -19,6 +19,8 @@ compile_commands.json
clients/sfizz_jack clients/sfizz_jack
clients/sfzprint clients/sfzprint
/vst/download/
# gh-pages unstaged files: # gh-pages unstaged files:
_api/ _api/
_site/ _site/

View file

@ -2,6 +2,10 @@ language: cpp
os: linux os: linux
dist: bionic dist: bionic
cache:
directories:
- vst/download/
jobs: jobs:
include: include:
- name: "clang-tidy checks" - name: "clang-tidy checks"

View file

@ -23,6 +23,11 @@ cd "${INSTALL_DIR}"/Library/Audio/Plug-Ins/VST3
dylibbundler -od -b -x sfizz.vst3/Contents/MacOS/sfizz -d sfizz.vst3/Contents/libs/ -p @loader_path/../libs/ dylibbundler -od -b -x sfizz.vst3/Contents/MacOS/sfizz -d sfizz.vst3/Contents/libs/ -p @loader_path/../libs/
cd "${TRAVIS_BUILD_DIR}/build" cd "${TRAVIS_BUILD_DIR}/build"
# Bundle AU dependencies
cd "${INSTALL_DIR}"/Library/Audio/Plug-Ins/Components
dylibbundler -od -b -x sfizz.component/Contents/Resources/plugin.vst3/Contents/MacOS/sfizz -d sfizz.component/Contents/Resources/plugin.vst3/Contents/libs/ -p @loader_path/../libs/
cd "${TRAVIS_BUILD_DIR}/build"
# #
tar -zcvf "${INSTALL_DIR}.tar.gz" ${INSTALL_DIR} tar -zcvf "${INSTALL_DIR}.tar.gz" ${INSTALL_DIR}

View file

@ -4,10 +4,12 @@ set -ex
mkdir -p build/${INSTALL_DIR} && cd build mkdir -p build/${INSTALL_DIR} && cd build
cmake -DCMAKE_BUILD_TYPE=Release \ cmake -DCMAKE_BUILD_TYPE=Release \
-DSFIZZ_VST=ON \ -DSFIZZ_VST=ON \
-DSFIZZ_AU=ON \
-DSFIZZ_TESTS=OFF \ -DSFIZZ_TESTS=OFF \
-DCMAKE_CXX_STANDARD=17 \ -DCMAKE_CXX_STANDARD=17 \
-DLV2PLUGIN_INSTALL_DIR=/Library/Audio/Plug-Ins/LV2 \ -DLV2PLUGIN_INSTALL_DIR=/Library/Audio/Plug-Ins/LV2 \
-DVSTPLUGIN_INSTALL_DIR=/Library/Audio/Plug-Ins/VST3 \ -DVSTPLUGIN_INSTALL_DIR=/Library/Audio/Plug-Ins/VST3 \
-DAUPLUGIN_INSTALL_DIR=/Library/Audio/Plug-Ins/Components \
.. ..
make -j$(sysctl -n hw.ncpu) make -j$(sysctl -n hw.ncpu)
# Xcode not currently supported, see https://gitlab.kitware.com/cmake/cmake/issues/18088 # Xcode not currently supported, see https://gitlab.kitware.com/cmake/cmake/issues/18088

View file

@ -146,9 +146,24 @@ elseif(SFIZZ_AU)
OUTPUT_NAME "${PROJECT_NAME}" OUTPUT_NAME "${PROJECT_NAME}"
PREFIX "") PREFIX "")
# Add Core Audio utility classes # Get Core Audio utility classes if missing
set(CA_UTILITY_BASEDIR set(CA_UTILITY_BASEDIR
"${CMAKE_CURRENT_SOURCE_DIR}/external/CoreAudioUtilityClasses") "${CMAKE_CURRENT_SOURCE_DIR}/external/CoreAudioUtilityClasses")
if(NOT EXISTS "${CA_UTILITY_BASEDIR}")
set(CA_UTILITY_VERSION "1.1")
set(CA_UTILITY_ARCHIVE "CoreAudioUtilityClasses-${CA_UTILITY_VERSION}.tar.gz")
set(CA_UTILITY_DOWNLOAD_URL "https://github.com/sfztools/CoreAudioUtilityClasses/releases/download/v${CA_UTILITY_VERSION}/${CA_UTILITY_ARCHIVE}")
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/download/${CA_UTILITY_ARCHIVE}")
file(MAKE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/download")
file(DOWNLOAD "${CA_UTILITY_DOWNLOAD_URL}"
"${CMAKE_CURRENT_SOURCE_DIR}/download/${CA_UTILITY_ARCHIVE}")
endif()
execute_process(COMMAND "${CMAKE_COMMAND}" "-E" "tar" "xvf"
"${CMAKE_CURRENT_SOURCE_DIR}/download/${CA_UTILITY_ARCHIVE}"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/external")
endif()
# Add Core Audio utility classes
target_include_directories(${AUPLUGIN_PRJ_NAME} PRIVATE target_include_directories(${AUPLUGIN_PRJ_NAME} PRIVATE
"${CA_UTILITY_BASEDIR}/CoreAudio" "${CA_UTILITY_BASEDIR}/CoreAudio"
"${CA_UTILITY_BASEDIR}/CoreAudio/AudioUnits" "${CA_UTILITY_BASEDIR}/CoreAudio/AudioUnits"
@ -221,26 +236,28 @@ elseif(SFIZZ_AU)
DESTINATION "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}") DESTINATION "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}")
# Add the resource fork # Add the resource fork
execute_process(COMMAND "xcrun" "--find" "Rez" if (FALSE) # optional, disabled because broken on CI
OUTPUT_VARIABLE OSX_REZ_COMMAND OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND "xcrun" "--find" "Rez"
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include") OUTPUT_VARIABLE OSX_REZ_COMMAND OUTPUT_STRIP_TRAILING_WHITESPACE)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mac/audiounitconfig.h.in" file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include")
"${CMAKE_CURRENT_BINARY_DIR}/include/audiounitconfig.h" @ONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mac/audiounitconfig.h.in"
add_custom_command(TARGET ${AUPLUGIN_PRJ_NAME} POST_BUILD COMMAND "${CMAKE_CURRENT_BINARY_DIR}/include/audiounitconfig.h" @ONLY)
"${OSX_REZ_COMMAND}" add_custom_command(TARGET ${AUPLUGIN_PRJ_NAME} POST_BUILD COMMAND
"-d" "SystemSevenOrLater=1" "${OSX_REZ_COMMAND}"
"-script" "Roman" "-d" "SystemSevenOrLater=1"
"-d" "i386_YES" "-script" "Roman"
"-d" "x86_64_YES" "-d" "i386_YES"
"-is" "${CMAKE_OSX_SYSROOT}" "-d" "x86_64_YES"
"-I" "${CMAKE_OSX_SYSROOT}/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers" "-is" "${CMAKE_OSX_SYSROOT}"
"-I" "/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers" "-I" "${CMAKE_OSX_SYSROOT}/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers"
"-I" "/System/Library/Frameworks/AudioUnit.framework/Versions/A/Headers/" "-I" "/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers"
"-I" "${CA_UTILITY_BASEDIR}/CoreAudio/AudioUnits/AUPublic/AUBase" "-I" "/System/Library/Frameworks/AudioUnit.framework/Versions/A/Headers/"
"-I" "${CMAKE_CURRENT_BINARY_DIR}/include" # generated audiounitconfig.h "-I" "${CA_UTILITY_BASEDIR}/CoreAudio/AudioUnits/AUPublic/AUBase"
"-o" "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/Resources/${PROJECT_NAME}.rsrc" "-I" "${CMAKE_CURRENT_BINARY_DIR}/include" # generated audiounitconfig.h
"-useDF" "-o" "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}/Contents/Resources/${PROJECT_NAME}.rsrc"
"${VST3SDK_BASEDIR}/public.sdk/source/vst/auwrapper/auresource.r") "-useDF"
"${VST3SDK_BASEDIR}/public.sdk/source/vst/auwrapper/auresource.r")
endif()
# Copy VST3 in the bundle # Copy VST3 in the bundle
add_custom_command(TARGET ${VSTPLUGIN_PRJ_NAME} POST_BUILD COMMAND add_custom_command(TARGET ${VSTPLUGIN_PRJ_NAME} POST_BUILD COMMAND
@ -261,4 +278,11 @@ elseif(SFIZZ_AU)
"-Wno-unused-parameter" "-Wno-unused-parameter"
"-Wno-unused-variable") "-Wno-unused-variable")
endif() endif()
# Installation
if(AUPLUGIN_INSTALL_DIR)
install(DIRECTORY "${PROJECT_BINARY_DIR}/${AUPLUGIN_BUNDLE_NAME}"
DESTINATION "${AUPLUGIN_INSTALL_DIR}"
COMPONENT "au")
endif()
endif() endif()