1##########################################################################################"
2# VS Style management of ffmpeg libs
3# We raw import binaries from somewhere else as they have been compiled with mingw
4#
5# Add -DIMPORT_FOLDER=foobar on cmake
6#
7#
8##########################################################################################"
9IF(NOT IMPORT_FOLDER)
10        SET(IMPORT_FOLDER "d://import//") #Default value
11ENDIF(NOT IMPORT_FOLDER)
12MESSAGE(STATUS "Importing ffmpeg binaries from ${IMPORT_FOLDER}")
13
14SET(LIB_IMPORT_FOLDER "${IMPORT_FOLDER}\\lib")
15INCLUDE_DIRECTORIES(${IMPORT_FOLDER}/include)
16LINK_DIRECTORIES(${IMPORT_FOLDER}/lib)
17set(LIBAVCODEC_LIB ${IMPORT_FOLDER}/lib/avcodec.lib)
18set(LIBAVFORMAT_LIB ${IMPORT_FOLDER}/lib/avformat.lib)
19set(LIBAVUTIL_LIB ${IMPORT_FOLDER}/lib/avutil.lib)
20set(LIBPOSTPROC_LIB ${IMPORT_FOLDER}/lib/postproc.lib)
21set(LIBSWSCALE_LIB ${IMPORT_FOLDER}/lib/swscale.lib)
22
23# Actual lib
24
25add_library(ADM_libswscale UNKNOWN IMPORTED)
26add_library(ADM_libpostproc UNKNOWN IMPORTED)
27add_library(ADM_libavutil UNKNOWN IMPORTED)
28add_library(ADM_libavcodec UNKNOWN IMPORTED)
29add_library(ADM_libavformat UNKNOWN IMPORTED)
30
31
32set_property(TARGET ADM_libswscale PROPERTY IMPORTED_LOCATION "${LIBSWSCALE_LIB}")
33set_property(TARGET ADM_libpostproc PROPERTY IMPORTED_LOCATION "${LIBPOSTPROC_LIB}")
34set_property(TARGET ADM_libavutil PROPERTY IMPORTED_LOCATION "${LIBAVUTIL_LIB}")
35set_property(TARGET ADM_libavcodec PROPERTY IMPORTED_LOCATION "${LIBAVCODEC_LIB}")
36set_property(TARGET ADM_libavformat PROPERTY IMPORTED_LOCATION "${LIBAVFORMAT_LIB}")
37
38# install .dll.a
39ADM_INSTALL_LIB_FILES("${LIBAVCODEC_LIB}")
40ADM_INSTALL_LIB_FILES("${LIBAVFORMAT_LIB}")
41ADM_INSTALL_LIB_FILES("${LIBAVUTIL_LIB}")
42ADM_INSTALL_LIB_FILES("${LIBPOSTPROC_LIB}")
43ADM_INSTALL_LIB_FILES("${LIBSWSCALE_LIB}")
44#INSTALL .dll => TODO
45
46# install header
47INSTALL(FILES "${IMPORT_FOLDER}/include/libavutil/avconfig.h" DESTINATION "${AVIDEMUX_INCLUDE_DIR}/avidemux/${AVIDEMUX_MAJOR_MINOR}/libavutil" COMPONENT dev)
48
49INSTALL(FILES "${IMPORT_FOLDER}/include/libavcodec/avcodec.h" "${IMPORT_FOLDER}/include/libavcodec/vdpau.h"
50        "${IMPORT_FOLDER}/include/libavcodec/version.h"
51        #"${IMPORT_FOLDER}/include/libavcodec/audioconvert.h"
52
53        DESTINATION "${AVIDEMUX_INCLUDE_DIR}/avidemux/${AVIDEMUX_MAJOR_MINOR}/libavcodec" COMPONENT dev)
54
55INSTALL(FILES "${IMPORT_FOLDER}/include/libavformat/avformat.h" "${IMPORT_FOLDER}/include/libavformat/avio.h"
56        "${IMPORT_FOLDER}/include/libavformat/version.h"
57        "${IMPORT_FOLDER}/include/libavformat/flv.h"
58        DESTINATION "${AVIDEMUX_INCLUDE_DIR}/avidemux/${AVIDEMUX_MAJOR_MINOR}/libavformat" COMPONENT dev)
59
60INSTALL(FILES "${IMPORT_FOLDER}/include/libavutil/attributes.h"
61        "${IMPORT_FOLDER}/include/libavutil/avutil.h"
62        "${IMPORT_FOLDER}/include/libavutil/buffer.h"
63        "${IMPORT_FOLDER}/include/libavutil/bswap.h"
64        "${IMPORT_FOLDER}/include/libavutil/common.h"
65        "${IMPORT_FOLDER}/include/libavutil/cpu.h"
66        "${IMPORT_FOLDER}/include/libavutil/frame.h"
67        "${IMPORT_FOLDER}/include/libavutil/log.h"
68        "${IMPORT_FOLDER}/include/libavutil/mathematics.h"
69        "${IMPORT_FOLDER}/include/libavutil/mem.h"
70        "${IMPORT_FOLDER}/include/libavutil/pixfmt.h"
71        "${IMPORT_FOLDER}/include/libavutil/pixdesc.h"
72        "${IMPORT_FOLDER}/include/libavutil/channel_layout.h"
73        "${IMPORT_FOLDER}/include/libavutil/error.h"
74        "${IMPORT_FOLDER}/include/libavutil/dict.h"
75        "${IMPORT_FOLDER}/include/libavutil/version.h"
76        "${IMPORT_FOLDER}/include/libavutil/time.h"
77        "${IMPORT_FOLDER}/include/libavutil/opt.h"
78        "${IMPORT_FOLDER}/include/libavutil/intfloat.h"
79        "${IMPORT_FOLDER}/include/libavutil/macros.h"
80        "${IMPORT_FOLDER}/include/libavutil/samplefmt.h"
81        "${IMPORT_FOLDER}/include/libavutil/rational.h"
82        "${IMPORT_FOLDER}/include/libavutil/hwcontext_dxva2.h"
83		"${IMPORT_FOLDER}/include/libavutil/hwcontext.h"
84        DESTINATION "${AVIDEMUX_INCLUDE_DIR}/avidemux/${AVIDEMUX_MAJOR_MINOR}/libavutil" COMPONENT dev)
85
86INSTALL(FILES "${IMPORT_FOLDER}/include/libpostproc/postprocess.h" DESTINATION "${AVIDEMUX_INCLUDE_DIR}/avidemux/${AVIDEMUX_MAJOR_MINOR}/libpostproc" COMPONENT dev)
87INSTALL(FILES "${IMPORT_FOLDER}/include/libpostproc/version.h" DESTINATION "${AVIDEMUX_INCLUDE_DIR}/avidemux/${AVIDEMUX_MAJOR_MINOR}/libpostproc" COMPONENT dev)
88INSTALL(FILES "${IMPORT_FOLDER}/include/libswscale/swscale.h" DESTINATION "${AVIDEMUX_INCLUDE_DIR}/avidemux/${AVIDEMUX_MAJOR_MINOR}/libswscale" COMPONENT dev)
89INSTALL(FILES "${IMPORT_FOLDER}/include/libswscale/version.h" DESTINATION "${AVIDEMUX_INCLUDE_DIR}/avidemux/${AVIDEMUX_MAJOR_MINOR}/libswscale" COMPONENT dev)
90
91
92IF(USE_DXVA2)
93        INSTALL(FILES "${IMPORT_FOLDER}/include/libavcodec/dxva2.h" DESTINATION "${AVIDEMUX_INCLUDE_DIR}/avidemux/${AVIDEMUX_MAJOR_MINOR}/libavcodec" COMPONENT dev)
94        INSTALL(FILES "${IMPORT_FOLDER}/include/libavcodec/d3d11va.h" DESTINATION "${AVIDEMUX_INCLUDE_DIR}/avidemux/${AVIDEMUX_MAJOR_MINOR}/libavcodec" COMPONENT dev)
95        INSTALL(FILES "${IMPORT_FOLDER}/include/libavcodec/dxva2_internal.h" DESTINATION "${AVIDEMUX_INCLUDE_DIR}/avidemux/${AVIDEMUX_MAJOR_MINOR}/libavcodec" COMPONENT dev)
96ENDIF(USE_DXVA2)
97
98#The above install the .libs
99# also install the .dll manually
100
101FILE(GLOB ffmpegDll "${IMPORT_FOLDER}/lib/*-*.dll")
102FOREACH(one ${ffmpegDll})
103        ADM_INSTALL_LIB_FILES(${one})
104ENDFOREACH(one ${ffmpegDll})
105# EOF
106