Building Audacious with Qt UI on Windows
Added by Róbert Čerňanský about 9 years ago
Hello, while porting Ampache Browser to Windows I needed to build the Qt version of Audacious there. I've prepared instructions in case someone else is interested:
1. Prepare MSYS2 and MinGW-w64¶
1.1 Download MSYS2 and install it to C:\msys2 according to https://msys2.github.io.
1.2 Start MSYS2 shell.
1.3 Install development packages (replace i686 with x86_64 for 64 bit):
$ pacman -S base-devel mingw-w64-i686-toolchain
2. Install dependencies¶
2.1 Install dependencies available as packages (replace i686 with x86_64 for 64 bit):
$ pacman -S mingw-w64-i686-qt5 mingw-w64-i686-flac \ mingw-w64-i686-mpg123 mingw-w64-i686-ffmpeg \ mingw-w64-i686-curl mingw-w64-i686-cmake
2.2 Prepare for building from source:
Start MinGW32 (or MinGW64 for 64 bit) shell and set following environment variables:
$ export PKG_CONFIG_PATH=/c/libs/lib/pkgconfig:/c/aud/lib/pkgconfig
$ export CPATH=/c/libs/include
$ export LIBRARY_PATH=/c/libs/lib
$ export PATH=${PATH}:/c/libs/bin:/c/aud/bin
2.3. Install neon library (from source):
Download from http://www.webdav.org/neon/neon-0.30.1.tar.gz and unpack to C:\neon. In MinGW32/64 shell:
$ cd /c/neon $ CFLAGS="-D__USE_MINGW_ANSI_STDIO=1" ./configure --prefix /c/libs --with-ssl --enable-shared --disable-static $ make $ make install
2.4. Install Ampache Browser library (from source):
Download from https://github.com/ampache-browser/ampache_browser/archive/v0.0.2.tar.gz and unpack to C:\ampache_browser. In MinGW32/64 shell:
$ cd /c/ampache_browser $ mkdir build $ cd build $ cmake -G "MSYS Makefiles" -D CMAKE_INSTALL_PREFIX=C:/libs .. $ make $ make install
3. Install Audacious and plugins¶
Download from http://distfiles.audacious-media-player.org/audacious-3.8-beta2.tar.bz2 and unpack to C:\audacious. In MinGW32/64 shell:
$ cd /c/audacious
In case of 64 bit environment make a following "patch":
$ sed -i "s/ -march=i686//" acinclude.m4 $ autoreconf
then continue with:
$ ./configure --prefix /c/aud --enable-qt --disable-gtk $ make $ make install
Download from http://distfiles.audacious-media-player.org/audacious-plugins-3.8-beta2.tar.bz2 and unpack to C:\audacious-plugins. In MinGW32/64 shell:
$ cd /c/audacious-plugins
In case of 64 bit environment make a following "patch":
$ sed -i "s/ -march=i686//" acinclude.m4 $ autoreconf
then continue with:
$ ./configure --prefix /c/aud --enable-qt --disable-gtk $ make $ make install
4. Run Audacious¶
$ audacious.exe
To run Audacious outside of MSYS environment, copy files from C:\aud, C:\libs, C:\msys2\mingw32\bin and C:\msys2\mingw32\share\qt5 (or C:\msys2\mingw64\bin and C:\msys2\mingw64\share\qt5) to a separate directory so that its content is following:
├── bin
│ ├── audacious.exe
│ ├── audtool.exe
│ ├── avcodec-57.dll
│ ├── avformat-57.dll
│ ├── avutil-55.dll
│ ├── iconengines
│ │ └── qsvgicon.dll
│ ├── imageformats
│ │ ├── qdds.dll
│ │ ├── qgif.dll
│ │ ├── qicns.dll
│ │ ├── qico.dll
│ │ ├── qjp2.dll
│ │ ├── qjpeg.dll
│ │ ├── qsvg.dll
│ │ ├── qtga.dll
│ │ ├── qtiff.dll
│ │ ├── qwbmp.dll
│ │ └── qwebp.dll
│ ├── libampache_browser_0.dll
│ ├── libaudcore.dll
│ ├── libaudqt.dll
│ ├── libaudtag.dll
│ ├── libbluray-1.dll
│ ├── libbz2-1.dll
│ ├── libcelt0-2.dll
│ ├── libcurl-4.dll
│ ├── libeay32.dll
│ ├── libexpat-1.dll
│ ├── libffi-6.dll
│ ├── libFLAC-8.dll
│ ├── libfreetype-6.dll
│ ├── libgcc_s_dw2-1.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
│ ├── libgraphite2.dll
│ ├── libgsm.dll
│ ├── libharfbuzz-0.dll
│ ├── libhogweed-4-2.dll
│ ├── libiconv-2.dll
│ ├── libicudt57.dll
│ ├── libicuin57.dll
│ ├── libicuuc57.dll
│ ├── libidn-11.dll
│ ├── libintl-8.dll
│ ├── libjpeg-8.dll
│ ├── liblzma-5.dll
│ ├── libmodplug-1.dll
│ ├── libmp3lame-0.dll
│ ├── libmpg123-0.dll
│ ├── libneon-27.dll
│ ├── libnettle-6-2.dll
│ ├── libnghttp2-14.dll
│ ├── libogg-0.dll
│ ├── libopencore-amrnb-0.dll
│ ├── libopencore-amrwb-0.dll
│ ├── libopenjp2-7.dll
│ ├── libopus-0.dll
│ ├── liborc-0.4-0.dll
│ ├── libp11-kit-0.dll
│ ├── libpcre-1.dll
│ ├── libpcre16-0.dll
│ ├── libpng16-16.dll
│ ├── librtmp-1.dll
│ ├── libschroedinger-1.0-0.dll
│ ├── libspeex-1.dll
│ ├── libssh2-1.dll
│ ├── libstdc++-6.dll
│ ├── libtasn1-6.dll
│ ├── libtheoradec-1.dll
│ ├── libtheoraenc-1.dll
│ ├── libvorbis-0.dll
│ ├── libvorbisenc-2.dll
│ ├── libvorbisfile-3.dll
│ ├── libvpx-1.dll
│ ├── libwavpack-1.dll
│ ├── libwinpthread-1.dll
│ ├── libx264-148.dll
│ ├── libx265.dll
│ ├── libxml2-2.dll
│ ├── platforms
│ │ └── qwindows.dll
│ ├── Qt5Concurrent.dll
│ ├── Qt5Core.dll
│ ├── Qt5Gui.dll
│ ├── Qt5Multimedia.dll
│ ├── Qt5Network.dll
│ ├── Qt5OpenGL.dll
│ ├── Qt5Svg.dll
│ ├── Qt5Widgets.dll
│ ├── SDL.dll
│ ├── ssleay32.dll
│ ├── swresample-2.dll
│ ├── translations
│ │ ├── qt_ar.qm
│ │ ├── qt_ca.qm
│ │ ├── qt_cs.qm
[...]
│ │ └── qt_zh_TW.qm
│ ├── xvidcore.dll
│ └── zlib1.dll
├── lib
│ ├── audacious
│ │ ├── Container
│ │ │ ├── asx.dll
│ │ │ ├── asx3.dll
│ │ │ ├── audpl.dll
│ │ │ ├── m3u.dll
│ │ │ ├── pls.dll
│ │ │ └── xspf.dll
│ │ ├── Effect
│ │ │ ├── compressor.dll
│ │ │ ├── crossfade.dll
│ │ │ ├── crystalizer.dll
│ │ │ ├── echo.dll
│ │ │ ├── mixer.dll
│ │ │ ├── silence-removal.dll
│ │ │ ├── stereo.dll
│ │ │ └── voice_removal.dll
│ │ ├── General
│ │ │ ├── albumart-qt.dll
│ │ │ ├── ampache.dll
│ │ │ ├── delete-files.dll
│ │ │ ├── lyricwiki-qt.dll
│ │ │ ├── mpris2.dll
│ │ │ ├── playlist-manager-qt.dll
│ │ │ ├── qtui.dll
│ │ │ ├── scrobbler.dll
│ │ │ ├── search-tool-qt.dll
│ │ │ ├── skins-qt.dll
│ │ │ ├── song-info-qt.dll
│ │ │ └── statusicon-qt.dll
│ │ ├── Input
│ │ │ ├── adplug.dll
│ │ │ ├── console.dll
│ │ │ ├── ffaudio.dll
│ │ │ ├── flacng.dll
│ │ │ ├── madplug.dll
│ │ │ ├── metronom.dll
│ │ │ ├── modplug.dll
│ │ │ ├── psf2.dll
│ │ │ ├── tonegen.dll
│ │ │ ├── vorbis.dll
│ │ │ ├── vtx.dll
│ │ │ ├── wavpack.dll
│ │ │ └── xsf.dll
│ │ ├── Output
│ │ │ ├── filewriter.dll
│ │ │ ├── qtaudio.dll
│ │ │ ├── sdlout.dll
│ │ │ └── waveout.dll
│ │ ├── Transport
│ │ │ ├── gio.dll
│ │ │ └── neon.dll
│ │ └── Visualization
│ │ └── gl-spectrum-qt.dll
│ ├── libaudcore.dll.a
│ ├── libaudqt.dll.a
│ ├── libaudtag.dll.a
│ └── pkgconfig
│ └── audacious.pc
└── share
├── applications
│ └── audacious.desktop
├── audacious
│ ├── AUTHORS
│ ├── COPYING
│ ├── images
│ │ ├── about-logo.png
│ │ ├── about-logo.svg
│ │ ├── album.png
│ │ ├── appearance.png
│ │ ├── audio.png
│ │ ├── connectivity.png
│ │ ├── info.png
│ │ ├── playlist.png
│ │ └── plugins.png
│ ├── QtUi
│ │ ├── 16
[...]
│ │ ├── 22
[...]
│ │ ├── 32
[...]
│ │ ├── 44
[...]
│ │ ├── AUTHORS
│ │ └── index.theme
│ └── Skins
│ ├── Classic
[... all skins]
├── icons
│ └── hicolor
│ ├── 48x48
│ │ └── apps
│ │ └── audacious.png
│ └── scalable
│ └── apps
│ └── audacious.svg
└── locale
├── ast
│ └── LC_MESSAGES
│ └── audacious.mo
├── be
│ └── LC_MESSAGES
│ ├── audacious.mo
│ └── audacious-plugins.mo
├── bg
│ └── LC_MESSAGES
│ ├── audacious.mo
│ └── audacious-plugins.mo
├── ca
│ └── LC_MESSAGES
│ ├── audacious.mo
│ └── audacious-plugins.mo
├── cmn
│ └── LC_MESSAGES
│ ├── audacious.mo
│ └── audacious-plugins.mo
├── cs
│ └── LC_MESSAGES
│ ├── audacious.mo
│ ├── audacious-plugins.mo
│ └── neon.mo
[...]
└── zh_TW
└── LC_MESSAGES
├── audacious.mo
└── audacious-plugins.mo
64 bit version contains libgcc_s_seh-1.dll instead of libgcc_s_dw2-1.dll in bin directory.
Note, neon and Ampache Browser libraries are optional.
