CPack: Refactor AppImage and Apple DMG Generation (#7252)

* CPack: Refactor AppImage and Apple DMG Generation
* Switch from linuxdeployqt to linuxdelpoy
* Add ARM64 AppImage support
* Add support for `.run` installers using `makeself`, an alternative to AppImage
* Refactor BashCompletion.cmake
* Enable CPack debugging via `WANT_DEBUG_CPACK`
* Add `download_binary`, `create_symlink` macros
* Qt6: Fix @rpath bug on macOS
* Detect and bundle LV2 UI Suil modules (Related #7201)
* Allow remote plugins to honor `LMMS_PLUGIN_DIR`
* Add .github/workflows/deps-ubuntu-24.04-gcc.txt
* Fix waveforms FileDialog

Co-authored-by: Dalton Messmer <messmer.dalton@gmail.com>
This commit is contained in:
Tres Finocchiaro
2025-02-01 04:02:19 -05:00
committed by GitHub
parent 77ca0f8994
commit 10bdf122f8
30 changed files with 1069 additions and 510 deletions

View File

@@ -181,11 +181,11 @@ set_target_properties(lmms PROPERTIES
set_target_properties(lmmsobjs PROPERTIES AUTOUIC_SEARCH_PATHS "gui/modals")
IF(NOT WIN32)
IF(NOT WIN32 AND NOT LMMS_BUILD_APPLE)
if(CMAKE_INSTALL_MANDIR)
SET(INSTALL_MANDIR ${CMAKE_INSTALL_MANDIR})
ELSE(CMAKE_INSTALL_MANDIR)
SET(INSTALL_MANDIR ${CMAKE_INSTALL_PREFIX}/share/man)
SET(INSTALL_MANDIR share/man)
ENDIF(CMAKE_INSTALL_MANDIR)
INSTALL(FILES "${CMAKE_BINARY_DIR}/lmms.1.gz"
DESTINATION "${INSTALL_MANDIR}/man1/"

View File

@@ -235,6 +235,11 @@ bool RemotePlugin::init(const QString &pluginExecutable,
m_failed = false;
}
QString exec = QFileInfo(QDir("plugins:"), pluginExecutable).absoluteFilePath();
// We may have received a directory via a environment variable
if (const char* env_path = std::getenv("LMMS_PLUGIN_DIR"))
exec = QFileInfo(QDir(env_path), pluginExecutable).absoluteFilePath();
#ifdef LMMS_BUILD_APPLE
// search current directory first
QString curDir = QCoreApplication::applicationDirPath() + "/" + pluginExecutable;
@@ -252,7 +257,7 @@ bool RemotePlugin::init(const QString &pluginExecutable,
if( ! QFile( exec ).exists() )
{
qWarning( "Remote plugin '%s' not found.",
qWarning( "Remote plugin '%s' not found",
exec.toUtf8().constData() );
m_failed = true;
invalidate();

View File

@@ -467,7 +467,8 @@ AudioSoundIo::setupWidget::setupWidget( QWidget * _parent ) :
reconnectSoundIo();
bool ok = connect( &m_backendModel, SIGNAL(dataChanged()), &m_setupUtil, SLOT(reconnectSoundIo()));
[[maybe_unused]] bool ok = connect(&m_backendModel, &ComboBoxModel::dataChanged,
&m_setupUtil, &AudioSoundIoSetupUtil::reconnectSoundIo);
assert(ok);
m_backend->setModel( &m_backendModel );
@@ -476,7 +477,8 @@ AudioSoundIo::setupWidget::setupWidget( QWidget * _parent ) :
AudioSoundIo::setupWidget::~setupWidget()
{
bool ok = disconnect( &m_backendModel, SIGNAL(dataChanged()), &m_setupUtil, SLOT(reconnectSoundIo()));
[[maybe_unused]] bool ok = disconnect(&m_backendModel, &ComboBoxModel::dataChanged,
&m_setupUtil, &AudioSoundIoSetupUtil::reconnectSoundIo);
assert(ok);
if (m_soundio)
{

View File

@@ -39,7 +39,7 @@ namespace lmms::gui {
QString SampleLoader::openAudioFile(const QString& previousFile)
{
auto openFileDialog = FileDialog(nullptr, QObject::tr("Open audio file"));
auto dir = !previousFile.isEmpty() ? PathUtil::toAbsolute(previousFile) : ConfigManager::inst()->userSamplesDir();
auto dir = !previousFile.isEmpty() ? QFileInfo(PathUtil::toAbsolute(previousFile)).absolutePath() : ConfigManager::inst()->userSamplesDir();
// change dir to position of previously opened file
openFileDialog.setDirectory(dir);