CMAKE_MINIMUM_REQUIRED( VERSION 2.4.0 )

PROJECT( WebIssues )
SET( VERSION "0.9.1" )

IF( WIN32 AND NOT MINGW )
    MESSAGE( FATAL_ERROR "Only MinGW Makefiles are supported on Windows. Use the -G switch to select the generator." )
ENDIF( WIN32 AND NOT MINGW )

SET( QT_MIN_VERSION "4.2.0" )
SET( QT_USE_QTNETWORK TRUE )
SET( QT_USE_QTXML TRUE )

FIND_PACKAGE( Qt4 REQUIRED )

INCLUDE( ${QT_USE_FILE} )

IF( MINGW )
    MESSAGE( STATUS "Looking for windres..." )
    GET_FILENAME_COMPONENT( bindir ${CMAKE_MAKE_PROGRAM} PATH )
    FIND_PROGRAM( WINDRES_EXECUTABLE
        NAMES windres
        PATHS ${bindir}
        DOC "Windows resource compiler"
    )
    IF( WINDRES_EXECUTABLE )
        SET( WINDRES_FOUND "YES" )
        MESSAGE( STATUS "Looking for windres... - found ${WINDRES_EXECUTABLE}" )
    ELSE( WINDRES_EXECUTABLE )
        MESSAGE( STATUS "Looking for windres... - NOT found" )
    ENDIF( WINDRES_EXECUTABLE )
    MARK_AS_ADVANCED( WINDRES_EXECUTABLE )
ENDIF( MINGW )

SUBDIRS( src )

IF( WIN32 )
    INSTALL( DIRECTORY doc/ DESTINATION doc PATTERN .svn EXCLUDE )
ELSE( WIN32 )
    INSTALL( DIRECTORY doc/ DESTINATION share/doc/webissues PATTERN .svn EXCLUDE )
ENDIF( WIN32 )

FIND_PACKAGE( Doxygen )

IF( DOXYGEN_FOUND )
    MESSAGE( STATUS "Looking for doxytag..." )
    FIND_PROGRAM( DOXYTAG_EXECUTABLE
        NAMES doxytag
        PATHS "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\doxygen_is1;Inno Setup: App Path]/bin"
        DOC "Doxygen tag file generation tool"
    )
    IF( DOXYTAG_EXECUTABLE )
        SET( DOXYTAG_FOUND "YES" )
        MESSAGE( STATUS "Looking for doxytag... - found ${DOXYTAG_EXECUTABLE}" )
    ELSE( DOXYTAG_EXECUTABLE )
        MESSAGE( STATUS "Looking for doxytag... - NOT found" )
    ENDIF( DOXYTAG_EXECUTABLE )
    MARK_AS_ADVANCED( DOXYTAG_EXECUTABLE )

    SET( apidir ${CMAKE_BINARY_DIR}/apidocs )
    FILE( MAKE_DIRECTORY ${apidir} )

    IF( DOXYTAG_FOUND AND QT_DOC_DIR )
        SET( tagfile ${apidir}/qt.tag )
        ADD_CUSTOM_TARGET( apidox
            COMMAND ${DOXYGEN_EXECUTABLE} >${apidir}/doxygen.log ${apidir}/Doxyfile
            DEPENDS ${tagfile}
            COMMENT "Generating API documentation"
        )
        ADD_CUSTOM_COMMAND(
            OUTPUT ${tagfile}
            COMMAND ${DOXYTAG_EXECUTABLE} >${apidir}/doxytag.log -t ${tagfile} ${QT_DOC_DIR}/html
        )
        SET( QT_TAG_FILE "${tagfile} = file://${QT_DOC_DIR}/html" )
    ELSE( DOXYTAG_FOUND AND QT_DOC_DIR )
        ADD_CUSTOM_TARGET( apidox
            COMMAND ${DOXYGEN_EXECUTABLE} >${apidir}/doxygen.log ${apidir}/Doxyfile
            COMMENT "Generating API documentation"
        )
    ENDIF( DOXYTAG_FOUND AND QT_DOC_DIR )

    CONFIGURE_FILE(
        "${CMAKE_SOURCE_DIR}/Doxyfile.in"
        "${apidir}/Doxyfile"
    )
ENDIF( DOXYGEN_FOUND )
