Skip to content
This repository was archived by the owner on May 7, 2020. It is now read-only.

Commit 132a052

Browse files
Build using Universal CRT
Getting closer to aali built driver
1 parent 28d2628 commit 132a052

17 files changed

+1429
-216
lines changed

CMakeLists.txt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
1-
cmake_minimum_required(VERSION 3.12)
1+
cmake_minimum_required(VERSION 3.15)
2+
cmake_policy(SET CMP0091 NEW)
3+
4+
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
5+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug")
6+
else()
7+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded")
8+
endif()
9+
10+
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /NODEFAULTLIB:LIBCMTD /NODEFAULTLIB:MSVCRT /NODEFAULTLIB:MSVCRTD /FORCE:MULTIPLE /MANIFEST:NO")
211

312
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
413
option(SUPERBUILD "Build the project using a superbuild" ON)

cmake/FindFFMPEG.cmake

Lines changed: 153 additions & 201 deletions
Original file line numberDiff line numberDiff line change
@@ -1,201 +1,153 @@
1-
include(FindPackageHandleStandardArgs)
2-
3-
if (NOT FFMPEG_FOUND)
4-
# avutil
5-
find_library(
6-
FFMPEG_AVUTIL_LIBRARY
7-
avutil
8-
PATH_SUFFIXES
9-
lib
10-
)
11-
12-
find_path(
13-
FFMPEG_AVUTIL_INCLUDE_DIR
14-
libavutil/avutil.h
15-
PATH_SUFFIXES
16-
include
17-
)
18-
19-
find_file(
20-
FFMPEG_AVUTIL_DLL
21-
avutil-56.dll
22-
PATH_SUFFIXES
23-
bin
24-
)
25-
26-
add_library(FFMPEG::AVUtil SHARED IMPORTED)
27-
28-
set_target_properties(
29-
FFMPEG::AVUtil
30-
PROPERTIES
31-
IMPORTED_LOCATION
32-
"${FFMPEG_AVUTIL_DLL}"
33-
IMPORTED_IMPLIB
34-
"${FFMPEG_AVUTIL_LIBRARY}"
35-
INTERFACE_INCLUDE_DIRECTORIES
36-
"${FFMPEG_AVUTIL_INCLUDE_DIR}"
37-
)
38-
39-
# swresample
40-
find_library(
41-
FFMPEG_SWRESAMPLE_LIBRARY
42-
swresample
43-
PATH_SUFFIXES
44-
lib
45-
)
46-
47-
find_path(
48-
FFMPEG_SWRESAMPLE_INCLUDE_DIR
49-
libswresample/swresample.h
50-
PATH_SUFFIXES
51-
include
52-
)
53-
54-
find_file(
55-
FFMPEG_SWRESAMPLE_DLL
56-
swresample-3.dll
57-
PATH_SUFFIXES
58-
bin
59-
)
60-
61-
add_library(FFMPEG::SWResample SHARED IMPORTED)
62-
63-
set_target_properties(
64-
FFMPEG::SWResample
65-
PROPERTIES
66-
IMPORTED_LOCATION
67-
"${FFMPEG_SWRESAMPLE_DLL}"
68-
IMPORTED_IMPLIB
69-
"${FFMPEG_SWRESAMPLE_LIBRARY}"
70-
INTERFACE_INCLUDE_DIRECTORIES
71-
"${FFMPEG_SWRESAMPLE_INCLUDE_DIR}"
72-
INTERFACE_LINK_LIBRARIES
73-
FFMPEG::AVUtil
74-
)
75-
76-
# avcodec
77-
find_library(
78-
FFMPEG_AVCODEC_LIBRARY
79-
avcodec
80-
PATH_SUFFIXES
81-
lib
82-
)
83-
84-
find_path(
85-
FFMPEG_AVCODEC_INCLUDE_DIR
86-
libavcodec/avcodec.h
87-
PATH_SUFFIXES
88-
include
89-
)
90-
91-
find_file(
92-
FFMPEG_AVCODEC_DLL
93-
avcodec-58.dll
94-
PATH_SUFFIXES
95-
bin
96-
)
97-
98-
add_library(FFMPEG::AVCodec SHARED IMPORTED)
99-
100-
set_target_properties(
101-
FFMPEG::AVCodec
102-
PROPERTIES
103-
IMPORTED_LOCATION
104-
"${FFMPEG_AVCODEC_DLL}"
105-
IMPORTED_IMPLIB
106-
"${FFMPEG_AVCODEC_LIBRARY}"
107-
INTERFACE_INCLUDE_DIRECTORIES
108-
"${FFMPEG_AVCODEC_INCLUDE_DIR}"
109-
INTERFACE_LINK_LIBRARIES
110-
"FFMPEG::AVUtil;FFMPEG::SWResample"
111-
)
112-
113-
# avformat
114-
find_library(
115-
FFMPEG_AVFORMAT_LIBRARY
116-
avformat
117-
PATH_SUFFIXES
118-
lib
119-
)
120-
121-
find_path(
122-
FFMPEG_AVFORMAT_INCLUDE_DIR
123-
libavformat/avformat.h
124-
PATH_SUFFIXES
125-
include
126-
)
127-
128-
find_file(
129-
FFMPEG_AVFORMAT_DLL
130-
avformat-58.dll
131-
PATH_SUFFIXES
132-
bin
133-
)
134-
135-
add_library(FFMPEG::AVFormat SHARED IMPORTED)
136-
137-
set_target_properties(
138-
FFMPEG::AVFormat
139-
PROPERTIES
140-
IMPORTED_LOCATION
141-
"${FFMPEG_AVFORMAT_DLL}"
142-
IMPORTED_IMPLIB
143-
"${FFMPEG_AVFORMAT_LIBRARY}"
144-
INTERFACE_INCLUDE_DIRECTORIES
145-
"${FFMPEG_AVFORMAT_INCLUDE_DIR}"
146-
INTERFACE_LINK_LIBRARIES
147-
"FFMPEG::AVUtil;FFMPEG::AVCodec"
148-
)
149-
150-
# swscale
151-
find_library(
152-
FFMPEG_SWSCALE_LIBRARY
153-
swscale
154-
PATH_SUFFIXES
155-
lib
156-
)
157-
158-
find_path(
159-
FFMPEG_SWSCALE_INCLUDE_DIR
160-
libswscale/swscale.h
161-
PATH_SUFFIXES
162-
include
163-
)
164-
165-
find_file(
166-
FFMPEG_SWSCALE_DLL
167-
swscale-5.dll
168-
PATH_SUFFIXES
169-
bin
170-
)
171-
172-
add_library(FFMPEG::SWScale SHARED IMPORTED)
173-
174-
set_target_properties(
175-
FFMPEG::SWScale
176-
PROPERTIES
177-
IMPORTED_LOCATION
178-
"${FFMPEG_SWSCALE_DLL}"
179-
IMPORTED_IMPLIB
180-
"${FFMPEG_SWSCALE_LIBRARY}"
181-
INTERFACE_INCLUDE_DIRECTORIES
182-
"${FFMPEG_SWSCALE_INCLUDE_DIR}"
183-
INTERFACE_LINK_LIBRARIES
184-
FFMPEG::AVUtil
185-
)
186-
187-
find_package_handle_standard_args(
188-
FFMPEG
189-
DEFAULT_MSG
190-
FFMPEG_AVCODEC_LIBRARY
191-
FFMPEG_AVCODEC_DLL
192-
FFMPEG_AVFORMAT_LIBRARY
193-
FFMPEG_AVFORMAT_DLL
194-
FFMPEG_AVUTIL_LIBRARY
195-
FFMPEG_AVUTIL_DLL
196-
FFMPEG_SWSCALE_LIBRARY
197-
FFMPEG_SWSCALE_DLL
198-
FFMPEG_SWRESAMPLE_LIBRARY
199-
FFMPEG_SWRESAMPLE_DLL
200-
)
201-
endif()
1+
include(FindPackageHandleStandardArgs)
2+
3+
if (NOT FFMPEG_FOUND)
4+
# avutil
5+
find_library(
6+
FFMPEG_AVUTIL_LIBRARY
7+
avutil
8+
PATH_SUFFIXES
9+
lib
10+
)
11+
12+
find_path(
13+
FFMPEG_AVUTIL_INCLUDE_DIR
14+
libavutil/avutil.h
15+
PATH_SUFFIXES
16+
include
17+
)
18+
19+
add_library(FFMPEG::AVUtil STATIC IMPORTED)
20+
21+
set_target_properties(
22+
FFMPEG::AVUtil
23+
PROPERTIES
24+
IMPORTED_LOCATION
25+
"${FFMPEG_AVUTIL_LIBRARY}"
26+
INTERFACE_INCLUDE_DIRECTORIES
27+
"${FFMPEG_AVUTIL_INCLUDE_DIR}"
28+
)
29+
30+
# swresample
31+
find_library(
32+
FFMPEG_SWRESAMPLE_LIBRARY
33+
swresample
34+
PATH_SUFFIXES
35+
lib
36+
)
37+
38+
find_path(
39+
FFMPEG_SWRESAMPLE_INCLUDE_DIR
40+
libswresample/swresample.h
41+
PATH_SUFFIXES
42+
include
43+
)
44+
45+
add_library(FFMPEG::SWResample STATIC IMPORTED)
46+
47+
set_target_properties(
48+
FFMPEG::SWResample
49+
PROPERTIES
50+
IMPORTED_LOCATION
51+
"${FFMPEG_SWRESAMPLE_LIBRARY}"
52+
INTERFACE_INCLUDE_DIRECTORIES
53+
"${FFMPEG_SWRESAMPLE_INCLUDE_DIR}"
54+
INTERFACE_LINK_LIBRARIES
55+
FFMPEG::AVUtil
56+
)
57+
58+
# avcodec
59+
find_package(X264 REQUIRED)
60+
61+
find_library(
62+
FFMPEG_AVCODEC_LIBRARY
63+
avcodec
64+
PATH_SUFFIXES
65+
lib
66+
)
67+
68+
find_path(
69+
FFMPEG_AVCODEC_INCLUDE_DIR
70+
libavcodec/avcodec.h
71+
PATH_SUFFIXES
72+
include
73+
)
74+
75+
add_library(FFMPEG::AVCodec STATIC IMPORTED)
76+
77+
set_target_properties(
78+
FFMPEG::AVCodec
79+
PROPERTIES
80+
IMPORTED_LOCATION
81+
"${FFMPEG_AVCODEC_LIBRARY}"
82+
INTERFACE_INCLUDE_DIRECTORIES
83+
"${FFMPEG_AVCODEC_INCLUDE_DIR}"
84+
INTERFACE_LINK_LIBRARIES
85+
"FFMPEG::AVUtil;FFMPEG::SWResample;X264::X264"
86+
)
87+
88+
# avformat
89+
find_library(
90+
FFMPEG_AVFORMAT_LIBRARY
91+
avformat
92+
PATH_SUFFIXES
93+
lib
94+
)
95+
96+
find_path(
97+
FFMPEG_AVFORMAT_INCLUDE_DIR
98+
libavformat/avformat.h
99+
PATH_SUFFIXES
100+
include
101+
)
102+
103+
add_library(FFMPEG::AVFormat STATIC IMPORTED)
104+
105+
set_target_properties(
106+
FFMPEG::AVFormat
107+
PROPERTIES
108+
IMPORTED_LOCATION
109+
"${FFMPEG_AVFORMAT_LIBRARY}"
110+
INTERFACE_INCLUDE_DIRECTORIES
111+
"${FFMPEG_AVFORMAT_INCLUDE_DIR}"
112+
INTERFACE_LINK_LIBRARIES
113+
"FFMPEG::AVUtil;FFMPEG::AVCodec"
114+
)
115+
116+
# swscale
117+
find_library(
118+
FFMPEG_SWSCALE_LIBRARY
119+
swscale
120+
PATH_SUFFIXES
121+
lib
122+
)
123+
124+
find_path(
125+
FFMPEG_SWSCALE_INCLUDE_DIR
126+
libswscale/swscale.h
127+
PATH_SUFFIXES
128+
include
129+
)
130+
131+
add_library(FFMPEG::SWScale STATIC IMPORTED)
132+
133+
set_target_properties(
134+
FFMPEG::SWScale
135+
PROPERTIES
136+
IMPORTED_LOCATION
137+
"${FFMPEG_SWSCALE_LIBRARY}"
138+
INTERFACE_INCLUDE_DIRECTORIES
139+
"${FFMPEG_SWSCALE_INCLUDE_DIR}"
140+
INTERFACE_LINK_LIBRARIES
141+
FFMPEG::AVUtil
142+
)
143+
144+
find_package_handle_standard_args(
145+
FFMPEG
146+
DEFAULT_MSG
147+
FFMPEG_AVCODEC_LIBRARY
148+
FFMPEG_AVFORMAT_LIBRARY
149+
FFMPEG_AVUTIL_LIBRARY
150+
FFMPEG_SWSCALE_LIBRARY
151+
FFMPEG_SWRESAMPLE_LIBRARY
152+
)
153+
endif()

0 commit comments

Comments
 (0)