File tree 14 files changed +303
-31
lines changed
14 files changed +303
-31
lines changed Original file line number Diff line number Diff line change 560
560
"source" : " rar" ,
561
561
"cpp-extension" : true
562
562
},
563
+ "rdkafka" : {
564
+ "support" : {
565
+ "BSD" : " wip" ,
566
+ "Windows" : " wip"
567
+ },
568
+ "type" : " external" ,
569
+ "source" : " ext-rdkafka" ,
570
+ "arg-type" : " custom" ,
571
+ "cpp-extension" : true ,
572
+ "lib-depends" : [
573
+ " librdkafka"
574
+ ]
575
+ },
563
576
"readline" : {
564
577
"support" : {
565
578
"Windows" : " wip" ,
708
721
" zlib"
709
722
]
710
723
},
711
- "rdkafka" : {
712
- "support" : {
713
- "BSD" : " wip" ,
714
- "Windows" : " wip"
715
- },
716
- "type" : " external" ,
717
- "source" : " ext-rdkafka" ,
718
- "arg-type" : " custom" ,
719
- "cpp-extension" : true ,
720
- "lib-depends" : [
721
- " librdkafka"
722
- ]
723
- },
724
724
"swoole" : {
725
725
"support" : {
726
726
"Windows" : " no" ,
Original file line number Diff line number Diff line change 176
176
" libjpeg" ,
177
177
" libwebp" ,
178
178
" freetype" ,
179
- " libtiff"
179
+ " libtiff" ,
180
+ " libheif"
180
181
],
181
182
"lib-suggests" : [
182
183
" zstd" ,
208
209
" libsodium"
209
210
]
210
211
},
212
+ "libaom" : {
213
+ "source" : " libaom" ,
214
+ "static-libs-unix" : [
215
+ " libaom.a"
216
+ ],
217
+ "cpp-library" : true
218
+ },
211
219
"libargon2" : {
212
220
"source" : " libargon2" ,
213
221
"static-libs-unix" : [
235
243
" ares_rules.h"
236
244
]
237
245
},
246
+ "libde265" : {
247
+ "source" : " libde265" ,
248
+ "static-libs-unix" : [
249
+ " libde265.a"
250
+ ],
251
+ "cpp-library" : true
252
+ },
238
253
"libevent" : {
239
254
"source" : " libevent" ,
240
255
"static-libs-unix" : [
276
291
" fficonfig.h"
277
292
]
278
293
},
294
+ "libheif" : {
295
+ "source" : " libheif" ,
296
+ "static-libs-unix" : [
297
+ " libheif.a"
298
+ ],
299
+ "lib-depends" : [
300
+ " libde265" ,
301
+ " libwebp" ,
302
+ " libaom" ,
303
+ " zlib" ,
304
+ " brotli"
305
+ ]
306
+ },
279
307
"libiconv" : {
280
308
"source" : " libiconv" ,
281
309
"static-libs-unix" : [
355
383
" openssl"
356
384
]
357
385
},
386
+ "librdkafka" : {
387
+ "source" : " librdkafka" ,
388
+ "static-libs-unix" : [
389
+ " librdkafka.a" ,
390
+ " librdkafka++.a" ,
391
+ " librdkafka-static.a"
392
+ ],
393
+ "cpp-library" : true ,
394
+ "lib-suggests" : [
395
+ " zstd"
396
+ ]
397
+ },
358
398
"libsodium" : {
359
399
"source" : " libsodium" ,
360
400
"static-libs-unix" : [
558
598
"pkg-config" : {
559
599
"source" : " pkg-config"
560
600
},
561
- "librdkafka" : {
562
- "source" : " librdkafka" ,
563
- "static-libs-unix" : [
564
- " librdkafka.a" ,
565
- " librdkafka++.a" ,
566
- " librdkafka-static.a"
567
- ],
568
- "cpp-library" : true ,
569
- "lib-suggests" : [
570
- " zstd"
571
- ]
572
- },
573
601
"postgresql" : {
574
602
"source" : " postgresql" ,
575
603
"static-libs-unix" : [
Original file line number Diff line number Diff line change 303
303
"path" : " LICENSE"
304
304
}
305
305
},
306
+ "libaom" : {
307
+ "type" : " git" ,
308
+ "rev" : " main" ,
309
+ "url" : " https://aomedia.googlesource.com/aom" ,
310
+ "provide-pre-built" : true ,
311
+ "license" : {
312
+ "type" : " file" ,
313
+ "path" : " LICENSE"
314
+ }
315
+ },
306
316
"libargon2" : {
307
317
"type" : " git" ,
308
318
"rev" : " master" ,
338
348
"path" : " LICENSE.md"
339
349
}
340
350
},
351
+ "libde265" : {
352
+ "type" : " ghrel" ,
353
+ "repo" : " strukturag/libde265" ,
354
+ "match" : " libde265-.+\\ .tar\\ .gz" ,
355
+ "prefer-stable" : true ,
356
+ "provide-pre-built" : true ,
357
+ "license" : {
358
+ "type" : " file" ,
359
+ "path" : " COPYING"
360
+ }
361
+ },
341
362
"libevent" : {
342
363
"type" : " ghrel" ,
343
364
"repo" : " libevent/libevent" ,
368
389
"path" : " LICENSE"
369
390
}
370
391
},
392
+ "libheif" : {
393
+ "type" : " ghrel" ,
394
+ "repo" : " strukturag/libheif" ,
395
+ "match" : " libheif-.+\\ .tar\\ .gz" ,
396
+ "prefer-stable" : true ,
397
+ "provide-pre-built" : true ,
398
+ "license" : {
399
+ "type" : " file" ,
400
+ "path" : " COPYING"
401
+ }
402
+ },
371
403
"libiconv" : {
372
404
"type" : " filelist" ,
373
405
"url" : " https://ftp.gnu.org/gnu/libiconv/" ,
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ declare (strict_types=1 );
4
+
5
+ namespace SPC \builder \linux \library ;
6
+
7
+ class libaom extends LinuxLibraryBase
8
+ {
9
+ use \SPC \builder \unix \library \libaom;
10
+
11
+ public const NAME = 'libaom ' ;
12
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ declare (strict_types=1 );
4
+
5
+ namespace SPC \builder \linux \library ;
6
+
7
+ class libde265 extends LinuxLibraryBase
8
+ {
9
+ use \SPC \builder \unix \library \libde265;
10
+
11
+ public const NAME = 'libde265 ' ;
12
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ declare (strict_types=1 );
4
+
5
+ namespace SPC \builder \linux \library ;
6
+
7
+ class libheif extends LinuxLibraryBase
8
+ {
9
+ use \SPC \builder \unix \library \libheif;
10
+
11
+ public const NAME = 'libheif ' ;
12
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ declare (strict_types=1 );
4
+
5
+ namespace SPC \builder \macos \library ;
6
+
7
+ class libaom extends MacOSLibraryBase
8
+ {
9
+ use \SPC \builder \unix \library \libaom;
10
+
11
+ public const NAME = 'libaom ' ;
12
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ declare (strict_types=1 );
4
+
5
+ namespace SPC \builder \macos \library ;
6
+
7
+ class libde265 extends MacOSLibraryBase
8
+ {
9
+ use \SPC \builder \unix \library \libde265;
10
+
11
+ public const NAME = 'libde265 ' ;
12
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ declare (strict_types=1 );
4
+
5
+ namespace SPC \builder \macos \library ;
6
+
7
+ use SPC \store \FileSystem ;
8
+
9
+ class libheif extends MacOSLibraryBase
10
+ {
11
+ use \SPC \builder \unix \library \libheif;
12
+
13
+ public const NAME = 'libheif ' ;
14
+
15
+ public function patchBeforeBuild (): bool
16
+ {
17
+ if (!str_contains (file_get_contents ($ this ->source_dir . '/CMakeLists.txt ' ), 'libbrotlienc ' )) {
18
+ FileSystem::replaceFileStr (
19
+ $ this ->source_dir . '/CMakeLists.txt ' ,
20
+ 'list(APPEND REQUIRES_PRIVATE "libbrotlidec") ' ,
21
+ 'list(APPEND REQUIRES_PRIVATE "libbrotlidec") ' . "\n" . ' list(APPEND REQUIRES_PRIVATE "libbrotlienc") '
22
+ );
23
+ return true ;
24
+ }
25
+ return false ;
26
+ }
27
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ declare (strict_types=1 );
4
+
5
+ namespace SPC \builder \unix \library ;
6
+
7
+ use SPC \exception \FileSystemException ;
8
+ use SPC \exception \RuntimeException ;
9
+ use SPC \store \FileSystem ;
10
+
11
+ trait libaom
12
+ {
13
+ /**
14
+ * @throws RuntimeException
15
+ * @throws FileSystemException
16
+ */
17
+ protected function build (): void
18
+ {
19
+ // CMake needs a clean build directory
20
+ FileSystem::resetDir ($ this ->source_dir . '/builddir ' );
21
+ // Start build
22
+ shell ()->cd ($ this ->source_dir . '/builddir ' )
23
+ ->exec (
24
+ 'cmake ' .
25
+ '-DCMAKE_INSTALL_PREFIX= ' . BUILD_ROOT_PATH . ' ' .
26
+ "-DCMAKE_TOOLCHAIN_FILE= {$ this ->builder ->cmake_toolchain_file } " .
27
+ '-DCMAKE_BUILD_TYPE=Release ' .
28
+ '-DBUILD_SHARED_LIBS=OFF ' .
29
+ '-DAOM_TARGET_CPU=generic ' .
30
+ '.. '
31
+ )
32
+ ->exec ("cmake --build . -j {$ this ->builder ->concurrency }" )
33
+ ->exec ('make install ' );
34
+ $ this ->patchPkgconfPrefix (['aom.pc ' ]);
35
+ }
36
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ declare (strict_types=1 );
4
+
5
+ namespace SPC \builder \unix \library ;
6
+
7
+ use SPC \exception \FileSystemException ;
8
+ use SPC \exception \RuntimeException ;
9
+ use SPC \store \FileSystem ;
10
+
11
+ trait libde265
12
+ {
13
+ /**
14
+ * @throws RuntimeException
15
+ * @throws FileSystemException
16
+ */
17
+ protected function build (): void
18
+ {
19
+ // CMake needs a clean build directory
20
+ FileSystem::resetDir ($ this ->source_dir . '/build ' );
21
+ // Start build
22
+ shell ()->cd ($ this ->source_dir . '/build ' )
23
+ ->exec (
24
+ 'cmake ' .
25
+ '-DCMAKE_INSTALL_PREFIX= ' . BUILD_ROOT_PATH . ' ' .
26
+ "-DCMAKE_TOOLCHAIN_FILE= {$ this ->builder ->cmake_toolchain_file } " .
27
+ '-DCMAKE_BUILD_TYPE=Release ' .
28
+ '-DBUILD_SHARED_LIBS=OFF ' .
29
+ '-DENABLE_SDL=OFF ' . // Disable SDL, currently not supported
30
+ '.. '
31
+ )
32
+ ->exec ("cmake --build . -j {$ this ->builder ->concurrency }" )
33
+ ->exec ('make install ' );
34
+ $ this ->patchPkgconfPrefix (['libde265.pc ' ]);
35
+ }
36
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ declare (strict_types=1 );
4
+
5
+ namespace SPC \builder \unix \library ;
6
+
7
+ use SPC \exception \FileSystemException ;
8
+ use SPC \exception \RuntimeException ;
9
+ use SPC \store \FileSystem ;
10
+
11
+ trait libheif
12
+ {
13
+ /**
14
+ * @throws RuntimeException
15
+ * @throws FileSystemException
16
+ */
17
+ protected function build (): void
18
+ {
19
+ // CMake needs a clean build directory
20
+ FileSystem::resetDir ($ this ->source_dir . '/build ' );
21
+ // Start build
22
+ shell ()->cd ($ this ->source_dir . '/build ' )
23
+ ->exec (
24
+ 'cmake ' .
25
+ '--preset=release ' .
26
+ '-DCMAKE_INSTALL_PREFIX= ' . BUILD_ROOT_PATH . ' ' .
27
+ "-DCMAKE_TOOLCHAIN_FILE= {$ this ->builder ->cmake_toolchain_file } " .
28
+ '-DCMAKE_BUILD_TYPE=Release ' .
29
+ '-DBUILD_SHARED_LIBS=OFF ' .
30
+ '-DWITH_EXAMPLES=OFF ' .
31
+ '-DWITH_GDK_PIXBUF=OFF ' .
32
+ '-DBUILD_TESTING=OFF ' .
33
+ '-DWITH_LIBSHARPYUV=ON ' . // optional: libwebp
34
+ '-DENABLE_PLUGIN_LOADING=OFF ' .
35
+ '.. '
36
+ )
37
+ ->exec ("cmake --build . -j {$ this ->builder ->concurrency }" )
38
+ ->exec ('make install ' );
39
+ $ this ->patchPkgconfPrefix (['libheif.pc ' ]);
40
+ }
41
+ }
You can’t perform that action at this time.
0 commit comments