
set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" )
set(LIB_DESTINATION "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE STRING "Library directory name" FORCE)

set(CMAKE_INSTALL_RPATH_USE_LINK_PATH  TRUE)

find_package(Qt4 REQUIRED)
include_directories( ${QT_INCLUDES} ${CMAKE_CURRENT_SOURCE_DIR}  ${CMAKE_CURRENT_BINARY_DIR} )

# mingw can't handle exported explicit template instantiations in a DLL
if (MINGW)
  set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--export-all-symbols ${CMAKE_SHARED_LINKER_FLAGS}")
endif (MINGW)

#check for libz using the cmake supplied FindZLIB.cmake
macro_bool_to_01(ZLIB_FOUND HAVE_LIBZ)

macro_bool_to_01(BZIP2_FOUND HAVE_BZIP2_SUPPORT)
if(BZIP2_FOUND AND BZIP2_NEED_PREFIX)
   set(NEED_BZ2_PREFIX 1)
endif(BZIP2_FOUND AND BZIP2_NEED_PREFIX)

macro_bool_to_01(LIBLZMA_FOUND HAVE_XZ_SUPPORT)

configure_file(version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/version.h)
configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h )

set(quasar_SRCS
    archive.cpp
    ar.cpp
    bzip2filter.cpp
    filterbase.cpp
    filterdev.cpp
    gzipfilter.cpp
    limitediodevice.cpp
    savefile.cpp
    tar.cpp
    version.cpp
    xzfilter.cpp
    zip.cpp
)

qt4_automoc(${quasar_SRCS})

add_library(quasar SHARED ${quasar_SRCS})

set_target_properties(quasar PROPERTIES
    VERSION ${CMAKE_LIBQUASAR_VERSION_STRING}
    SOVERSION ${CMAKE_LIBQUASAR_VERSION_MAJOR}
    LINK_INTERFACE_LIBRARIES ""
    DEFINE_SYMBOL QUASAR_LIB_MAKEDLL
)

target_link_libraries(quasar ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY})


install(TARGETS quasar ARCHIVE DESTINATION ${LIB_DESTINATION}
                               LIBRARY DESTINATION ${LIB_DESTINATION}
                               RUNTIME DESTINATION bin)

install(FILES
    archive.h
    ar.h
    bzip2filter.h
    filterbase.h
    filterdev.h
    gzipfilter.h
    tar.h
    xzfilter.h
    zip.h
    quasar_export.h
    ${CMAKE_CURRENT_BINARY_DIR}/version.h
    DESTINATION include/quasar COMPONENT Devel
)

# Install package config file
if(NOT WIN32)
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/libquasar.pc.cmake
        ${CMAKE_CURRENT_BINARY_DIR}/libquasar.pc
    )
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libquasar.pc
        DESTINATION ${LIB_DESTINATION}/pkgconfig
    )
endif(NOT WIN32)

# Add the optional subdirectory with unit tests
if (QUASAR_ENABLE_TESTS)
    add_subdirectory(tests)
endif (QUASAR_ENABLE_TESTS)

