cmake_minimum_required(VERSION 3.8)

project(librtmp C)

find_package(ZLIB REQUIRED)
find_package(OpenSSL REQUIRED)

include_directories(${ZLIB_INCLUDE_DIRS})
include_directories(${CMAKE_CURRENT_SOURCE_DIR})

set(CMAKE_DEBUG_POSTFIX "d")

if(MSVC)
    add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
    add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
    add_definitions(-D_WINSOCK_DEPRECATED_NO_WARNINGS)
endif()

add_definitions(-DLIBRTMP_ONLY)

# List the header files
set(HEADERS librtmp/amf.h
            librtmp/bytes.h
            librtmp/dh.h
            librtmp/dhgroups.h
            librtmp/handshake.h
            librtmp/http.h
            librtmp/log.h
            librtmp/rtmp.h
            librtmp/rtmp_sys.h
)

# List the source files
set(SRCS librtmp/amf.c
         librtmp/hashswf.c
         librtmp/log.c
         librtmp/parseurl.c
         librtmp/rtmp.c
)

if(MSVC)
    set(SRCS_MSVC "librtmp/librtmp.def")
endif()

add_library(librtmp ${SRCS} ${HEADERS} ${SRCS_MSVC})

target_include_directories(librtmp PRIVATE ./librtmp)
target_link_libraries(librtmp PRIVATE ${ZLIB_LIBRARIES} ${OPENSSL_LIBRARIES})
target_link_libraries(librtmp PRIVATE Ws2_32.lib Winmm.lib)

install(TARGETS librtmp
        RUNTIME DESTINATION bin
        LIBRARY DESTINATION lib
        ARCHIVE DESTINATION lib)

install(DIRECTORY ${PROJECT_SOURCE_DIR}/librtmp DESTINATION include FILES_MATCHING PATTERN "*.h")
