
IF (UNIX)
  SET(QT_QMAKE_EXECUTABLE qmake-qt4)
  SET(QT_MOC_EXECUTABLE moc-qt4)
  SET(QT_UIC_EXECUTABLE uic-qt4)
  SET(CMAKE_INSTALL_PREFIX /usr)
ENDIF (UNIX)

INCLUDE(FindQt4)
INCLUDE(UseQt4)
INCLUDE(../cmakemodules/FindSubversion.cmake)

IF(QT4_FOUND)
    MESSAGE(STATUS "Qt: ${QT_LIBRARY_DIR}")
    MESSAGE(STATUS "Qt: ${QT_QTCORE_LIBRARY}")
    SET(TOUTF8 "toUtf8")
    SET(FROMUTF8 "fromUtf8")
    SET(QLIST "QList")
ELSE(QT4_FOUND)
    MESSAGE(FATAL_ERROR "No qt4 found!")
ENDIF(QT4_FOUND)

SET(SOURCES
    ../apr.cpp
    ../client_annotate.cpp
    ../client_cat.cpp
    ../client.cpp
    ../client_diff.cpp
    ../client_ls.cpp
    ../client_modify.cpp
    ../client_property.cpp
    ../client_status.cpp
    ../context.cpp
    ../datetime.cpp
    ../dirent.cpp
    ../entry.cpp
    ../exception.cpp
    ../log_entry.cpp
    ../path.cpp
    ../pool.cpp
    ../revision.cpp
    ../status.cpp
    ../targets.cpp
    ../url.cpp
    ../wc.cpp
    ../version_check.cpp
    ../lock_entry.cpp
    ../client_lock.cpp
    ../info_entry.cpp
    ../client_impl.cpp
    ../contextdata.cpp
    ../commititem.cpp
    ../repository.cpp
    ../repositorydata.cpp
    ../repositorylistener.cpp
    ../svnstream.cpp
    ../svnfilestream.cpp)

FILE(GLOB HEADERS ../*.hpp)

INCLUDE_DIRECTORIES( ../../
    ${QT_INCLUDES}
    ${APU_INCLUDE_DIR}
    ${APR_INCLUDE_DIR}
    ${SUBVERSION_INCLUDE_DIR}
    ${CMAKE_CURRENT_BINARY_DIR}
    )

SET(HEADERS ${HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/svnqt/svnqt_defines.hpp)
INCLUDE_DIRECTORIES()

MESSAGE(STATUS "Current source: ${CMAKE_CURRENT_SOURCE_DIR}")
IF(QT4_FOUND)
    MESSAGE(STATUS "Qt: ${QT_LIBRARY_DIR}")
    MESSAGE(STATUS "Qt: ${QT_QTCORE_LIBRARY}")
    SET(TOUTF8 "toUtf8")
    SET(FROMUTF8 "fromUtf8")
    SET(QLIST "QList")
ELSE(QT4_FOUND)
    IF(QT_FOUND)
        SET(TOUTF8 "utf8")
        SET(FROMUTF8 "fromUtf8")
        SET(QLIST "QValueList")
    ENDIF(QT_FOUND)
ENDIF(QT4_FOUND)

IF (HAVE_GCC_VISIBILITY)
    SET(_SVNQT_EXPORT "__attribute__ ((visibility(\"default\")))")
    SET(_SVNQT_NOEXPORT "__attribute__ ((visibility(\"hidden\")))")
ENDIF (HAVE_GCC_VISIBILITY)

CONFIGURE_FILE(
    "${CMAKE_CURRENT_SOURCE_DIR}/../svnqt_defines.hpp.in"
    "${CMAKE_CURRENT_BINARY_DIR}/svnqt/svnqt_defines.hpp"
    IMMEDIATE
    @ONLY)

IF (WIN32)
    ADD_LIBRARY(svnqt-qt4 STATIC ${SOURCES} )
ELSE (WIN32)
    ADD_LIBRARY(svnqt-qt4 SHARED ${SOURCES} )
    SET_TARGET_PROPERTIES(svnqt-qt4
        PROPERTIES
        COMPILE_FLAGS ${CMAKE_SHARED_LIBRARY_CXX_FLAGS})
ENDIF (WIN32)


SET_TARGET_PROPERTIES(svnqt-qt4 PROPERTIES SOVERSION 3 VERSION 3.0.0)
SET(ALL_LINKFLAGS ${APR_EXTRA_LIBFLAGS})
SET(ALL_LINKFLAGS "${ALL_LINKFLAGS} ${APU_EXTRA_LIBFLAGS}")
SET_TARGET_PROPERTIES(svnqt-qt4 PROPERTIES LINK_FLAGS "${ALL_LINKFLAGS} ${LINK_NO_UNDEFINED}")
TARGET_LINK_LIBRARIES(svnqt-qt4 ${QT_LIBRARIES} ${SUBVERSION_ALL_LIBS})
IF (WIN32)
    TARGET_LINK_LIBRARIES( svnqt-qt4 wsock32.lib )
ENDIF (WIN32)

# Just a small linking test
ADD_EXECUTABLE(testlink ../testmain.cpp)
TARGET_LINK_LIBRARIES(testlink svnqt-qt4)

# install rules
IF ( UNIX )
    INSTALL(TARGETS svnqt-qt4 DESTINATION lib)
    INSTALL(FILES ${HEADERS} DESTINATION include/svnqt-qt4)
ENDIF ( UNIX )
