#################################################
#   ___________    ____ ______  __ __  _____    #
#   \____ \__  \ _/ ___\\____ \|  |  \/  ___/   #
#   |  |_> > __ \\  \___|  |_> >  |  /\___ \    #
#   |   __(____  /\___  >   __/|____//____  >   #
#   |__|       \/     \/|__|              \/    #
#                                               #
#################################################
project(FileLib)

################################################################################
create_export(EXPORT_HDR ${PROJECT_NAME} "${PACPUS_INCLUDE_DIR}/Pacpus/kernel")

################################################################################
# DIRECTORIES
link_directories(
    ${PROJECT_BINARY_DIR}/../PacpusLib
)

################################################################################
# FILES
set(SRCS
    src/DbiteException.cpp
    src/DbiteFile.cpp
)

set(HDRS
    ${EXPORT_HDR}

    ${PACPUS_INCLUDE_DIR}/Pacpus/kernel/DbiteException.h
    ${PACPUS_INCLUDE_DIR}/Pacpus/kernel/DbiteFile.h
    ${PACPUS_INCLUDE_DIR}/Pacpus/kernel/DbiteFileTypes.h
    ${PACPUS_INCLUDE_DIR}/Pacpus/kernel/FileLibConfig.h
    ${PACPUS_INCLUDE_DIR}/Pacpus/kernel/hdfile_header_t.h
    ${PACPUS_INCLUDE_DIR}/Pacpus/kernel/road_time.h
)

################################################################################
# BUILD and LINK
pacpus_add_library(${PROJECT_NAME} SHARED
    ${SRCS}
    ${HDRS}
)

# LIBS
set(LIBS
    ${PACPUS_DEPENDENCIES_LIB}
)

if(WIN32)
    list(APPEND LIBS
        optimized PacpusLib debug PacpusLib_d
    )
endif()

# LINK
target_link_libraries(${PROJECT_NAME}
    ${LIBS}
)

if(${PACPUS_BUILD_TESTS})
    link_directories(
        ${PROJECT_BINARY_DIR}/../FileLib
    )
    pacpus_add_test_executable(Test${PROJECT_NAME}
        test/TestFileLib.cpp
        ${HDRS}
    )
    list(APPEND LIBS
        ${QT_LIBRARIES}
        optimized PacpusLib debug PacpusLib_d
        optimized ${PROJECT_NAME} debug ${PROJECT_NAME}_d
    )
    target_link_libraries(Test${PROJECT_NAME}
        ${LIBS}
    )
    pacpus_install(Test${PROJECT_NAME})
    install(DIRECTORY test/data
        DESTINATION ${PACPUS_INSTALL_DIR}/bin
    )
endif()

################################################################################
# Install
pacpus_install(${PROJECT_NAME})

################################################################################
# FOLDER
pacpus_folder(${PROJECT_NAME} "libraries")
