include_directories(${CMAKE_CURRENT_SOURCE_DIR})

set(${PROJECT_NAME}_HEADERS FdChList.h FdCm.h FdFrMrgr.h Fd.h FdIDir.h FdIO.h FdTools.h FdUtil.h)

add_library(${PROJECT_NAME} SHARED FdBuffer.c FdToAcl.c FdThread.c FdClnDir.c FdCm.c FdCombine.c FdCompress.c FdIDir.c FdDemod.c
	FdEvents.c FdFreqAna.c FdChkDup.c FdChList.c FdIO.c FdFbt.c FdFile.c FdFilter.c FdFrMrgr.c FdGetChannelsList.c FdNewFrame.c
	FdRecast.c FdRename.c FdResize.c FdRescale.c FdPlayback.c FdSi.c FdStatAction.c FdTools.c FdUtil.c FdRangeGating.c)

set_target_properties(${PROJECT_NAME} PROPERTIES
	COMPILE_FLAGS "-DFD_PATH=\\\"${CMAKE_CURRENT_SOURCE_DIR}\\\""
	VERSION ${PROJECT_VERSION}
	SOVERSION ${PROJECT_VERSION_MAJOR}
	PUBLIC_HEADER "${${PROJECT_NAME}_HEADERS}")
target_link_libraries(${PROJECT_NAME} PUBLIC PkgConfig::FDDEPS)
install(TARGETS ${PROJECT_NAME}
	RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
	ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
	PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME})

foreach(app FdGetChannelsList FdGetFramesInMemory FdIOServer FdMoni FdSend FdStat FdWrite FdRangeGating FFLMoni)
	add_executable(${app} ${app}.c)
	target_link_libraries(${app} fd m rt Threads::Threads)
	install(TARGETS ${app}
		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endforeach(app)

foreach(lib ${FD_DEPENDENCIES})
	set(DEPENDENCIES "${DEPENDENCIES} ${lib}")
endforeach(lib)
configure_file(
  "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in"
  "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
  @ONLY
  )
install(
  FILES
  ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
  DESTINATION
  ${CMAKE_INSTALL_LIBDIR}/pkgconfig/
  )

