CMAKE_MINIMUM_REQUIRED(VERSION 3.7)
project(dxim)
set(PROJECT_VERSION "1.00.svn")

include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
if(COMPILER_SUPPORTS_CXX11)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
else()
    message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
    return()
endif()

find_package(PkgConfig)
find_package(Intl)
find_package(Gettext)

# Enable i10n.
if(Intl_FOUND)
    set(ENABLE_NLS TRUE)
endif(Intl_FOUND)

if(NOT WIN32)
add_definitions(-DLOCALEDIR="${CMAKE_INSTALL_PREFIX}/share/locale")
add_definitions(-DDXIM_DATADIR="${CMAKE_INSTALL_PREFIX}/share/dxim")
else()
add_definitions(-DLOCALEDIR="./locale")
add_definitions(-DDXIM_DATADIR=".")
endif(NOT WIN32)

option(SYSTEM_PURPLEMM "Use system purplemm" FALSE)
if(SYSTEM_PURPLEMM)
    if(PKG_CONFIG_FOUND)
        pkg_check_modules(PURPLEMM REQUIRED libpurplemm)
        if(NOT PURPLEMM_FOUND)
            add_subdirectory(purplemm)
        endif()
    endif(PKG_CONFIG_FOUND)
else(SYSTEM_PURPLEMM)
    if(NOT WIN32)
        option(PURPLEMM_STATIC "Build purplemm as static library" TRUE)
    endif(NOT WIN32)
    add_subdirectory(purplemm)
endif(SYSTEM_PURPLEMM)

if(CMAKE_BUILD_TYPE MATCHES Debug)
add_definitions(-DDEBUG)
endif(CMAKE_BUILD_TYPE MATCHES Debug)

if(NOT WIN32)
# Source distribution
set(ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${PROJECT_VERSION})
add_custom_target(dist COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} &&
    rm -rf ${ARCHIVE_NAME} &&
    svn export . ${ARCHIVE_NAME} &&
    tar czf ${ARCHIVE_NAME}.tar.gz ${ARCHIVE_NAME} &&
    rm -rf ${ARCHIVE_NAME}
)
endif(NOT WIN32)

option(BUILD_FOX "Build dxim with fox toolkit GUI" TRUE)
option(BUILD_GTKMM "Build dxim with gtkmm GUI" TRUE)
option(BUILD_QT "Build dxim with qt GUI" TRUE)
if(UNIX AND NOT APPLE)
option(BUILD_CURSES "Build dxim with curses GUI" TRUE)
endif(UNIX AND NOT APPLE)

if(BUILD_FOX)
    add_subdirectory(fox)
endif(BUILD_FOX)
if(BUILD_GTKMM)
    add_subdirectory(gtkmm)
endif(BUILD_GTKMM)
if(BUILD_QT)
    add_subdirectory(qt)
endif(BUILD_QT)
if(UNIX AND NOT APPLE)
    if(BUILD_CURSES)
        add_subdirectory(curses)
    endif(BUILD_CURSES)
endif(UNIX AND NOT APPLE)
add_subdirectory(data)

# uninstall target
configure_file(
    ${CMAKE_CURRENT_SOURCE_DIR}/cmake/uninstall.cmake.in
    ${CMAKE_CURRENT_BINARY_DIR}/cmake/uninstall.cmake
    IMMEDIATE @ONLY)
add_custom_target(uninstall
    ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake/uninstall.cmake)
