CMAKE_MINIMUM_REQUIRED(VERSION 3.7)
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.12" CACHE STRING "Minimum OS X deployment version")
project(dxirc-all)
set(PROJECT_VERSION "1.40.1")

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")

if(MSVC_VERSION LESS "1900")
    message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
    return()
endif()

if(NOT MSVC)
    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()
endif()

find_package(PkgConfig)
find_package(Libintl)
find_package(Gettext)

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

if(NOT WIN32)
    option(USE_ENCHANT "Enable spellchecking" FALSE)
else(NOT WIN32)
    option(USE_ENCHANT "Enable spellchecking" TRUE)
endif(NOT WIN32)

if(APPLE)
option(ENABLE_OSX_BUNDLE "Package dxirc as an OSX bundle (ignored on other platforms)." OFF)
endif(APPLE)

set(HAVE_LUA FALSE)
find_package(Lua)
if(LUA_FOUND)
    set(HAVE_LUA TRUE)
endif(LUA_FOUND)

if(APPLE AND ENABLE_OSX_BUNDLE)
    add_definitions(-DLOCALEDIR="./locale")
    add_definitions(-DDXIRC_DATADIR="/../Resources")
elseif(WIN32)
    add_definitions(-DLOCALEDIR="./locale")
    add_definitions(-DDXIRC_DATADIR=".")
else()
    add_definitions(-DLOCALEDIR="${CMAKE_INSTALL_PREFIX}/share/locale")
    add_definitions(-DDXIRC_DATADIR="${CMAKE_INSTALL_PREFIX}/share/dxirc")
endif()

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

if(NOT WIN32)
# Source distribution
set(ARCHIVE_NAME dxirc-${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)

if(APPLE)
    if(ENABLE_OSX_BUNDLE)
        set(BUILD_FOX FALSE)
        set(BUILD_QT TRUE)
    else()
        option(BUILD_FOX "Build dxirc with fox toolkit GUI" FALSE)
        option(BUILD_QT "Build dxirc with qt GUI" TRUE)
    endif(ENABLE_OSX_BUNDLE)
else()
option(BUILD_FOX "Build dxirc with fox toolkit GUI" TRUE)
option(BUILD_QT "Build dxirc with qt GUI" TRUE)
endif(APPLE)

add_subdirectory(data)
if(BUILD_FOX)
    add_subdirectory(fox)
endif(BUILD_FOX)
if(BUILD_QT)
    add_subdirectory(qt)
endif(BUILD_QT)

# 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)
