# -- C library --------------

if (NOT DEFINED ENABLE_C OR ENABLE_C)

    set(LIBFRAME_VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")

    set(LIBFRAME_HEADERS FrFilter.h FrIO.h FrVect.h FrameL.h)
    add_library(
        framel SHARED
        FrFilter.c FrIO.c FrameL.c
        zlib/Fradler32.c zlib/Frcompress.c zlib/Frcrc32.c
        zlib/Frdeflate.c zlib/Frinfblock.c zlib/Frinfcodes.c
        zlib/Frinffast.c zlib/Frinflate.c zlib/Frinftrees.c
        zlib/Frinfutil.c zlib/Frtrees.c zlib/Fruncompr.c
        zlib/Frzutil.c
    )
    target_include_directories(framel PRIVATE zlib)
    target_link_libraries(framel PRIVATE m)
    set_target_properties(
        framel PROPERTIES
        VERSION ${LIBFRAME_VERSION_STRING}
	SOVERSION ${PROJECT_VERSION_MAJOR}
        PUBLIC_HEADER "${LIBFRAME_HEADERS}"
    )

    install(
        TARGETS framel
        RUNTIME DESTINATION ${RUNTIME_DESTINATION}
        LIBRARY DESTINATION ${LIBRARY_DESTINATION}
        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
        PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
    )

    foreach (app FrChannels FrCheck FrCopy FrDiff FrDump FrTrend FrameDataDump)
	    add_executable(${app} ${app}.c)
	    target_link_libraries(${app} PRIVATE framel m)
	    install(TARGETS ${app} DESTINATION ${CMAKE_INSTALL_BINDIR})
    endforeach(app)

    configure_file(
        "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in"
        "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
        @ONLY
    )
    install(
        FILES ${CMAKE_CURRENT_BINARY_DIR}/framel.pc
        DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
    )

endif()
