diff --git a/cmake/apple/CMakeLists.txt b/cmake/apple/CMakeLists.txt
index c52779429f9..b627591f326 100644
--- a/cmake/apple/CMakeLists.txt
+++ b/cmake/apple/CMakeLists.txt
@@ -1,27 +1,48 @@
-# TODO: Re-evaluate these
-set(MACOSX_BUNDLE_ICON_FILE "icon.icns")
-set(MACOSX_BUNDLE_GUI_IDENTIFIER "${PROJECT_NAME_UCASE}")
-set(MACOSX_BUNDLE_LONG_VERSION_STRING "${VERSION}")
-set(MACOSX_BUNDLE_BUNDLE_NAME "${PROJECT_NAME_UCASE}")
-set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${VERSION}")
-set(MACOSX_BUNDLE_BUNDLE_VERSION "${VERSION}")
-set(MACOSX_BUNDLE_COPYRIGHT "${PROJECT_COPYRIGHT}")
-set(MACOSX_BUNDLE_MIMETYPE "application/x-lmms-project")
-set(MACOSX_BUNDLE_MIMETYPE_ICON "project.icns")
-set(MACOSX_BUNDLE_MIMETYPE_ID "io.lmms")
-set(MACOSX_BUNDLE_PROJECT_URL "${PROJECT_URL}")
-set(MACOSX_BUNDLE_DMG_TITLE "${MACOSX_BUNDLE_BUNDLE_NAME} ${MACOSX_BUNDLE_LONG_VERSION_STRING}")
-# appdmg won't allow volume names > 27 char https://github.com/LinusU/node-alias/issues/7
-string(SUBSTRING "${MACOSX_BUNDLE_DMG_TITLE}" 0 27 MACOSX_BUNDLE_DMG_TITLE)
+# Info.plist
+set(MACOS_ICON "${PROJECT_NAME_UCASE}.icns")
+set(MACOS_MIMETYPE "application/x-lmms-project")
+set(MACOS_MIMETYPE_ICON "project.icns")
+set(MACOS_MIMETYPE_ID "io.lmms")
+configure_file("lmms.plist.in" "Info.plist" @ONLY)
+
+# "Bundle"-specific CPack options
+set(CPACK_GENERATOR "Bundle" PARENT_SCOPE)
+set(CPACK_BUNDLE_NAME "${PROJECT_NAME_UCASE}" PARENT_SCOPE)
+set(CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_BINARY_DIR}/Info.plist" PARENT_SCOPE)
+set(CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/icon.icns" PARENT_SCOPE)
-# Resource files
-configure_file("lmms.plist.in" "Info.plist")
-configure_file("package_apple.sh.in" "package_apple.sh" @ONLY)
-configure_file("appdmg.json.in" "_appdmg.json.in" @ONLY)
+# Standard CPack options
+# supress license popup
+unset(CPACK_RESOURCE_FILE_LICENSE PARENT_SCOPE)
+# strip causes missing symbols on macOS
+set(CPACK_STRIP_FILES false PARENT_SCOPE)
+set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-mac${APPLE_OS_VER}")
+set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}" PARENT_SCOPE)
+set(CPACK_PRE_BUILD_SCRIPTS "${CMAKE_CURRENT_SOURCE_DIR}/CPackPreBuild.cmake" PARENT_SCOPE)
+set(CPACK_POST_BUILD_SCRIPTS "${CMAKE_CURRENT_SOURCE_DIR}/CPackPostBuild.cmake" PARENT_SCOPE)
+set(CPACK_DMG_VOLUME_NAME "${PROJECT_NAME_UCASE} ${VERSION}" PARENT_SCOPE)
+set(CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_CURRENT_BINARY_DIR}/${SUBDIR}/background.tiff" PARENT_SCOPE)
+set(CPACK_DMG_DS_STORE "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/DS_Store" PARENT_SCOPE)
-# CPack settings/scripts
-configure_file("CPackOptions.cmake.in" "CPackOptions.cmake" @ONLY)
-configure_file("CPackPreBuild.cmake.in" "CPackPreBuild.cmake" @ONLY)
+# Custom vars to expose to Cpack
+# must be prefixed with "CPACK_" per https://stackoverflow.com/a/46526757/3196753)
+set(CPACK_CURRENT_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}" PARENT_SCOPE)
+set(CPACK_CURRENT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" PARENT_SCOPE)
+set(CPACK_BINARY_DIR "${CMAKE_BINARY_DIR}" PARENT_SCOPE)
+set(CPACK_SOURCE_DIR "${CMAKE_SOURCE_DIR}" PARENT_SCOPE)
+set(CPACK_QMAKE_EXECUTABLE "${QT_QMAKE_EXECUTABLE}" PARENT_SCOPE)
+set(CPACK_CARLA_LIBRARIES "${CARLA_LIBRARIES}" PARENT_SCOPE)
+set(CPACK_PROJECT_NAME_UCASE "${PROJECT_NAME_UCASE}" PARENT_SCOPE)
+
+# appdmg is no longer required, but needed for creating a new .DS_Store file
+# make package appdmg
+# appdmg won't allow volume names > 27 char https://github.com/LinusU/node-alias/issues/7
+string(SUBSTRING "${CPACK_DMG_VOLUME_NAME}" 0 27 "${PROJECT_NAME_UCASE} ${VERSION}")
+configure_file("appdmg.json.in" "_appdmg.json.in" @ONLY)
+add_custom_target(appdmg
+ COMMAND touch "${CPACK_PACKAGE_FILE_NAME}.dmg" &&
+ rm "${CPACK_PACKAGE_FILE_NAME}-appdmg.dmg" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
+ COMMAND appdmg appdmg.json "${CPACK_PACKAGE_FILE_NAME}-appdmg.dmg" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
+ DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/appdmg.json"
+ COMMENT "Generating DMG")
-set(CPACK_GENERATOR "DragNDrop" PARENT_SCOPE)
-set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_CURRENT_BINARY_DIR}/CPackOptions.cmake" PARENT_SCOPE)
diff --git a/cmake/apple/CPackOptions.cmake.in b/cmake/apple/CPackOptions.cmake.in
deleted file mode 100644
index 0757422838d..00000000000
--- a/cmake/apple/CPackOptions.cmake.in
+++ /dev/null
@@ -1,10 +0,0 @@
-# Supress license popup when opening DMG
-unset(CPACK_RESOURCE_FILE_LICENSE)
-# Disable strip, it causes missing symbols on macOS
-set(CPACK_STRIP_FILES false)
-set(CPACK_PACKAGE_FILE_NAME "@PROJECT_NAME@-@VERSION@")
-set(CPACK_PRE_BUILD_SCRIPTS "@CMAKE_CURRENT_BINARY_DIR@/CPackPreBuild.cmake")
-set(CPACK_DMG_VOLUME_NAME "@PROJECT_NAME_UCASE@ @VERSION@")
-set(CPACK_DMG_BACKGROUND_IMAGE "@CMAKE_CURRENT_BINARY_DIR@/background.tiff")
-set(CPACK_DMG_DS_STORE "@CMAKE_CURRENT_SOURCE_DIR@/DS_Store")
-set(CPACK_DMG_FILE "@CMAKE_BINARY_DIR@/@CMAKE_PROJECT_NAME@-@VERSION@-mac@APPLE_OS_VER@.dmg")
\ No newline at end of file
diff --git a/cmake/apple/CPackPostBuild.cmake b/cmake/apple/CPackPostBuild.cmake
new file mode 100644
index 00000000000..c9ca6bccf1d
--- /dev/null
+++ b/cmake/apple/CPackPostBuild.cmake
@@ -0,0 +1,83 @@
+# Variables must be prefixed with "CPACK_" to be visible here
+# See also CpackOptions.cmake.in
+set(APP "${CPACK_TEMPORARY_INSTALL_DIRECTORY}/${CPACK_PROJECT_NAME_UCASE}.app")
+
+# Copy missing files
+file(COPY "${CPACK_CURRENT_SOURCE_DIR}/project.icns" DESTINATION "${APP}/Contents/Resources")
+
+# Updates appdmg.json with CPACK_TEMPORARY_INSTALL_DIRECTORY
+# - .DS_Store can be recreated using appdmg appdmg.json lmms.dmg
+# - Find new .DS_Store from the root of the DMG file
+# - cp /Volumes/lmms-x.x.x/.DS_Store ../cmake/apple/DS_Store
+configure_file("${CPACK_CURRENT_BINARY_DIR}/_appdmg.json.in" "${CPACK_CURRENT_BINARY_DIR}/appdmg.json")
+file(REMOVE "${CPACK_CURRENT_BINARY_DIR}/_appdmg.json.in")
+
+# Create bundle structure
+file(MAKE_DIRECTORY "${APP}/Contents/MacOS")
+file(MAKE_DIRECTORY "${APP}/Contents/Frameworks")
+file(MAKE_DIRECTORY "${APP}/Contents/Resources")
+
+# Make all libraries writable for macdeployqt
+file(CHMOD_RECURSE "${APP}/Contents" PERMISSIONS
+ OWNER_EXECUTE OWNER_WRITE OWNER_READ
+ GROUP_EXECUTE GROUP_WRITE GROUP_READ
+ WORLD_READ)
+
+# Fix layout
+file(RENAME "${APP}/Contents/Resources/lib" "${APP}/Contents/lib")
+file(RENAME "${APP}/Contents/Resources/share" "${APP}/Contents/share")
+file(RENAME "${APP}/Contents/Resources/bin" "${APP}/Contents/bin")
+
+# Move binaries into Contents/MacOS
+file(RENAME "${APP}/Contents/bin/lmms" "${APP}/Contents/MacOS/lmms")
+file(RENAME "${APP}/Contents/lib/lmms/RemoteZynAddSubFx" "${APP}/Contents/MacOS/RemoteZynAddSubFx")
+file(REMOVE_RECURSE "${APP}/Contents/bin")
+
+# Replace @rpath with @loader_path for Carla
+execute_process(COMMAND install_name_tool -change
+ "@rpath/libcarlabase.dylib"
+ "@loader_path/libcarlabase.dylib"
+ "${APP}/Contents/lib/lmms/libcarlapatchbay.so"
+ COMMAND_ERROR_IS_FATAL ANY)
+execute_process(COMMAND install_name_tool -change
+ "@rpath/libcarlabase.dylib"
+ "@loader_path/libcarlabase.dylib"
+ "${APP}/Contents/lib/lmms/libcarlarack.so"
+ COMMAND_ERROR_IS_FATAL ANY)
+
+# Build list of executables to inform macdeployqt about
+# e.g. -executable=foo.dylib -executable=bar.dylib
+file(GLOB LIBS "${APP}/Contents/lib/lmms/*.so")
+file(GLOB LADSPA "${APP}/Contents/lib/lmms/ladspa/*.so")
+list(APPEND LIBS "${APP}/Contents/MacOS/RemoteZynAddSubFx")
+list(APPEND LIBS ${LADSPA})
+list(SORT LIBS)
+
+# Construct macdeployqt parameters
+foreach(_LIB IN LISTS LIBS)
+ list(APPEND EXECUTABLES "-executable=${_LIB}")
+endforeach()
+
+# Call macdeployqt
+get_filename_component(QTBIN "${CPACK_QMAKE_EXECUTABLE}" DIRECTORY)
+message(STATUS "Calling ${QTBIN}/macdeployqt ${APP} [... executables]")
+execute_process(COMMAND "${QTBIN}/macdeployqt" "${APP}" ${EXECUTABLES} COMMAND_ERROR_IS_FATAL ANY)
+
+# Remove dummy carla libs, relink to a sane location (e.g. /Applications/Carla.app/...)
+# (must be done after calling macdeployqt)
+file(GLOB CARLALIBS "${APP}/Contents/lib/lmms/libcarla*")
+foreach(_CARLALIB IN LISTS CARLALIBS)
+ foreach(_LIB "${CPACK_CARLA_LIBRARIES}")
+ set(_OLDPATH "../../Frameworks/lib${_LIB}.dylib")
+ set(_NEWPATH "Carla.app/Contents/MacOS/lib${_LIB}.dylib")
+ execute_process(COMMAND install_name_tool -change
+ "@loader_path/${_OLDPATH}"
+ "@executable_path/../../../${_NEWPATH}"
+ "${_CARLALIB}"
+ COMMAND_ERROR_IS_FATAL ANY)
+ file(REMOVE "${APP}/Contents/Frameworks/lib${_LIB}.dylib")
+ endforeach()
+endforeach()
+
+# Call ad-hoc codesign manually (CMake offers this as well)
+execute_process(COMMAND codesign --force --deep --sign - "${APP}" COMMAND_ERROR_IS_FATAL ANY)
\ No newline at end of file
diff --git a/cmake/apple/CPackPreBuild.cmake b/cmake/apple/CPackPreBuild.cmake
new file mode 100644
index 00000000000..88c6446699c
--- /dev/null
+++ b/cmake/apple/CPackPreBuild.cmake
@@ -0,0 +1,6 @@
+# Variables must be prefixed with "CPACK_" to be visible here
+# See also CpackOptions.cmake.in
+execute_process(COMMAND convert
+ "${CPACK_CURRENT_SOURCE_DIR}/*.png"
+ "${CPACK_CURRENT_BINARY_DIR}/background.tiff"
+ COMMAND_ERROR_IS_FATAL ANY)
\ No newline at end of file
diff --git a/cmake/apple/CPackPreBuild.cmake.in b/cmake/apple/CPackPreBuild.cmake.in
deleted file mode 100644
index 9686438e24e..00000000000
--- a/cmake/apple/CPackPreBuild.cmake.in
+++ /dev/null
@@ -1,24 +0,0 @@
-# Use @VAR@ for immediate expansion (e.g. @CMAKE_SOURCE_DIR@)
-# Use ${VAR} for delayed expansion (e.g. ${CMAKE_INSTALL_PREFIX})
-
-# Install resource files
-file(INSTALL "@CMAKE_CURRENT_BINARY_DIR@/Info.plist" DESTINATION "${CPACK_TEMPORARY_INSTALL_DIRECTORY}")
-file(INSTALL "@CMAKE_CURRENT_SOURCE_DIR@/icon.icns" DESTINATION "${CPACK_TEMPORARY_INSTALL_DIRECTORY}/Resources")
-file(INSTALL "@CMAKE_CURRENT_SOURCE_DIR@/project.icns" DESTINATION "${CPACK_TEMPORARY_INSTALL_DIRECTORY}/Resources")
-
-# tiff file is multi-resource (1x & 2x) created programatically using convert
-execute_process(COMMAND convert "@CMAKE_CURRENT_SOURCE_DIR@/*.png" "@CMAKE_CURRENT_BINARY_DIR@/background.tiff")
-
-# Updates appdmg.json with CPACK_TEMPORARY_INSTALL_DIRECTORY
-# - .DS_Store can be recreated using appdmg appdmg.json lmms.dmg
-# - Find new .DS_Store from the root of the DMG file
-# - cp /Volumes/lmms-x.x.x/.DS_Store ../cmake/apple/DS_Store
-configure_file("@CMAKE_CURRENT_BINARY_DIR@/_appdmg.json.in" "@CMAKE_CURRENT_BINARY_DIR@/appdmg.json")
-file(REMOVE "@CMAKE_CURRENT_BINARY_DIR@/_appdmg.json.in")
-
-# TODO: Port this script to CMake
-execute_process(COMMAND chmod u+x @CMAKE_CURRENT_BINARY_DIR@/package_apple.sh)
-execute_process(COMMAND @CMAKE_CURRENT_BINARY_DIR@/package_apple.sh ${CPACK_TEMPORARY_INSTALL_DIRECTORY} RESULT_VARIABLE EXIT_CODE)
-if(NOT EXIT_CODE EQUAL 0)
- message(FATAL_ERROR "Execution of package_apple.sh failed")
-endif()
\ No newline at end of file
diff --git a/cmake/apple/appdmg.json.in b/cmake/apple/appdmg.json.in
index 1835d6befc2..ec9fb5c7a3a 100644
--- a/cmake/apple/appdmg.json.in
+++ b/cmake/apple/appdmg.json.in
@@ -1,9 +1,9 @@
{
- "title": "@MACOSX_BUNDLE_DMG_TITLE@",
+ "title": "@APPDMG_VOLUME_NAME@",
"background": "@CMAKE_SOURCE_DIR@/cmake/apple/background.png",
"icon-size": 128,
"contents": [
- { "x": 139, "y": 200, "type": "file", "path": "${CPACK_TEMPORARY_INSTALL_DIRECTORY}/@MACOSX_BUNDLE_BUNDLE_NAME@.app" },
+ { "x": 139, "y": 200, "type": "file", "path": "${CPACK_TEMPORARY_INSTALL_DIRECTORY}/@PROJECT_NAME_UCASE@.app" },
{ "x": 568, "y": 200, "type": "link", "path": "/Applications" }
]
}
diff --git a/cmake/apple/lmms.plist.in b/cmake/apple/lmms.plist.in
index 88fe0b0bf06..b8982a86630 100644
--- a/cmake/apple/lmms.plist.in
+++ b/cmake/apple/lmms.plist.in
@@ -7,13 +7,13 @@
English
CFBundleIconFile
- @MACOSX_BUNDLE_ICON_FILE@
+ @MACOS_ICON@
CFBundlePackageType
APPL
CFBundleGetInfoString
- @MACOSX_BUNDLE_GUI_IDENTIFIER@ @MACOSX_BUNDLE_LONG_VERSION_STRING@
+ @PROJECT_NAME_UCASE@ @VERSION@
CFBundleSignature
- @MACOSX_BUNDLE_GUI_IDENTIFIER@
+ @PROJECT_NAME_UCASE@
CFBundleExecutable
- @MACOSX_BUNDLE_GUI_IDENTIFIER@
+ @PROJECT_NAME_UCASE@
CFBundleVersion
- @MACOSX_BUNDLE_LONG_VERSION_STRING@
+ @VERSION@
CFBundleShortVersionString
- @MACOSX_BUNDLE_LONG_VERSION_STRING@
+ @VERSION@
CFBundleName
- @MACOSX_BUNDLE_BUNDLE_NAME@
+ @PROJECT_NAME_UCASE@
CFBundleInfoDictionaryVersion
6.0
CFBundleIdentifier
- @MACOSX_BUNDLE_MIMETYPE_ID@
+ @MACOS_MIMETYPE_ID@
CFBundleDocumentTypes
-
+
CFBundleTypeExtensions
mmpz
CFBundleTypeIconFile
- @MACOSX_BUNDLE_MIMETYPE_ICON@
+ @MACOS_MIMETYPE_ICON@
CFBundleTypeName
- @MACOSX_BUNDLE_GUI_IDENTIFIER@ Project
+ @PROJECT_NAME_UCASE@ Project
CFBundleTypeOSTypes
mmpz
@@ -69,19 +69,19 @@
Editor
CFBundleTypeMIMETypes
- @MACOSX_BUNDLE_MIMETYPE@
+ @MACOS_MIMETYPE@
-
+
CFBundleTypeExtensions
mmp
CFBundleTypeIconFile
- @MACOSX_BUNDLE_MIMETYPE_ICON@
+ @MACOS_MIMETYPE_ICON@
CFBundleTypeName
- @MACOSX_BUNDLE_GUI_IDENTIFIER@ Project (uncompressed)
+ @PROJECT_NAME_UCASE@ Project (uncompressed)
CFBundleTypeOSTypes
mmp
@@ -90,23 +90,23 @@
Editor
CFBundleTypeMIMETypes
- @MACOSX_BUNDLE_MIMETYPE@
+ @MACOS_MIMETYPE@
-
+
UTExportedTypeDeclarations
UTTypeIdentifier
- @MACOSX_BUNDLE_MIMETYPE_ID@.mmpz
+ @MACOS_MIMETYPE_ID@.mmpz
UTTypeReferenceURL
- @MACOSX_BUNDLE_PROJECT_URL@
+ @PROJECT_URL@
UTTypeDescription
- @MACOSX_BUNDLE_GUI_IDENTIFIER@ Project
+ @PROJECT_NAME_UCASE@ Project
UTTypeIconFile
- @MACOSX_BUNDLE_MIMETYPE_ICON@
+ @MACOS_MIMETYPE_ICON@
UTTypeConformsTo
public.data
@@ -122,13 +122,13 @@
UTTypeIdentifier
- @MACOSX_BUNDLE_MIMETYPE_ID@.mmp
+ @MACOS_MIMETYPE_ID@.mmp
UTTypeReferenceURL
- @MACOSX_BUNDLE_PROJECT_URL@
+ @PROJECT_URL@
UTTypeDescription
- @MACOSX_BUNDLE_GUI_IDENTIFIER@ Project (uncompressed)
+ @PROJECT_NAME_UCASE@ Project (uncompressed)
UTTypeIconFile
- @MACOSX_BUNDLE_MIMETYPE_ICON@
+ @MACOS_MIMETYPE_ICON@
UTTypeConformsTo
public.xml
diff --git a/cmake/apple/package_apple.sh.in b/cmake/apple/package_apple.sh.in
deleted file mode 100644
index 13310aa3906..00000000000
--- a/cmake/apple/package_apple.sh.in
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/bin/bash
-# Creates Apple ".app" bundle for @PROJECT_NAME_UCASE@
-# Note:
-# Examine linkings using `otool -L somelib.so`
-# Debug the loading of dynamic libraries using `export DYLD_PRINT_LIBRARIES=1`
-
-set -e
-
-MSG_COLOR='\x1B[1;36m'
-COLOR_RESET='\x1B[0m'
-APP="$1/@PROJECT_NAME_UCASE@.app"
-echo -e "$MSG_COLOR\n\nCreating App Bundle \"$APP\"...$COLOR_RESET"
-
-qtpath="$(dirname "@QT_QMAKE_EXECUTABLE@")"
-export PATH="$PATH:$qtpath"
-
-# Ensure an install path was passed in
-if [ -z "$1" ]; then
- echo "An install folder was not provided"
- exit 1
-fi
-
-if [ -d "$1" ]; then
- echo "Directory $1 exists, using..."
-else
- echo "Provided directory '$1' does not exist"
-fi
-
-# Create .app bundle containing contents from CPACK_TEMPORARY_INSTALL_DIRECTORY
-mkdir -p "$APP/Contents/MacOS"
-mkdir -p "$APP/Contents/Frameworks"
-mkdir -p "$APP/Contents/Resources"
-cd "$1"
-for file in *; do
- if [ "$(basename "$file")" != "@PROJECT_NAME_UCASE@.app" ]; then
- mv "$file" "$APP/Contents/"
- fi
-done
-
-# Make all libraries writable for macdeployqt
-cd "$APP"
-find . -type f -print0 | xargs -0 chmod u+w
-
-# Move lmms binary
-mv "$APP/Contents/bin/@CMAKE_PROJECT_NAME@" "$APP/Contents/MacOS/@CMAKE_PROJECT_NAME@"
-# shellcheck disable=SC2115
-rm -rf "$APP/bin"
-
-# Fix zyn linking
-mv "$APP/Contents/lib/lmms/RemoteZynAddSubFx" "$APP/Contents/MacOS/RemoteZynAddSubFx"
-
-# Replace @rpath with @loader_path for Carla
-# See also plugins/CarlaBase/CMakeLists.txt
-# This MUST be done BEFORE calling macdeployqt
-install_name_tool -change @rpath/libcarlabase.dylib \
- @loader_path/libcarlabase.dylib \
- "$APP/Contents/lib/lmms/libcarlapatchbay.so"
-
-install_name_tool -change @rpath/libcarlabase.dylib \
- @loader_path/libcarlabase.dylib \
- "$APP/Contents/lib/lmms/libcarlarack.so"
-
-# Link lmms binary
-_executables="${_executables} -executable=$APP/Contents/MacOS/RemoteZynAddSubFx"
-
-# Build a list of shared objects in target/lib/lmms
-for file in "$APP/Contents/lib/lmms/"*.so; do
- _thisfile="$APP/Contents/lib/lmms/${file##*/}"
- _executables="${_executables} -executable=$_thisfile"
-done
-
-# Build a list of shared objects in target/lib/lmms/ladspa
-for file in "$APP/Contents/lib/lmms/ladspa/"*.so; do
- _thisfile="$APP/Contents/lib/lmms/ladspa/${file##*/}"
- _executables="${_executables} -executable=$_thisfile"
-done
-
-# Finalize .app
-# shellcheck disable=SC2086
-# macdeployqt "$APP" $_executables
-
-# Carla is a standalone plugin. Remove library, look for it side-by-side LMMS.app
-# This MUST be done AFTER calling macdeployqt
-#
-# For example:
-# /Applications/LMMS.app
-# /Applications/Carla.app
-carlalibs=$(echo "@CARLA_LIBRARIES@"|tr ";" "\n")
-
-# Loop over all libcarlas, fix linking
-for file in "$APP/Contents/lib/lmms/"libcarla*; do
- _thisfile="$APP/Contents/lib/lmms/${file##*/}"
- for lib in $carlalibs; do
- _oldpath="../../Frameworks/lib${lib}.dylib"
- _newpath="Carla.app/Contents/MacOS/lib${lib}.dylib"
- # shellcheck disable=SC2086
- install_name_tool -change @loader_path/$_oldpath \
- @executable_path/../../../$_newpath \
- "$_thisfile"
- rm -f "$APP/Contents/Frameworks/lib${lib}.dylib"
- done
-done
-
-# Codesign
-codesign --force --deep --sign - "$APP"
-
-echo -e "\nFinished.\n\n"