cmake_minimum_required(VERSION 2.6)

project(koverartist)
set (VERSION 0.7.6)

if (NOT PREFIX)
   execute_process(COMMAND kde4-config --prefix
                   OUTPUT_STRIP_TRAILING_WHITESPACE
                   OUTPUT_VARIABLE PREFIX)
endif (NOT PREFIX)
if (PREFIX)
   set (CMAKE_INSTALL_PREFIX "${PREFIX}")
endif (PREFIX)

find_package(Qt4 REQUIRED)
find_package(KDE4 REQUIRED)

find_path(CDROM_H NAMES cdrom.h PATH_SUFFIXES linux)
if (CDROM_H)
   message ("-- Found cdrom.h in ${CDROM_H}")
   add_definitions (-DCDROM_H=1)
endif (CDROM_H)

find_path(CDIO_H NAMES cdio.h PATH_SUFFIXES sys cdio)
if (CDIO_H)
   message ("-- Found cdio.h in ${CDIO_H}")
   add_definitions (-DCDIO_H=1)
endif (CDIO_H)

set (CDDB_PATH /var/cache/cddb)

include(KDE4Defaults)
include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR} ${KDE4_INCLUDES})

add_definitions (-DAUDIOCD_SUPPORT=1)
set (APPDATA_PREFIX "${DATA_INSTALL_DIR}/koverartist")

file (WRITE config.h "/* Automatically generated by cmake, do not modify */

#ifndef config_h
#define config_h

#define VERSION \"${VERSION}\"
#define PACKAGE \"koverartist\"
#define INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\"
#define APPDATA_PREFIX \"${APPDATA_PREFIX}\"
#define CDDB_PATH \"${CDDB_PATH}\"

#endif
")

set(koverartist_SRCS  case.cpp cddbchooser.cpp cddbquery.cpp cdinfo.cpp
   disc.cpp effect.cpp effectwidget.cpp
   imageconfig.cpp image.cpp imagewidget.cpp log.cpp
   main.cpp mainwindow.cpp
   prefcddb.cpp pref.cpp prefgeneral.cpp
   preview.cpp project.cpp
   rendereffect.cpp rendererbase.cpp renderer.cpp renderimage.cpp rendertext.cpp
   settings.cpp
   tabbase.cpp tabdisc.cpp taboptions.cpp tabproject.cpp
   textstyle.cpp textstylewidget.cpp
   utils.cpp
)

set (koverartist_MOC_HDRS
   cddbchooser.h cddbquery.h effectwidget.h imageconfig.h imagewidget.h mainwindow.h
   pref.h prefcddb.h prefgeneral.h preview.h project.h tabbase.h tabdisc.h taboptions.h
   tabproject.h textstylewidget.h
)

QT4_WRAP_CPP (koverartist_MOC_SRCS ${koverartist_MOC_HDRS})

add_executable (koverartist ${koverartist_SRCS} ${koverartist_MOC_SRCS})
target_link_libraries (koverartist ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS})

install (TARGETS koverartist DESTINATION bin)

file (GLOB cases ${CMAKE_SOURCE_DIR}/cases/*.koac)
install (FILES ${cases} DESTINATION ${APPDATA_PREFIX}/cases)

find_program(GETTEXT_MSGFMT_EXECUTABLE msgfmt)
if (NOT GETTEXT_MSGFMT_EXECUTABLE)
   message("------
   NOTE: msgfmt not found. Translations will *not* be installed
------")
else (NOT GETTEXT_MSGFMT_EXECUTABLE)
   set (catalogname koverartist)
   add_custom_target (translations ALL)

   file (GLOB PO_FILES ${CMAKE_SOURCE_DIR}/po/*.po)
   foreach (_poFile ${PO_FILES})
      get_filename_component (_poFileName ${_poFile} NAME)
      string (REGEX REPLACE "^${catalogname}_?" "" _langCode ${_poFileName} )
      string (REGEX REPLACE "\\.po$" "" _langCode ${_langCode} )

      if( _langCode )
         get_filename_component (_lang ${_poFile} NAME_WE)
         set (_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo)

         add_custom_command (TARGET translations
                  COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --check -o ${_gmoFile} ${_poFile}
                  DEPENDS ${_poFile})
         install (FILES ${_gmoFile} DESTINATION ${LOCALE_INSTALL_DIR}/${_langCode}/LC_MESSAGES/ RENAME ${catalogname}.mo)
      endif (_langCode)
   endforeach (_poFile ${PO_FILES})

endif (NOT GETTEXT_MSGFMT_EXECUTABLE)

set (iconSizes 16 22 32 48 64 72 128)
foreach (sz ${iconSizes})
   install (FILES ${CMAKE_SOURCE_DIR}/icons/hi${sz}-app-koverartist.png
            DESTINATION ${ICON_INSTALL_DIR}/hicolor/${sz}x${sz}/apps
            RENAME koverartist.png)
endforeach  (sz ${iconSizes})
KDE4_UPDATE_ICONCACHE()

install (FILES ${CMAKE_SOURCE_DIR}/koverartist.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications/kde4)
install (DIRECTORY ${CMAKE_SOURCE_DIR}/mime-types DESTINATION ${XDG_MIME_INSTALL_DIR} PATTERN *.xml)

add_custom_target (deploy echo "Installing koverartist with checkinstall..."
   COMMAND sudo checkinstall --default --install --pkgname=koverartist --pkgversion=${VERSION} --pakdir=${CMAKE_SOURCE_DIR}
           --pkglicense="GPL v2" --pkggroup=Multimedia --maintainer='taferner@kde.org' --strip=yes
           --pkgsource='http://kde-apps.org/content/show.php?content=38195'
           --exclude=${HOME} )

add_custom_target (package WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND tools/mktar.sh ${VERSION})

