From 6bbc1271e46033552b9ffc87d93ee7002151df7d Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Mon, 2 Apr 2018 18:35:58 +0200 Subject: [PATCH] Fix cross build for windows. --- 3rdparty/qtsingleapplication/qtlocalpeer.cpp | 15 +++++------ 3rdparty/qtsingleapplication/qtlocalpeer.h | 4 +-- 3rdparty/qtsingleapplication/qtlockedfile.h | 4 +-- .../qtsingleapplication/qtlockedfile_win.cpp | 14 ++-------- CMakeLists.txt | 3 +-- dist/strawberry.ico | Bin 0 -> 16958 bytes dist/strawberry.png | Bin 0 -> 6473 bytes dist/windres.rc.in | 25 ++++++++++++++++++ src/CMakeLists.txt | 8 +++--- src/collection/collectionwatcher.cpp | 12 ++++----- src/core/main.cpp | 16 +++++------ src/core/mainwindow.cpp | 12 --------- src/core/scangiomodulepath.cpp | 4 +++ src/core/windows7thumbbar.cpp | 21 ++++++++------- src/engine/directsounddevicefinder.cpp | 2 +- src/settings/backendsettingspage.cpp | 4 +++ 16 files changed, 72 insertions(+), 72 deletions(-) create mode 100644 dist/strawberry.ico create mode 100644 dist/strawberry.png create mode 100644 dist/windres.rc.in diff --git a/3rdparty/qtsingleapplication/qtlocalpeer.cpp b/3rdparty/qtsingleapplication/qtlocalpeer.cpp index 837752b63..b3ddc73cd 100644 --- a/3rdparty/qtsingleapplication/qtlocalpeer.cpp +++ b/3rdparty/qtsingleapplication/qtlocalpeer.cpp @@ -54,14 +54,12 @@ static PProcessIdToSessionId pProcessIdToSessionId = 0; #include #endif -namespace QtLP_Private { #include "qtlockedfile.cpp" #if defined(Q_OS_WIN) #include "qtlockedfile_win.cpp" #else #include "qtlockedfile_unix.cpp" #endif -} const char* QtLocalPeer::ack = "ack"; @@ -81,8 +79,7 @@ QtLocalPeer::QtLocalPeer(QObject* parent, const QString &appId) QByteArray idc = id.toUtf8(); quint16 idNum = qChecksum(idc.constData(), idc.size()); - socketName = QLatin1String("qtsingleapp-") + prefix - + QLatin1Char('-') + QString::number(idNum, 16); + socketName = QLatin1String("qtsingleapp-") + prefix + QLatin1Char('-') + QString::number(idNum, 16); #if defined(Q_OS_WIN) if (!pProcessIdToSessionId) { @@ -99,9 +96,7 @@ QtLocalPeer::QtLocalPeer(QObject* parent, const QString &appId) #endif server = new QLocalServer(this); - QString lockName = QDir(QDir::tempPath()).absolutePath() - + QLatin1Char('/') + socketName - + QLatin1String("-lockfile"); + QString lockName = QDir(QDir::tempPath()).absolutePath() + QLatin1Char('/') + socketName + QLatin1String("-lockfile"); lockFile.setFileName(lockName); lockFile.open(QIODevice::ReadWrite); } @@ -113,7 +108,8 @@ bool QtLocalPeer::isClient() if (lockFile.isLocked()) return false; - if (!lockFile.lock(QtLP_Private::QtLockedFile::WriteLock, false)) + //if (!lockFile.lock(QtLP_Private::QtLockedFile::WriteLock, false)) + if (!lockFile.lock(QtLockedFile::WriteLock, false)) return true; bool res = server->listen(socketName); @@ -187,7 +183,8 @@ void QtLocalPeer::receiveConnection() got = ds.readRawData(uMsgBuf, remaining); remaining -= got; uMsgBuf += got; - } while (remaining && got >= 0 && socket->waitForReadyRead(2000)); + } + while (remaining && got >= 0 && socket->waitForReadyRead(2000)); if (got < 0) { qWarning("QtLocalPeer: Message reception failed %s", socket->errorString().toLatin1().constData()); delete socket; diff --git a/3rdparty/qtsingleapplication/qtlocalpeer.h b/3rdparty/qtsingleapplication/qtlocalpeer.h index 7b3fa8159..f3e7ad89c 100644 --- a/3rdparty/qtsingleapplication/qtlocalpeer.h +++ b/3rdparty/qtsingleapplication/qtlocalpeer.h @@ -66,8 +66,8 @@ protected Q_SLOTS: protected: QString id; QString socketName; - QLocalServer* server; - QtLP_Private::QtLockedFile lockFile; + QLocalServer *server; + QtLockedFile lockFile; private: static const char* ack; diff --git a/3rdparty/qtsingleapplication/qtlockedfile.h b/3rdparty/qtsingleapplication/qtlockedfile.h index 2af3e3ea2..3ef0b5c0b 100644 --- a/3rdparty/qtsingleapplication/qtlockedfile.h +++ b/3rdparty/qtsingleapplication/qtlockedfile.h @@ -61,8 +61,6 @@ # define QT_QTLOCKEDFILE_EXPORT #endif -namespace QtLP_Private { - class QT_QTLOCKEDFILE_EXPORT QtLockedFile : public QFile { public: @@ -92,5 +90,5 @@ private: #endif LockMode m_lock_mode; }; -} + #endif diff --git a/3rdparty/qtsingleapplication/qtlockedfile_win.cpp b/3rdparty/qtsingleapplication/qtlockedfile_win.cpp index ed2995f3f..5f5bda50f 100644 --- a/3rdparty/qtsingleapplication/qtlockedfile_win.cpp +++ b/3rdparty/qtsingleapplication/qtlockedfile_win.cpp @@ -58,24 +58,14 @@ Qt::HANDLE QtLockedFile::getMutexHandle(int idx, bool doCreate) Qt::HANDLE mutex; if (doCreate) { -#if (QT_VERSION < 0x050000) - QT_WA( { mutex = CreateMutexW(NULL, FALSE, (TCHAR*)mname.utf16()); }, - { mutex = CreateMutexA(NULL, FALSE, mname.toLocal8Bit().constData()); } ); -#else - mutex = CreateMutexW(NULL, FALSE, (TCHAR*)mname.utf16()); -#endif + mutex = CreateMutexW(NULL, FALSE, (WCHAR*)mname.utf16()); if (!mutex) { qErrnoWarning("QtLockedFile::lock(): CreateMutex failed"); return 0; } } else { -#if (QT_VERSION < 0x050000) - QT_WA( { mutex = OpenMutexW(SYNCHRONIZE | MUTEX_MODIFY_STATE, FALSE, (TCHAR*)mname.utf16()); }, - { mutex = OpenMutexA(SYNCHRONIZE | MUTEX_MODIFY_STATE, FALSE, mname.toLocal8Bit().constData()); } ); -#else - mutex = OpenMutexW(SYNCHRONIZE | MUTEX_MODIFY_STATE, FALSE, (TCHAR*)mname.utf16()); -#endif + mutex = OpenMutexW(SYNCHRONIZE | MUTEX_MODIFY_STATE, FALSE, (WCHAR*)mname.utf16()); if (!mutex) { if (GetLastError() != ERROR_FILE_NOT_FOUND) qErrnoWarning("QtLockedFile::lock(): OpenMutex failed"); diff --git a/CMakeLists.txt b/CMakeLists.txt index c87e562f7..3687d6705 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -105,6 +105,7 @@ pkg_check_modules(LIBVLC libvlc) pkg_check_modules(PHONON phonon4qt5) pkg_check_modules(LIBGPOD libgpod-1.0>=0.7.92) pkg_check_modules(LIBMTP libmtp>=1.0) + pkg_check_modules(LIBPULSE libpulse) pkg_check_modules(LIBXML libxml-2.0) pkg_check_modules(TAGLIB REQUIRED taglib>=1.8) @@ -115,7 +116,6 @@ find_library(PROTOBUF_STATIC_LIBRARY libprotobuf.a libprotobuf) if (WIN32) find_package(ZLIB REQUIRED) - find_library(QTSPARKLE_LIBRARIES qtsparkle-qt5) endif (WIN32) # LASTFM @@ -327,7 +327,6 @@ add_subdirectory(3rdparty/qocoa) add_subdirectory(src) if (WIN32) add_subdirectory(3rdparty/qtwin) - add_subdirectory(3rdparty/tinysvcmdns) endif (WIN32) add_subdirectory(dist) add_subdirectory(ext/libstrawberry-common) diff --git a/dist/strawberry.ico b/dist/strawberry.ico new file mode 100644 index 0000000000000000000000000000000000000000..5e8dc8bfa9bf78fcb089290e7a9c12afad4fa0bb GIT binary patch literal 16958 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 I_FbC)2lT~CV*mgE literal 0 HcmV?d00001 diff --git a/dist/strawberry.png b/dist/strawberry.png new file mode 100644 index 0000000000000000000000000000000000000000..3d0afa0a798523cb404b873f123e61f2f9713e37 GIT binary patch literal 6473 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 j<2tV6Ik;X#b7<00000NkvXXu0mjfzwK-? literal 0 HcmV?d00001 diff --git a/dist/windres.rc.in b/dist/windres.rc.in new file mode 100644 index 000000000..09cda2b65 --- /dev/null +++ b/dist/windres.rc.in @@ -0,0 +1,25 @@ +strawberry ICON "${CMAKE_CURRENT_SOURCE_DIR}/../dist/strawberry.ico" +1 VERSIONINFO +FILEVERSION ${STRAWBERRY_VERSION_MAJOR},${STRAWBERRY_VERSION_MINOR},0,0 +PRODUCTVERSION ${STRAWBERRY_VERSION_MAJOR},${STRAWBERRY_VERSION_MINOR},0,0 +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "080904E4" + BEGIN + VALUE "CompanyName", "Strawberry" + VALUE "FileDescription", "Strawberry Music Player" + VALUE "FileVersion", "${STRAWBERRY_VERSION_DISPLAY}" + VALUE "InternalName", "strawberry" + VALUE "LegalCopyright", "David Sansome" + VALUE "OriginalFilename", "strawberry.exe" + VALUE "ProductName", "Strawberry" + VALUE "ProductVersion", "${STRAWBERRY_VERSION_DISPLAY}" + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x809, 1252 + END +END diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8928f3fbe..28bca3153 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -31,6 +31,7 @@ include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURR if(WIN32) include_directories(../3rdparty/qtwin) + #include_directories(../3rdparty/qtsparkle) endif(WIN32) # Activate fast QString concatenation @@ -928,8 +929,6 @@ target_link_libraries(strawberry_lib qsqlite) if (WIN32) target_link_libraries(strawberry_lib ${ZLIB_LIBRARIES} - ${QTSPARKLE_LIBRARIES} - tinysvcmdns qtwin dsound ${QT_QTGUI_LIBRARY} @@ -962,10 +961,9 @@ if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug" AND NOT ENABLE_WIN32_CONSOLE) set(STRAWBERRY-WIN32-FLAG WIN32) endif (NOT CMAKE_BUILD_TYPE STREQUAL "Debug" AND NOT ENABLE_WIN32_CONSOLE) -# resource file for windows +# Resource file for windows if(WIN32) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../dist/windows/windres.rc.in - ${CMAKE_CURRENT_BINARY_DIR}/windres.rc) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../dist/windres.rc.in ${CMAKE_CURRENT_BINARY_DIR}/windres.rc) set(STRAWBERRY-WIN32-RESOURCES windres.rc) endif(WIN32) diff --git a/src/collection/collectionwatcher.cpp b/src/collection/collectionwatcher.cpp index c4a9965df..8ab777f02 100644 --- a/src/collection/collectionwatcher.cpp +++ b/src/collection/collectionwatcher.cpp @@ -23,6 +23,11 @@ #include #include +// This is defined by one of the windows headers that is included by taglib. +#ifdef RemoveDirectory +#undef RemoveDirectory +#endif + #include "collectionwatcher.h" #include "collectionbackend.h" @@ -44,11 +49,6 @@ #include #include -// This is defined by one of the windows headers that is included by taglib. -#ifdef RemoveDirectory -#undef RemoveDirectory -#endif - namespace { static const char *kNoMediaFile = ".nomedia"; static const char *kNoMusicFile = ".nomusic"; @@ -587,7 +587,7 @@ void CollectionWatcher::AddWatch(const Directory &dir, const QString &path) { } -void CollectionWatcher::RemoveDirectory(const Directory& dir) { +void CollectionWatcher::RemoveDirectory(const Directory &dir) { rescan_queue_.remove(dir.id); watched_dirs_.remove(dir.id); diff --git a/src/core/main.cpp b/src/core/main.cpp index 2d6f38e33..0cc7656c8 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -19,6 +19,7 @@ */ #include "config.h" +#include "version.h" #include @@ -42,10 +43,11 @@ #endif #ifdef Q_OS_WIN32 - #define _WIN32_WINNT 0x0600 + #ifndef _WIN32_WINNT + #define _WIN32_WINNT 0x0600 + #endif #include #include - #include #endif // Q_OS_WIN32 #include @@ -91,7 +93,7 @@ #ifdef HAVE_GSTREAMER #include "engine/gstengine.h" #endif -#include "version.h" + #include "widgets/osd.h" #include "tagreadermessages.pb.h" @@ -185,8 +187,7 @@ int main(int argc, char* argv[]) { QtSingleApplication a(argc, argv); #ifdef Q_OS_DARWIN - QCoreApplication::setCollectionPaths( - QStringList() << QCoreApplication::applicationDirPath() + "/../PlugIns"); + QCoreApplication::setCollectionPaths(QStringList() << QCoreApplication::applicationDirPath() + "/../PlugIns"); #endif a.setQuitOnLastWindowClosed(false); @@ -224,11 +225,6 @@ int main(int argc, char* argv[]) { // Resources Q_INIT_RESOURCE(data); - -#ifdef Q_OS_WIN32 - // Set the language for qtsparkle - qtsparkle::LoadTranslations(language); -#endif // Icons IconLoader::Init(); diff --git a/src/core/mainwindow.cpp b/src/core/mainwindow.cpp index 70e822d0b..bd075ef9e 100644 --- a/src/core/mainwindow.cpp +++ b/src/core/mainwindow.cpp @@ -49,10 +49,6 @@ #include #include -#ifdef Q_OS_WIN32 - #include -#endif - #include "core/appearance.h" #include "core/application.h" #include "core/commandlineoptions.h" @@ -548,14 +544,6 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSD *osd, co connect(check_updates, SIGNAL(triggered(bool)), SLOT(CheckForUpdates())); #endif -#ifdef Q_OS_WIN32 - qLog(Debug) << "Creating sparkle updater"; - qtsparkle::Updater* updater = new qtsparkle::Updater(QUrl("https://strawberry-data.appspot.com/sparkle-windows"), this); - updater->SetNetworkAccessManager(new NetworkAccessManager(this)); - updater->SetVersion(STRAWBERRY_VERSION_PACKAGE); - connect(check_updates, SIGNAL(triggered()), updater, SLOT(CheckNow())); -#endif - // Global shortcuts connect(global_shortcuts_, SIGNAL(Play()), app_->player(), SLOT(Play())); connect(global_shortcuts_, SIGNAL(Pause()), app_->player(), SLOT(Pause())); diff --git a/src/core/scangiomodulepath.cpp b/src/core/scangiomodulepath.cpp index e0285eda4..635ca64dd 100644 --- a/src/core/scangiomodulepath.cpp +++ b/src/core/scangiomodulepath.cpp @@ -21,7 +21,11 @@ //#ifdef HAVE_GIO //#undef signals // Clashes with GIO, and not needed in this file #include + +#include +#include #include + #include "core/logging.h" //namespace { diff --git a/src/core/windows7thumbbar.cpp b/src/core/windows7thumbbar.cpp index 41a83bf3e..6584e3f7c 100644 --- a/src/core/windows7thumbbar.cpp +++ b/src/core/windows7thumbbar.cpp @@ -28,13 +28,15 @@ #include "core/logging.h" #ifdef Q_OS_WIN32 -# define _WIN32_WINNT 0x0600 -# include -# include -# include + #ifndef _WIN32_WINNT + #define _WIN32_WINNT 0x0600 + #endif + #include + #include + #include +extern HICON qt_pixmapToWinHICON(const QPixmap &p); #endif // Q_OS_WIN32 - const int Windows7ThumbBar::kIconSize = 16; const int Windows7ThumbBar::kMaxButtonCount = 7; @@ -66,7 +68,7 @@ void Windows7ThumbBar::SetActions(const QList& actions) { static void SetupButton(const QAction *action, THUMBBUTTON *button) { if (action) { - button->hIcon = action->icon().pixmap(Windows7ThumbBar::kIconSize).toWinHICON(); + button->hIcon = qt_pixmapToWinHICON(action->icon().pixmap(Windows7ThumbBar::kIconSize)); button->dwFlags = action->isEnabled() ? THBF_ENABLED : THBF_DISABLED; // This is unsafe - doesn't obey 260-char restriction action->text().toWCharArray(button->szTip); @@ -108,8 +110,7 @@ void Windows7ThumbBar::HandleWinEvent(MSG *msg) { // Copied from win7 SDK shobjidl.h static const GUID CLSID_ITaskbarList ={ 0x56FDF344,0xFD6D,0x11d0,{0x95,0x8A,0x00,0x60,0x97,0xC9,0xA0,0x90}}; // Create the taskbar list - hr = CoCreateInstance(CLSID_ITaskbarList, nullptr, CLSCTX_ALL, - IID_ITaskbarList3, (void**)&taskbar_list_); + hr = CoCreateInstance(CLSID_ITaskbarList, nullptr, CLSCTX_ALL, IID_ITaskbarList3, (void**)&taskbar_list_); if (hr != S_OK) { qLog(Warning) << "Error creating the ITaskbarList3 interface" << hex << DWORD (hr); return; @@ -135,7 +136,7 @@ void Windows7ThumbBar::HandleWinEvent(MSG *msg) { } qLog(Debug) << "Adding buttons"; - hr = taskbar_list->ThumbBarAddButtons(widget_->winId(), actions_.count(), buttons); + hr = taskbar_list->ThumbBarAddButtons((HWND)widget_->winId(), actions_.count(), buttons); if (hr != S_OK) qLog(Debug) << "Failed to add buttons" << hex << DWORD (hr); for (int i = 0; i < actions_.count(); i++) { @@ -172,7 +173,7 @@ void Windows7ThumbBar::ActionChanged() { if (buttons->hIcon > 0) DestroyIcon(buttons->hIcon); } - taskbar_list->ThumbBarUpdateButtons(widget_->winId(), actions_.count(), buttons); + taskbar_list->ThumbBarUpdateButtons((HWND)widget_->winId(), actions_.count(), buttons); #endif // Q_OS_WIN32 } diff --git a/src/engine/directsounddevicefinder.cpp b/src/engine/directsounddevicefinder.cpp index 17a9fdcec..e448cfd99 100644 --- a/src/engine/directsounddevicefinder.cpp +++ b/src/engine/directsounddevicefinder.cpp @@ -48,7 +48,7 @@ BOOL DirectSoundDeviceFinder::EnumerateCallback(LPGUID guid, LPCSTR description, Device dev; dev.description = QString::fromUtf8(description); dev.device_property_value = QUuid(*guid).toByteArray(); - dev.icon_name = GuessIconName(dev.plugin_name, dev.description); + dev.iconname = GuessIconName(dev.string, dev.description); state->devices.append(dev); } diff --git a/src/settings/backendsettingspage.cpp b/src/settings/backendsettingspage.cpp index 2a91d66f0..c42d8cf8f 100644 --- a/src/settings/backendsettingspage.cpp +++ b/src/settings/backendsettingspage.cpp @@ -36,8 +36,12 @@ #include "core/iconloader.h" #include "engine/enginetype.h" #include "engine/enginebase.h" +#ifdef HAVE_GSTREAMER #include "engine/gstengine.h" +#endif +#ifdef HAVE_XINE #include "engine/xineengine.h" +#endif #include "engine/devicefinder.h" const char *BackendSettingsPage::kSettingsGroup = "Backend";