Project

General

Profile

Building Audacious with Qt UI on Windows

Added by Róbert Čerňanský about 8 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.