@@ -8,33 +8,150 @@ if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
8
8
endif ()
9
9
10
10
include (FetchContent)
11
+
11
12
set (
12
13
base_url
13
- https://pytorch.s3.amazonaws.com/torchcodec/ffmpeg/2024-06-11/linux_x86_64
14
+ https://pytorch.s3.amazonaws.com/torchcodec/ffmpeg/2024-09-13
14
15
)
16
+
17
+ if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" )
18
+ set (
19
+ platform_url
20
+ ${base_url} /linux_x86_64
21
+ )
22
+
23
+ set (
24
+ f4_sha256
25
+ 07d3e33281f0dce04d3e987d20cce03b155b0c39965333960689c625f451f93a
26
+ )
27
+ set (
28
+ f5_sha256
29
+ 1a2227445f513deb8f4f339050a160fa2419ca494a7f981df93e747d00eeaa69
30
+ )
31
+ set (
32
+ f6_sha256
33
+ 63320ec05ae9341ba307ff0005ac853bcec0b9d2cb55a580d1a72731de2bb5d8
34
+ )
35
+ set (
36
+ f7_sha256
37
+ 0b7c983b5d675441a1c1756eefa23cb24450af6bae5ae2011d9e5807a315d7df
38
+ )
39
+
40
+ set (
41
+ f4_library_file_names
42
+ libavutil.so.56
43
+ libavcodec.so.58
44
+ libavformat.so.58
45
+ libavdevice.so.58
46
+ libavfilter.so.7
47
+ )
48
+ set (
49
+ f5_library_file_names
50
+ libavutil.so.57
51
+ libavcodec.so.59
52
+ libavformat.so.59
53
+ libavdevice.so.59
54
+ libavfilter.so.8
55
+ )
56
+ set (
57
+ f6_library_file_names
58
+ libavutil.so.58
59
+ libavcodec.so.60
60
+ libavformat.so.60
61
+ libavdevice.so.60
62
+ libavfilter.so.9
63
+ )
64
+ set (
65
+ f7_library_file_names
66
+ libavutil.so.59
67
+ libavcodec.so.61
68
+ libavformat.so.61
69
+ libavdevice.so.61
70
+ libavfilter.so.10
71
+ )
72
+ elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" )
73
+ set (
74
+ platform_url
75
+ ${base_url} /macos_arm64
76
+ )
77
+ set (
78
+ f4_sha256
79
+ 7839bebecb9a25f470405a745225d29a5a7f43f4e6d9a57868732aa897ce32be
80
+ )
81
+ set (
82
+ f5_sha256
83
+ df204c89ae52d3af16eb23604955e8cfbee649845d3ae737778a264346ab0063
84
+ )
85
+ set (
86
+ f6_sha256
87
+ 8a82e9ae2eabb23ba546e2c96ba7f1bd656b4db38679876df936db7a92c15677
88
+ )
89
+ set (
90
+ f7_sha256
91
+ 39d96d8191c58ff439d674701d83c775b2b57019a1c2436aa78e7bc9ab74445b
92
+ )
93
+ set (
94
+ f4_library_file_names
95
+ libavutil.56.dylib
96
+ libavcodec.58.dylib
97
+ libavformat.58.dylib
98
+ libavdevice.58.dylib
99
+ libavfilter.7.dylib
100
+ )
101
+ set (
102
+ f5_library_file_names
103
+ libavutil.57.dylib
104
+ libavcodec.59.dylib
105
+ libavformat.59.dylib
106
+ libavdevice.59.dylib
107
+ libavfilter.8.dylib
108
+ )
109
+ set (
110
+ f6_library_file_names
111
+ libavutil.58.dylib
112
+ libavcodec.60.dylib
113
+ libavformat.60.dylib
114
+ libavdevice.60.dylib
115
+ libavfilter.9.dylib
116
+ )
117
+ set (
118
+ f7_library_file_names
119
+ libavutil.59.dylib
120
+ libavcodec.61.dylib
121
+ libavformat.61.dylib
122
+ libavdevice.61.dylib
123
+ libavfilter.10.dylib
124
+ )
125
+ else ()
126
+ message (
127
+ FATAL_ERROR
128
+ "Unsupported operating system: ${CMAKE_SYSTEM_NAME} "
129
+ )
130
+ endif ()
131
+
15
132
FetchContent_Declare(
16
133
f4
17
- URL ${base_url} /ffmpeg_4 .4.4.tar.gz
134
+ URL ${platform_url} /4 .4.4.tar.gz
18
135
URL_HASH
19
- SHA256=a564721e51038d01ead4bbc7a482398929101ca4c80e5ce5c42042637235a297
136
+ SHA256=${f4_sha256}
20
137
)
21
138
FetchContent_Declare(
22
139
f5
23
- URL ${base_url} /ffmpeg_5 .1.4.tar.gz
140
+ URL ${platform_url} /5 .1.4.tar.gz
24
141
URL_HASH
25
- SHA256=d9c2d3a355c091ddc3205ae73426d0d6402ad8a31212dc920daabbaa5fdae944
142
+ SHA256=${f5_sha256}
26
143
)
27
144
FetchContent_Declare(
28
145
f6
29
- URL ${base_url} /ffmpeg_6 .1.1.tar.gz
146
+ URL ${platform_url} /6 .1.1.tar.gz
30
147
URL_HASH
31
- SHA256=7ee5830dc09fed7270aa575650474ab16e18477551e5511f256ce92daa30b136
148
+ SHA256=${f6_sha256}
32
149
)
33
150
FetchContent_Declare(
34
151
f7
35
- URL ${base_url} /ffmpeg_7 .0.1.tar.gz
152
+ URL ${platform_url} /7 .0.1.tar.gz
36
153
URL_HASH
37
- SHA256=fa4cda7aa67fcd58428017f7ebd2a981b0c6babba7ec89f71d6840877712ddcd
154
+ SHA256=${f7_sha256}
38
155
)
39
156
40
157
FetchContent_MakeAvailable(f4 f5 f6 f7)
@@ -50,39 +167,44 @@ target_include_directories(ffmpeg5 INTERFACE ${f5_SOURCE_DIR}/include)
50
167
target_include_directories (ffmpeg6 INTERFACE ${f6_SOURCE_DIR} /include )
51
168
target_include_directories (ffmpeg7 INTERFACE ${f7_SOURCE_DIR} /include )
52
169
170
+ list (
171
+ TRANSFORM f4_library_file_names
172
+ PREPEND ${f4_SOURCE_DIR} /lib/
173
+ OUTPUT_VARIABLE f4_library_paths
174
+ )
175
+ list (
176
+ TRANSFORM f5_library_file_names
177
+ PREPEND ${f5_SOURCE_DIR} /lib/
178
+ OUTPUT_VARIABLE f5_library_paths
179
+ )
180
+ list (
181
+ TRANSFORM f6_library_file_names
182
+ PREPEND ${f6_SOURCE_DIR} /lib/
183
+ OUTPUT_VARIABLE f6_library_paths
184
+ )
185
+ list (
186
+ TRANSFORM f7_library_file_names
187
+ PREPEND ${f7_SOURCE_DIR} /lib/
188
+ OUTPUT_VARIABLE f7_library_paths
189
+ )
190
+
53
191
target_link_libraries (
54
192
ffmpeg4
55
193
INTERFACE
56
- ${f4_SOURCE_DIR} /lib/libavutil.so.56
57
- ${f4_SOURCE_DIR} /lib/libavcodec.so.58
58
- ${f4_SOURCE_DIR} /lib/libavformat.so.58
59
- ${f4_SOURCE_DIR} /lib/libavdevice.so.58
60
- ${f4_SOURCE_DIR} /lib/libavfilter.so.7
194
+ ${f4_library_paths}
61
195
)
62
196
target_link_libraries (
63
197
ffmpeg5
64
198
INTERFACE
65
- ${f5_SOURCE_DIR} /lib/libavutil.so.57
66
- ${f5_SOURCE_DIR} /lib/libavcodec.so.59
67
- ${f5_SOURCE_DIR} /lib/libavformat.so.59
68
- ${f5_SOURCE_DIR} /lib/libavdevice.so.59
69
- ${f5_SOURCE_DIR} /lib/libavfilter.so.8
199
+ ${f5_library_paths}
70
200
)
71
201
target_link_libraries (
72
202
ffmpeg6
73
203
INTERFACE
74
- ${f6_SOURCE_DIR} /lib/libavutil.so.58
75
- ${f6_SOURCE_DIR} /lib/libavcodec.so.60
76
- ${f6_SOURCE_DIR} /lib/libavformat.so.60
77
- ${f6_SOURCE_DIR} /lib/libavdevice.so.60
78
- ${f6_SOURCE_DIR} /lib/libavfilter.so.9
204
+ ${f6_library_paths}
79
205
)
80
206
target_link_libraries (
81
207
ffmpeg7
82
208
INTERFACE
83
- ${f7_SOURCE_DIR} /lib/libavutil.so.59
84
- ${f7_SOURCE_DIR} /lib/libavcodec.so.61
85
- ${f7_SOURCE_DIR} /lib/libavformat.so.61
86
- ${f7_SOURCE_DIR} /lib/libavdevice.so.61
87
- ${f7_SOURCE_DIR} /lib/libavfilter.so.10
209
+ ${f7_library_paths}
88
210
)
0 commit comments