mirror of
https://github.com/clementine-player/Clementine
synced 2025-01-21 22:25:39 +01:00
Merge pull request #6459 from clementine-player/mingw
Build windows release
This commit is contained in:
commit
62edd70188
@ -94,6 +94,23 @@ commands:
|
||||
- << parameters.build >>/*
|
||||
- store_artifacts:
|
||||
path: /tmp/artifacts/<< parameters.build >>
|
||||
|
||||
copy_windows_artifacts:
|
||||
description: Copy build artifacts
|
||||
steps:
|
||||
- run:
|
||||
name: Create artifact output directory
|
||||
command: mkdir -p /tmp/artifacts/windows
|
||||
- run:
|
||||
name: Copy exe to artifacts directory
|
||||
command: cp dist/windows/ClementineSetup*.exe /tmp/artifacts/windows
|
||||
- persist_to_workspace:
|
||||
root: /tmp/artifacts
|
||||
paths:
|
||||
- windows/*
|
||||
- store_artifacts:
|
||||
path: /tmp/artifacts/windows
|
||||
|
||||
install_bionic_dependencies:
|
||||
description: Install Bionic dependencies
|
||||
steps:
|
||||
@ -478,6 +495,184 @@ jobs:
|
||||
- copy_rpm_artifacts:
|
||||
build: fedora-31
|
||||
|
||||
build_mingw:
|
||||
docker:
|
||||
- image: eu.gcr.io/clementine-data/mingw-w64:latest
|
||||
environment:
|
||||
PKG_CONFIG_PATH: /target/lib/pkgconfig
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: CMake
|
||||
working_directory: bin
|
||||
command: >
|
||||
cmake ..
|
||||
-DCMAKE_TOOLCHAIN_FILE=../Toolchain-mingw32.cmake
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
- run:
|
||||
name: Make
|
||||
working_directory: bin
|
||||
command: make -j2
|
||||
- run:
|
||||
name: Copy output exes
|
||||
working_directory: dist/windows
|
||||
command: cp ../../bin/*.exe .
|
||||
- run:
|
||||
name: Copy base runtime DLLs
|
||||
command: >
|
||||
cp
|
||||
/usr/lib/gcc/i686-w64-mingw32/*-posix/libgcc_s_sjlj-1.dll
|
||||
/usr/lib/gcc/i686-w64-mingw32/*-posix/libstdc++-6.dll
|
||||
/usr/i686-w64-mingw32/lib/libwinpthread-1.dll
|
||||
~/project/dist/windows
|
||||
- run:
|
||||
name: Copy DLL dependencies
|
||||
working_directory: /target/bin
|
||||
command: >
|
||||
cp
|
||||
glew32.dll
|
||||
libcdio-16.dll
|
||||
libchromaprint.dll
|
||||
libeay32.dll
|
||||
libfaad.dll
|
||||
libffi-6.dll
|
||||
libfftw3-3.dll
|
||||
libFLAC-8.dll
|
||||
libgcrypt-20.dll
|
||||
libgio-2.0-0.dll
|
||||
libglib-2.0-0.dll
|
||||
libgmodule-2.0-0.dll
|
||||
libgmp-10.dll
|
||||
libgnutls-30.dll
|
||||
libgobject-2.0-0.dll
|
||||
libgpg-error-0.dll
|
||||
libgpod.dll
|
||||
libgstapp-1.0-0.dll
|
||||
libgstaudio-1.0-0.dll
|
||||
libgstbase-1.0-0.dll
|
||||
libgstcontroller-1.0-0.dll
|
||||
libgstfft-1.0-0.dll
|
||||
libgstnet-1.0-0.dll
|
||||
libgstpbutils-1.0-0.dll
|
||||
libgstreamer-1.0-0.dll
|
||||
libgstriff-1.0-0.dll
|
||||
libgstrtp-1.0-0.dll
|
||||
libgstrtsp-1.0-0.dll
|
||||
libgstsdp-1.0-0.dll
|
||||
libgsttag-1.0-0.dll
|
||||
libgstvideo-1.0-0.dll
|
||||
libgthread-2.0-0.dll
|
||||
libhogweed-4.dll
|
||||
libiconv-2.dll
|
||||
libid3tag.dll
|
||||
libintl-8.dll
|
||||
libmad.dll
|
||||
libmms-0.dll
|
||||
libmp3lame-0.dll
|
||||
libnettle-6.dll
|
||||
libogg-0.dll
|
||||
liboil-0.3-0.dll
|
||||
liborc-0.4-0.dll
|
||||
liborc-test-0.4-0.dll
|
||||
libp11-kit-0.dll
|
||||
libplist.dll
|
||||
libpsl-5.dll
|
||||
libprotobuf-17.dll
|
||||
libsoup-2.4-1.dll
|
||||
libspeex-1.dll
|
||||
libspotify.dll
|
||||
libsqlite3-0.dll
|
||||
libtag.dll
|
||||
libtasn1-6.dll
|
||||
libvorbis-0.dll
|
||||
libvorbisenc-2.dll
|
||||
libxml2-2.dll
|
||||
Qt5Concurrent.dll
|
||||
Qt5Core.dll
|
||||
Qt5Gui.dll
|
||||
Qt5Network.dll
|
||||
Qt5NetworkAuth.dll
|
||||
Qt5OpenGL.dll
|
||||
Qt5Sql.dll
|
||||
Qt5Svg.dll
|
||||
Qt5Widgets.dll
|
||||
Qt5WinExtras.dll
|
||||
Qt5Xml.dll
|
||||
Qt5XmlPatterns.dll
|
||||
ssleay32.dll
|
||||
zlib1.dll
|
||||
~/project/dist/windows
|
||||
- run: mkdir dist/windows/imageformats
|
||||
- run:
|
||||
name: Copy Qt imageformat plugin DLLs
|
||||
working_directory: /target/plugins
|
||||
command: >
|
||||
cp
|
||||
imageformats/qgif.dll
|
||||
imageformats/qjpeg.dll
|
||||
~/project/dist/windows/imageformats
|
||||
- run: mkdir dist/windows/platforms
|
||||
- run:
|
||||
name: Copy Qt platforms plugin DLLs
|
||||
working_directory: /target/plugins
|
||||
command: >
|
||||
cp
|
||||
platforms/qwindows.dll
|
||||
~/project/dist/windows/platforms
|
||||
- run: mkdir dist/windows/gio-modules
|
||||
- run:
|
||||
name: Copy GIO modules
|
||||
command: cp /target/lib/gio/modules/libgiognutls.dll dist/windows/gio-modules
|
||||
- run: mkdir dist/windows/gstreamer-plugins
|
||||
- run:
|
||||
name: Copy gstreamer plugins
|
||||
working_directory: /target/lib/gstreamer-1.0
|
||||
command: >
|
||||
cp
|
||||
libgstapetag.dll
|
||||
libgstapp.dll
|
||||
libgstasf.dll
|
||||
libgstaudioconvert.dll
|
||||
libgstaudiofx.dll
|
||||
libgstaudioparsers.dll
|
||||
libgstaudioresample.dll
|
||||
libgstaudiotestsrc.dll
|
||||
libgstautodetect.dll
|
||||
libgstcdio.dll
|
||||
libgstcoreelements.dll
|
||||
libgstdirectsoundsink.dll
|
||||
libgstequalizer.dll
|
||||
libgstfaad.dll
|
||||
libgstflac.dll
|
||||
libgstgdp.dll
|
||||
libgstgio.dll
|
||||
libgsticydemux.dll
|
||||
libgstid3demux.dll
|
||||
libgstisomp4.dll
|
||||
libgstlame.dll
|
||||
libgstlibav.dll
|
||||
libgstmad.dll
|
||||
libgstmms.dll
|
||||
libgstogg.dll
|
||||
libgstplayback.dll
|
||||
libgstreplaygain.dll
|
||||
libgstsouphttpsrc.dll
|
||||
libgstspectrum.dll
|
||||
libgstspeex.dll
|
||||
libgsttaglib.dll
|
||||
libgsttcp.dll
|
||||
libgsttypefindfunctions.dll
|
||||
libgstudp.dll
|
||||
libgstvolume.dll
|
||||
libgstvorbis.dll
|
||||
libgstwavparse.dll
|
||||
~/project/dist/windows/gstreamer-plugins
|
||||
- run:
|
||||
name: Build windows installer
|
||||
working_directory: dist/windows
|
||||
command: makensis clementine.nsi
|
||||
- copy_windows_artifacts
|
||||
|
||||
build_mac:
|
||||
macos:
|
||||
xcode: "11.0.0"
|
||||
@ -587,6 +782,7 @@ workflows:
|
||||
- build_fedora_29_64
|
||||
- build_fedora_30_64
|
||||
- build_fedora_31_64
|
||||
- build_mingw
|
||||
- build_mac:
|
||||
filters:
|
||||
branches:
|
||||
@ -605,6 +801,7 @@ workflows:
|
||||
- build_fedora_29_64
|
||||
- build_fedora_30_64
|
||||
- build_fedora_31_64
|
||||
- build_mingw
|
||||
- build_mac
|
||||
filters:
|
||||
branches:
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -5,7 +5,6 @@
|
||||
# *.[oa]
|
||||
# *~
|
||||
*.pyc
|
||||
*.dll
|
||||
*.exe
|
||||
*.pyd
|
||||
build/
|
||||
@ -19,7 +18,6 @@ dist/windows/clementine.nsi
|
||||
dist/windows/gstreamer-plugins
|
||||
dist/windows/gio-modules
|
||||
dist/windows/imageformats
|
||||
dist/windows/nsisplugins
|
||||
dist/windows/PyQt4
|
||||
dist/windows/libpython2.7.zip
|
||||
mingw/
|
||||
|
5
3rdparty/tinysvcmdns/CMakeLists.txt
vendored
5
3rdparty/tinysvcmdns/CMakeLists.txt
vendored
@ -6,15 +6,10 @@ set(TINYSVCMDNS-SOURCES
|
||||
mdnsd.c
|
||||
)
|
||||
|
||||
find_library(PTHREAD
|
||||
pthread
|
||||
)
|
||||
|
||||
add_library(tinysvcmdns STATIC
|
||||
${TINYSVCMDNS-SOURCES}
|
||||
)
|
||||
|
||||
target_link_libraries(tinysvcmdns
|
||||
${PTHREAD}
|
||||
ws2_32
|
||||
)
|
||||
|
@ -78,7 +78,6 @@ pkg_check_modules(TAGLIB taglib)
|
||||
|
||||
if (WIN32)
|
||||
find_package(ZLIB REQUIRED)
|
||||
find_library(QTSPARKLE_LIBRARIES qtsparkle-qt5)
|
||||
endif (WIN32)
|
||||
|
||||
find_library(LASTFM5_LIBRARIES lastfm5)
|
||||
@ -90,9 +89,9 @@ find_path(SPARSEHASH_INCLUDE_DIRS google/sparsetable)
|
||||
# QT
|
||||
set(QT_MIN_VERSION 5.6.0)
|
||||
find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Concurrent Widgets Network Sql Xml OpenGL Test)
|
||||
find_package(Qt5DBus ${QT_MIN_VERSION})
|
||||
if(HAVE_X11)
|
||||
find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS X11Extras)
|
||||
find_package(Qt5DBus ${QT_MIN_VERSION})
|
||||
endif()
|
||||
if(APPLE)
|
||||
find_package(Qt5 REQUIRED COMPONENTS MacExtras)
|
||||
|
17
Toolchain-mingw32.cmake
Normal file
17
Toolchain-mingw32.cmake
Normal file
@ -0,0 +1,17 @@
|
||||
# the name of the target operating system
|
||||
SET(CMAKE_SYSTEM_NAME Windows)
|
||||
|
||||
# which compilers to use for C and C++
|
||||
SET(CMAKE_C_COMPILER i686-w64-mingw32-gcc)
|
||||
SET(CMAKE_CXX_COMPILER i686-w64-mingw32-g++)
|
||||
SET(CMAKE_RC_COMPILER i686-w64-mingw32-windres)
|
||||
|
||||
# here is the target environment located
|
||||
SET(CMAKE_FIND_ROOT_PATH /target )
|
||||
|
||||
# adjust the default behaviour of the FIND_XXX() commands:
|
||||
# search headers and libraries in the target environment, search
|
||||
# programs in the host environment
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
37
dist/windows/clementine.nsi.in
vendored
37
dist/windows/clementine.nsi.in
vendored
@ -274,7 +274,6 @@ Section "Clementine" Clementine
|
||||
File "libcdio-16.dll"
|
||||
File "libchromaprint.dll"
|
||||
File "libeay32.dll"
|
||||
File "libfaac.dll"
|
||||
File "libfaad.dll"
|
||||
File "libffi-6.dll"
|
||||
File "libfftw3-3.dll"
|
||||
@ -308,7 +307,6 @@ Section "Clementine" Clementine
|
||||
File "libiconv-2.dll"
|
||||
File "libid3tag.dll"
|
||||
File "libintl-8.dll"
|
||||
File "liblastfm.dll"
|
||||
File "libmad.dll"
|
||||
File "libmms-0.dll"
|
||||
File "libmp3lame-0.dll"
|
||||
@ -320,8 +318,7 @@ Section "Clementine" Clementine
|
||||
File "libp11-kit-0.dll"
|
||||
File "libplist.dll"
|
||||
File "libpsl-5.dll"
|
||||
File "libprotobuf-9.dll"
|
||||
File "libqjson.dll"
|
||||
File "libprotobuf-17.dll"
|
||||
File "libsoup-2.4-1.dll"
|
||||
File "libspeex-1.dll"
|
||||
File "libspotify.dll"
|
||||
@ -331,16 +328,19 @@ Section "Clementine" Clementine
|
||||
File "libtasn1-6.dll"
|
||||
File "libvorbis-0.dll"
|
||||
File "libvorbisenc-2.dll"
|
||||
File "libwinpthread-1.dll"
|
||||
File "libxml2-2.dll"
|
||||
File "mingwm10.dll"
|
||||
File "pthreadGC2.dll"
|
||||
File "QtCore4.dll"
|
||||
File "QtGui4.dll"
|
||||
File "QtNetwork4.dll"
|
||||
File "QtOpenGL4.dll"
|
||||
File "QtSql4.dll"
|
||||
File "QtSvg4.dll"
|
||||
File "QtXml4.dll"
|
||||
File "Qt5Concurrent.dll"
|
||||
File "Qt5Core.dll"
|
||||
File "Qt5Gui.dll"
|
||||
File "Qt5Network.dll"
|
||||
File "Qt5OpenGL.dll"
|
||||
File "Qt5Sql.dll"
|
||||
File "Qt5Svg.dll"
|
||||
File "Qt5Widgets.dll"
|
||||
File "Qt5WinExtras.dll"
|
||||
File "Qt5Xml.dll"
|
||||
File "Qt5XmlPatterns.dll"
|
||||
File "ssleay32.dll"
|
||||
File "zlib1.dll"
|
||||
|
||||
@ -403,8 +403,14 @@ SectionEnd
|
||||
Section "Qt image format plugins" imageformats
|
||||
SetOutPath "$INSTDIR\imageformats"
|
||||
|
||||
File "/oname=qgif4.dll" "imageformats\qgif4.dll"
|
||||
File "/oname=qjpeg4.dll" "imageformats\qjpeg4.dll"
|
||||
File "/oname=qgif.dll" "imageformats\qgif.dll"
|
||||
File "/oname=qjpeg.dll" "imageformats\qjpeg.dll"
|
||||
SectionEnd
|
||||
|
||||
Section "Qt platform plugins" platforms
|
||||
SetOutPath "$INSTDIR\platforms"
|
||||
|
||||
File "/oname=qwindows.dll" "platforms\qwindows.dll"
|
||||
SectionEnd
|
||||
|
||||
Section "GIO modules" gio-modules
|
||||
@ -429,7 +435,6 @@ Section "Gstreamer plugins" gstreamer-plugins
|
||||
File "/oname=libgstcoreelements.dll" "gstreamer-plugins\libgstcoreelements.dll"
|
||||
File "/oname=libgstdirectsoundsink.dll" "gstreamer-plugins\libgstdirectsoundsink.dll"
|
||||
File "/oname=libgstequalizer.dll" "gstreamer-plugins\libgstequalizer.dll"
|
||||
File "/oname=libgstfaac.dll" "gstreamer-plugins\libgstfaac.dll"
|
||||
File "/oname=libgstfaad.dll" "gstreamer-plugins\libgstfaad.dll"
|
||||
File "/oname=libgstflac.dll" "gstreamer-plugins\libgstflac.dll"
|
||||
File "/oname=libgstgdp.dll" "gstreamer-plugins\libgstgdp.dll"
|
||||
|
BIN
dist/windows/nsisplugins/KillProc.dll
vendored
Normal file
BIN
dist/windows/nsisplugins/KillProc.dll
vendored
Normal file
Binary file not shown.
BIN
dist/windows/nsisplugins/ShellExecAsUser.dll
vendored
Normal file
BIN
dist/windows/nsisplugins/ShellExecAsUser.dll
vendored
Normal file
Binary file not shown.
BIN
dist/windows/nsisplugins/nsisos.dll
vendored
Normal file
BIN
dist/windows/nsisplugins/nsisos.dll
vendored
Normal file
Binary file not shown.
@ -1357,7 +1357,6 @@ if (WIN32)
|
||||
target_link_libraries(clementine_lib
|
||||
protobuf
|
||||
${ZLIB_LIBRARIES}
|
||||
${QTSPARKLE_LIBRARIES}
|
||||
tinysvcmdns
|
||||
dsound
|
||||
)
|
||||
|
@ -96,10 +96,6 @@ QDBusArgument& operator<<(QDBusArgument& arg, const QImage& image);
|
||||
const QDBusArgument& operator>>(const QDBusArgument& arg, QImage& image);
|
||||
#endif
|
||||
|
||||
#ifdef Q_OS_WIN32
|
||||
#include <qtsparkle-qt5/Updater>
|
||||
#endif
|
||||
|
||||
// Load sqlite plugin on windows and mac.
|
||||
#include <QtPlugin>
|
||||
Q_IMPORT_PLUGIN(QSQLiteDriverPlugin)
|
||||
@ -415,11 +411,6 @@ int main(int argc, char* argv[]) {
|
||||
LoadTranslation("clementine", a.applicationDirPath(), language);
|
||||
LoadTranslation("clementine", QDir::currentPath(), language);
|
||||
|
||||
#ifdef Q_OS_WIN32
|
||||
// Set the language for qtsparkle
|
||||
qtsparkle::LoadTranslations(language);
|
||||
#endif
|
||||
|
||||
// Icons
|
||||
IconLoader::Init();
|
||||
|
||||
|
@ -38,10 +38,6 @@
|
||||
#include <QUndoStack>
|
||||
#include <QtDebug>
|
||||
|
||||
#ifdef Q_OS_WIN32
|
||||
#include <qtsparkle-qt5/Updater>
|
||||
#endif
|
||||
|
||||
#include "core/appearance.h"
|
||||
#include "core/application.h"
|
||||
#include "core/backgroundstreams.h"
|
||||
@ -834,15 +830,6 @@ MainWindow::MainWindow(Application* app, SystemTrayIcon* tray_icon, OSD* osd,
|
||||
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://clementine-data.appspot.com/sparkle-windows"), this);
|
||||
updater->SetNetworkAccessManager(new NetworkAccessManager(this));
|
||||
updater->SetVersion(CLEMENTINE_VERSION_SPARKLE);
|
||||
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()));
|
||||
|
Loading…
Reference in New Issue
Block a user