Build & Installation
====================

KDE4
----

1. mkdir build
2. cd build
3. cmake ..
4. make
5. sudo make install


Qt4
---

1. mkdir build
2. cd build
3. cmake .. -DENABLE_KDE=OFF
4. make
5. sudo make install


Qt5
---

1. mkdir build
2. cd build
3. cmake .. -DENABLE_KDE=OFF -DENABLE_QT5=ON
4. make
5. sudo make install


CMake Options
=============

The following options may be passed to CMake:

    -DCMAKE_INSTALL_PREFIX=/usr
        Specify install location prefix.

    -DCMAKE_BUILD_TYPE=Release|Debug
        Specify which type of build. Debug builds will be *much* larger, as
        they will contain extra debugging information.

    -DCANTATA_TRANSLATIONS=<list of translations to install>
        Builds and installs the selected translations. Supported values are
        cs, de, en_GB, es, hu, pl, ru, ko, zh_CN, and all. Entries should be
        separated with a semicolon (";") e.g. -DCANTATA_TRANSLATIONS="es;pl"
        Default: all

    -DENABLE_HTTP_STREAM_PLAYBACK=ON
        Enable support for playing back MPD HTTP streams via Phonon (Qt4) or
        QtMultiMedia (Qt5).
        Default: OFF

    -DENABLE_HTTPS_SUPPORT=ON
        Enable support for https URLs when querying last.fm, wikipedia,
        soundcloud, etc.
        Default: ON (OFF for windows)

    -DENABLE_EXTERNAL_TAGS=ON
        Enable usage of external app for reading/writing tags. Helps to
        isoloate Cantata from TagLib crashes.
        EXPERIMENTAL - CURRENTLY **NOT** WORKING!!!
        Default: OFF

    -DENABLE_HTTP_SERVER=ON
        Enable usage of internal HTTP server for non-MPD file playback.
        Default: ON

    -DENABLE_DYNAMIC=ON
        Enable support for dynamic playlists.
        Default: ON

    -DENABLE_STREAMS=ON
        Enable support for streams tab (saving favourite streams, listing
        streams from providers, etc)
        Default: ON

    -DENABLE_ONLINE_SERVICES=ON
        Enable support for online services (Jamendo, Magnatune, SoundCloud, and
        Podcasts)
        Default: ON    


    Specific to Qt-only builds::

    -DENABLE_KDE=OFF
        Link against KDE libraries, use KDE dialogs, etc.
        Default: ON

    -DENABLE_QT5=ON
        Build against Qt5, not Qt4
        Default: OFF

    -DENABLE_PROXY_CONFIG=ON
        Enable support for proxy settings in config dialog. If disabled,
        system proxy settings are used.
        Default: OFF


    KDE specific:

    -DENABLE_KWALLET=ON
        Use KWallet to store MPD passwords.
        Default: ON


    Linux specific:

    -DUSE_SYSTEM_MENU_ICON=ON
        Use standard menu icon, as opposed to Cantata's chrome/firefox 3 line
        menu icon. Under certain Gtk themes (Ambiance, Radiance, etc) this will
        use a symbolic 16px icon.
        Default: ON

    -DENABLE_UNCACHED_MTP=ON
        Open MTP devices in un-cached mode (faster)
        Default: ON

    -DENABLE_DEVICES_SUPPORT=ON
        Support external devices (UMS, MTP, AudioCD)
        Default: ON

    -DENABLE_REMOTE_DEVICES=ON
        Support remote devices (accessed via sshfs, or samba). This is
        EXPERIMENTAL - and requires ENABLE_DEVICES_SUPPORT to also be enabled.
        Default: OFF

    -DENABLE_UDISKS2=ON
        Build UDisks2 backend for solid-lite. (Non-KDE builds only)
        Default: OFF


    Windows specific:

    -DCANTATA_WINDOWS_INSTALLER_DEST=<folder>
        Path where Inno Setpup Compiler should place the catata setup exe.
        Default: z:\
        
    -DCANTATA_MINGW_LIBS=<path>\mingwm10.dll;<path>libgcc_s_dw2-1.dll
        Extra MinGW libraries required for install stage.
        Default: <empty>
        
    -DCANTATA_OXYGEN_DIR=<path>
        Path to Oxygen icons, required for install stage.
        Default: <empty>


    Testing ONLY options:

    -DENABLE_MODEL_TEST=ON
        Enable testing of Cantata's QAbstractItemModels. Builds with this set
        are ONLY intended to be run under a debugger! If enabled, then 
        CMAKE_BUILD_TYPE will automatically be set to Debug. 
        Currently this option ONLY affects pure Qt4 builds.
        Default: OFF

