1
2
3include(admFFmpegBuild_helpers)
4
5#@@
6ADM_FF_SET_DEFAULT()
7
8IF(USE_NVENC)
9   SET(FFMPEG_ENCODERS ${FFMPEG_ENCODERS} nvenc)
10   xadd("--enable-nvenc")
11   xadd("--extra-cflags=-I${NVENC_INCLUDE_DIR}")
12   set(FFMPEG_ENCODERS  ${FFMPEG_ENCODERS} nvenc_h264 nvenc_hevc)
13ENDIF(USE_NVENC)
14
15#@@
16ADM_FF_PATCH_IF_NEEDED()
17
18if (FFMPEG_PERFORM_PATCH)
19    MESSAGE(STATUS "Patching Linux common.mak")
20    patch_file("${FFMPEG_SOURCE_DIR}" "${FFMPEG_PATCH_DIR}/common.mak.diff")
21endif (FFMPEG_PERFORM_PATCH)
22
23xadd(--enable-pthreads)
24# help for debugging xadd(--disable-optimizations)
25
26if (USE_VDPAU)
27    xadd(--enable-vdpau)
28    set(FFMPEG_DECODERS ${FFMPEG_DECODERS} h264_vdpau  vc1_vdpau  mpeg1_vdpau  mpeg_vdpau  wmv3_vdpau)
29endif (USE_VDPAU)
30
31if (USE_LIBVA)
32    xadd(--enable-vaapi)
33    set(FFMPEG_DECODERS ${FFMPEG_DECODERS} h264_vaapi hevc_vaapi)
34    set(FFMPEG_ENCODERS ${FFMPEG_ENCODERS} h264_vaapi hevc_vaapi)
35endif (USE_LIBVA)
36
37if (USE_VIDEOTOOLBOX)
38    xadd(--enable-videotoolbox)
39    set(FFMPEG_ENCODERS ${FFMPEG_ENCODERS} h264_videotoolbox)
40endif (USE_VIDEOTOOLBOX)
41
42if (APPLE AND "$ENV{MACOSX_DEPLOYMENT_TARGET}" VERSION_EQUAL "10.15")
43    xadd(--extra-cflags="-fno-stack-check") # see https://trac.ffmpeg.org/ticket/8073
44endif (APPLE AND "$ENV{MACOSX_DEPLOYMENT_TARGET}" VERSION_EQUAL "10.15")
45
46#@@
47ADM_FF_ADD_OPTIONS()
48
49xadd(--cc "${CMAKE_C_COMPILER}")
50xadd(--ld "${CMAKE_C_COMPILER}")
51xadd(--ar "${CMAKE_AR}")
52
53#@@
54ADM_FF_SET_EXTRA_FLAGS()
55
56#@@
57ADM_FF_BUILD_UNIX_STYLE()
58#
59ADM_FF_ADD_DUMMY_TARGET()
60
61IF(APPLE)
62        MESSAGE(STATUS "Patching config.mak - mac")
63        patch_file("${FFMPEG_BINARY_DIR}" "${FFMPEG_PATCH_DIR}/config.mak.mac.diff")
64ELSE(APPLE)
65        MESSAGE(STATUS "Patching Linux config.mak")
66        patch_file("${FFMPEG_BINARY_DIR}" "${FFMPEG_PATCH_DIR}/config.mak.diff")
67ENDIF(APPLE)
68#
69MACRO(FF_ADD_SUBLIB lib)
70            add_custom_command(
71                   OUTPUT       "${lib}"
72           DEPENDS     libavutil_dummy
73                   COMMAND ${BASH_EXECUTABLE} -c echo "placeHolder")
74
75ENDMACRO(FF_ADD_SUBLIB lib)
76
77FF_ADD_SUBLIB(         "${FFMPEG_BINARY_DIR}/libavutil/${LIBAVUTIL_LIB}"       )
78FF_ADD_SUBLIB(         "${FFMPEG_BINARY_DIR}/libavcodec/${LIBAVCODEC_LIB}"       )
79FF_ADD_SUBLIB(      "${FFMPEG_BINARY_DIR}/libavformat/${LIBAVFORMAT_LIB}"   )
80FF_ADD_SUBLIB(      "${FFMPEG_BINARY_DIR}/libpostproc/${LIBPOSTPROC_LIB}"   )
81FF_ADD_SUBLIB(      "${FFMPEG_BINARY_DIR}/libswscale/${LIBSWSCALE_LIB}"     )
82
83ADM_FF_INSTALL_LIBS_AND_HEADERS()
84
85IF(USE_LIBVA)
86                INSTALL(FILES "${FFMPEG_SOURCE_DIR}/libavcodec/vaapi.h" DESTINATION "${AVIDEMUX_INCLUDE_DIR}/avidemux/${AVIDEMUX_MAJOR_MINOR}/libavcodec" COMPONENT dev)
87                #INSTALL(FILES "${FFMPEG_SOURCE_DIR}/libavcodec/vaapi_internal.h" DESTINATION "${AVIDEMUX_INCLUDE_DIR}/avidemux/${AVIDEMUX_MAJOR_MINOR}/libavcodec" COMPONENT dev)
88ENDIF(USE_LIBVA)
89# EOF
90