cmake_minimum_required (VERSION 2.8.11)
project (libff)

find_package(FFmpeg REQUIRED
	COMPONENTS avcodec avfilter avdevice avutil swscale avformat swresample)

include_directories(${FFMPEG_INCLUDE_DIRS})

if(WIN32 AND NOT MINGW)
	include_directories(../w32-pthreads)
	add_definitions(-Dinline=__inline)
endif(WIN32 AND NOT MINGW)

set(libff_HEADERS
	libff/ff-callbacks.h
	libff/ff-circular-queue.h
	libff/ff-clock.h
	libff/ff-frame.h
	libff/ff-packet-queue.h
	libff/ff-threading.h
	libff/ff-timer.h
	libff/ff-util.h
	#
	libff/ff-demuxer.h
	#
	libff/ff-decoder.h)

set(libff_SOURCES
	libff/ff-callbacks.c
	libff/ff-circular-queue.c
	libff/ff-clock.c
	libff/ff-packet-queue.c
	libff/ff-timer.c
	libff/ff-util.c
	#
	libff/ff-demuxer.c
	#
	libff/ff-decoder.c
	libff/ff-audio-decoder.c
	libff/ff-video-decoder.c)

if (WIN32)
	list(APPEND libff_SOURCES
		libff/ff-threading-windows.c)
else(WIN32)
	list(APPEND libff_SOURCES
		libff/ff-threading-posix.c)
endif(WIN32)

add_library (libff STATIC
	${libff_HEADERS}
	${libff_SOURCES})

target_include_directories(libff
	PUBLIC .)

if(NOT MSVC)
        if(NOT MINGW)
                target_compile_options(libff PRIVATE -fPIC)
        endif()
endif()

target_link_libraries (libff
	${FFMPEG_LIBRARIES})