# the minimum version of CMake.
cmake_minimum_required(VERSION 3.4.1)
project(mp4parser)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-int-conversion -Wl,-Bsymbolic")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 -Wno-int-conversion -Wl,-Bsymbolic")

set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")

set(distribution_DIR ${CMAKE_SOURCE_DIR}/../../../libs/${OHOS_ARCH})

add_library(mp4parser_napi SHARED
           log/ohos_log.cpp
           ffmpeg_thread/ffmpeg_thread.c
           ffmpeg/cmdutils.c
           ffmpeg/ffmpeg.c
           ffmpeg/ffmpeg_filter.c
           ffmpeg/ffmpeg_opt.c
           ffmpeg/custom_ffmpeg_log.c
           ffmpeg/ffmpeg_utils.c
           ffmpeg/ffmpeg_mediametadataretriever.c
           ffmpeg_thread/ffprobe_thread.c
           ffmpeg/ffprobe.c
           napi/mp4parser_napi.cpp
           )

include_directories(
        ${CMAKE_SOURCE_DIR}/include/library/src/main/cpp/include
        ${CMAKE_SOURCE_DIR}/ffmpeg
)

target_link_directories(mp4parser_napi PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/third_party/FFmpeg/${OHOS_ARCH}/lib)
											  
target_link_libraries(mp4parser_napi hilog_ndk.z)
target_link_libraries(mp4parser_napi ace_napi.z)
target_link_libraries(mp4parser_napi uv)
target_link_libraries(mp4parser_napi z)
target_link_libraries(mp4parser_napi ${CMAKE_CURRENT_SOURCE_DIR}/third_party/FFmpeg/${OHOS_ARCH}/lib/libavcodec.so.58)
target_link_libraries(mp4parser_napi ${CMAKE_CURRENT_SOURCE_DIR}/third_party/FFmpeg/${OHOS_ARCH}/lib/libavfilter.so.7)
target_link_libraries(mp4parser_napi ${CMAKE_CURRENT_SOURCE_DIR}/third_party/FFmpeg/${OHOS_ARCH}/lib/libavformat.so.58)
target_link_libraries(mp4parser_napi ${CMAKE_CURRENT_SOURCE_DIR}/third_party/FFmpeg/${OHOS_ARCH}/lib/libavutil.so.56)
target_link_libraries(mp4parser_napi ${CMAKE_CURRENT_SOURCE_DIR}/third_party/FFmpeg/${OHOS_ARCH}/lib/libswresample.so.3)
target_link_libraries(mp4parser_napi ${CMAKE_CURRENT_SOURCE_DIR}/third_party/FFmpeg/${OHOS_ARCH}/lib/libswscale.so.5)
target_link_libraries(mp4parser_napi ${CMAKE_CURRENT_SOURCE_DIR}/third_party/FFmpeg/${OHOS_ARCH}/lib/libavdevice.so.58)

if(CMAKE_BUILD_TYPE STREQUAL "Release")
    target_link_options(mp4parser_napi PUBLIC -s)
    set(LTO_FLAG "-flto=thin")
    add_compile_options(-O3 -march=native)
    target_compile_options(mp4parser_napi PRIVATE ${LTO_FLAG})
    target_link_options(mp4parser_napi PRIVATE ${LTO_FLAG})
endif()