cmake_minimum_required(VERSION 2.8)

PROJECT(libqsane)

find_package(ECM 0.0.9 REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
include(KDECompilerSettings)

remove_definitions(-DQT_NO_CAST_TO_ASCII)
remove_definitions(-DQT_NO_CAST_FROM_ASCII)
remove_definitions(-DQT_NO_URL_CAST_FROM_STRING)
remove_definitions(-DQT_NO_CAST_FROM_BYTEARRAY)
remove_definitions(-DQT_NO_SIGNALS_SLOTS_KEYWORDS)

OPTION (UPDATE_TRANSLATIONS "Update source translation files (WARNING: make clean will delete the source .ts files! Danger!)")

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake/modules ${CMAKE_CURRENT_SOURCE_DIR})

SET(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin")
SET(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib")
SET(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME}")
SET(ICONS_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/icons")
SET(I18N_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/i18n")

find_package(Qt5 CONFIG REQUIRED Core Gui Widgets LinguistTools)
find_package(Sane REQUIRED)

SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_RELEASE QT_NO_DEBUG_OUTPUT)

include_directories(${CMAKE_CURRENT_BINARY_DIR}/libqsane)

# =======================================================
# Information to update before to release this library.

# Library version history:
# API      ABI
# 0.1.0 => 0.1.0
# 0.1.1 => 0.1.1
# 0.2.0 => 0.2.0

# Library API version
SET(QSANE_LIB_MAJOR_VERSION "1")
SET(QSANE_LIB_MINOR_VERSION "3")
SET(QSANE_LIB_PATCH_VERSION "0")

# Suffix to add at end of version string. Usual values are:
# "-svn"   : alpha code unstable from svn. Do not use in production
# "-beta1" : beta1 release.
# "-beta2" : beta2 release.
# "-beta3" : beta3 release.
# "-rc"    : release candidate.
# ""       : final relase. Can be used in production.
SET(QSANE_LIB_SUFFIX_VERSION "")

# Library ABI version used by linker.
# For details : http://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info
SET(QSANE_LIB_SO_CUR_VERSION "1")
SET(QSANE_LIB_SO_REV_VERSION "2")
SET(QSANE_LIB_SO_AGE_VERSION "0")

# =======================================================
# Set env. variables accordinly.

SET(QSANE_LIB_VERSION_STRING "${QSANE_LIB_MAJOR_VERSION}.${QSANE_LIB_MINOR_VERSION}.${QSANE_LIB_PATCH_VERSION}${QSANE_LIB_SUFFIX_VERSION}")
SET(QSANE_LIB_VERSION_ID "0x0${QSANE_LIB_MAJOR_VERSION}0${QSANE_LIB_MINOR_VERSION}0${QSANE_LIB_PATCH_VERSION}")

SET(QSANE_LIB_SO_VERSION_STRING "${QSANE_LIB_SO_CUR_VERSION}.${QSANE_LIB_SO_REV_VERSION}.${QSANE_LIB_SO_AGE_VERSION}")

# =======================================================
SUBDIRS(libqsane)

IF(NOT WIN32)
  CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libqsane.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libqsane.pc)
  CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libqsane.lsm.cmake ${CMAKE_CURRENT_BINARY_DIR}/libqsane.lsm)
  INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libqsane.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig )
ENDIF(NOT WIN32)

include(CheckCXXCompilerFlag)
include(MacroEnsureVersion)
