Build and deploy AU in Travis
This commit is contained in:
parent
90d02a1be4
commit
af6dbea70c
5 changed files with 58 additions and 21 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -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/
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue