contrib: add cpuinfo

Required by SVT-AV1.
This commit is contained in:
Damiano Galassi 2025-02-21 13:49:43 +01:00 committed by Damiano Galassi
parent 6e1866cf55
commit 2012ab9e67
8 changed files with 64 additions and 5 deletions

View File

@ -0,0 +1,47 @@
$(eval $(call import.MODULE.defs,CPUINFO,cpuinfo))
$(eval $(call import.CONTRIB.defs,CPUINFO))
CPUINFO.FETCH.url = https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/cpuinfo-b73ae6c.tar.gz
CPUINFO.FETCH.sha256 = 589c9241d361667ef9a2f2ee68846795949331f13ed7acc86f5d3cc4b856b6a8
CPUINFO.build_dir = build
CPUINFO.CONFIGURE.exe = cmake
CPUINFO.CONFIGURE.args.prefix = -DCMAKE_INSTALL_PREFIX="$(CPUINFO.CONFIGURE.prefix)"
CPUINFO.CONFIGURE.deps =
CPUINFO.CONFIGURE.static =
CPUINFO.CONFIGURE.shared = -DCPUINFO_LIBRARY_TYPE=static -DCPUINFO_BUILD_TOOLS=OFF -DCPUINFO_BUILD_UNIT_TESTS=OFF \
-DCPUINFO_BUILD_MOCK_TESTS=OFF -DCPUINFO_BUILD_BENCHMARKS=OFF
CPUINFO.CONFIGURE.extra = -DCMAKE_INSTALL_LIBDIR=lib
ifneq (none,$(CPUINFO.GCC.g))
CPUINFO.CONFIGURE.extra += -DCMAKE_BUILD_TYPE=Debug
else
CPUINFO.CONFIGURE.extra += -DCMAKE_BUILD_TYPE=Release
endif
ifeq (darwin,$(HOST.system))
CPUINFO.CONFIGURE.extra += -DCMAKE_SYSTEM_PROCESSOR=$(HOST.machine)
CPUINFO.CONFIGURE.extra += -DCMAKE_OSX_ARCHITECTURES=$(HOST.machine)
endif
ifeq (1,$(HOST.cross))
ifeq (mingw,$(HOST.system))
CPUINFO.CONFIGURE.extra += -DWIN32=ON -DMINGW=ON
CPUINFO.CONFIGURE.extra += -DCMAKE_SYSTEM_NAME=Windows
CPUINFO.CONFIGURE.extra += -DCMAKE_SYSTEM_PROCESSOR=$(HOST.machine)
CPUINFO.CONFIGURE.extra += -DCMAKE_C_COMPILER=$(CPUINFO.GCC.gcc)
CPUINFO.CONFIGURE.extra += -DCMAKE_CXX_COMPILER=$(CPUINFO.GCC.gxx)
CPUINFO.CONFIGURE.extra += -DCMAKE_RC_COMPILER=$(HOST.cross.prefix)windres
CPUINFO.CONFIGURE.args.host = -DCMAKE_HOST_SYSTEM="$(CPUINFO.CONFIGURE.host)"
else ifeq ($(HOST.system),darwin)
CPUINFO.CONFIGURE.args.host = -DCMAKE_HOST_SYSTEM="$(CPUINFO.CONFIGURE.host)"
else
CPUINFO.CONFIGURE.args.host = -DCMAKE_SYSTEM_NAME="$(CPUINFO.CONFIGURE.host)"
endif
CPUINFO.CONFIGURE.args.build = -DCMAKE_HOST_SYSTEM="$(CPUINFO.CONFIGURE.build)"
else
CPUINFO.CONFIGURE.args.host = -DCMAKE_HOST_SYSTEM="$(CPUINFO.CONFIGURE.host)"
endif
## find CMakeLists.txt
CPUINFO.CONFIGURE.extra += "$(call fn.ABSOLUTE,$(CPUINFO.EXTRACT.dir/))"

View File

@ -0,0 +1,2 @@
$(eval $(call import.MODULE.rules,CPUINFO))
$(eval $(call import.CONTRIB.rules,CPUINFO))

View File

@ -1,4 +1,6 @@
$(eval $(call import.MODULE.defs,SVT-AV1,svt-av1))
__deps__ := CPUINFO
$(eval $(call import.MODULE.defs,SVT-AV1,svt-av1,$(__deps__)))
$(eval $(call import.CONTRIB.defs,SVT-AV1))
SVT-AV1.FETCH.url = https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/SVT-AV1-v3.0.0.tar.gz

View File

@ -40,6 +40,7 @@ ghb_deps = [
dependency('libavformat'),
dependency('libavutil'),
dependency('libbluray'),
dependency('libcpuinfo'),
dependency('libswresample'),
dependency('libswscale'),
dependency('libturbojpeg'),

View File

@ -1,4 +1,4 @@
__deps__ := BZIP2 LIBVPX SVT-AV1 FFMPEG FREETYPE LAME LIBASS \
__deps__ := BZIP2 CPUINFO LIBVPX SVT-AV1 FFMPEG FREETYPE LAME LIBASS \
LIBDVDREAD LIBDVDNAV LIBICONV LIBTHEORA LIBVORBIS LIBOGG \
X264 X265 ZLIB LIBBLURAY FDKAAC LIBVPL LIBGNURX JANSSON \
HARFBUZZ LIBOPUS LIBSPEEX LIBDAV1D LIBJPEGTURBO LIBDOVI
@ -116,7 +116,7 @@ LIBHB.dll = $(LIBHB.build/)hb.dll
LIBHB.lib = $(LIBHB.build/)hb.lib
LIBHB.dll.libs = $(foreach n, \
ass avformat avfilter avcodec avutil swresample dvdnav dvdread \
ass avformat avfilter avcodec avutil swresample cpuinfo dvdnav dvdread \
freetype mp3lame swscale vpx theora vorbis vorbisenc ogg x264 \
bluray jansson harfbuzz opus speex dav1d turbojpeg zimg SvtAv1Enc, \
$(CONTRIB.build/)lib/lib$(n).a )

View File

@ -204,6 +204,8 @@
A93341EF243E15BE003A82C2 /* HandBrakeXPCService3.xpc in Copy Files */ = {isa = PBXBuildFile; fileRef = A93341D5243E158B003A82C2 /* HandBrakeXPCService3.xpc */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
A93341F0243E15BE003A82C2 /* HandBrakeXPCService4.xpc in Copy Files */ = {isa = PBXBuildFile; fileRef = A93341E6243E158E003A82C2 /* HandBrakeXPCService4.xpc */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
A93341F1243E15CE003A82C2 /* HandBrakeXPCService.xpc in Copy Files */ = {isa = PBXBuildFile; fileRef = A964D39522FDE8EE00DFCAEA /* HandBrakeXPCService.xpc */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
A935B1662D68B68C00486A51 /* libcpuinfo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A935B1652D68B67F00486A51 /* libcpuinfo.a */; };
A935B1672D68B6D300486A51 /* libcpuinfo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A935B1652D68B67F00486A51 /* libcpuinfo.a */; };
A939DD8B1FC8826A00135F2A /* HBPresetsMenuBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A939DD8A1FC8826A00135F2A /* HBPresetsMenuBuilder.m */; };
A93CD3172C47CAFC00B11335 /* HBTitleSelectionRange.m in Sources */ = {isa = PBXBuildFile; fileRef = A93CD3162C47CAFC00B11335 /* HBTitleSelectionRange.m */; };
A93E0ED31972957000FD67FB /* HBVideoController.m in Sources */ = {isa = PBXBuildFile; fileRef = A93E0ED11972957000FD67FB /* HBVideoController.m */; };
@ -615,6 +617,7 @@
A93341C4243E1583003A82C2 /* HandBrakeXPCService2.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = HandBrakeXPCService2.xpc; sourceTree = BUILT_PRODUCTS_DIR; };
A93341D5243E158B003A82C2 /* HandBrakeXPCService3.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = HandBrakeXPCService3.xpc; sourceTree = BUILT_PRODUCTS_DIR; };
A93341E6243E158E003A82C2 /* HandBrakeXPCService4.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = HandBrakeXPCService4.xpc; sourceTree = BUILT_PRODUCTS_DIR; };
A935B1652D68B67F00486A51 /* libcpuinfo.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcpuinfo.a; path = external/contrib/lib/libcpuinfo.a; sourceTree = BUILT_PRODUCTS_DIR; };
A939DD891FC8826A00135F2A /* HBPresetsMenuBuilder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HBPresetsMenuBuilder.h; sourceTree = "<group>"; };
A939DD8A1FC8826A00135F2A /* HBPresetsMenuBuilder.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HBPresetsMenuBuilder.m; sourceTree = "<group>"; };
A93B0DF61C804CF50051A3FA /* NSDictionary+HBAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+HBAdditions.h"; sourceTree = "<group>"; };
@ -1274,6 +1277,7 @@
A9AB9AA821181CC700BB3C7E /* CoreVideo.framework in Frameworks */,
A9AB9AA621181CA900BB3C7E /* VideoToolbox.framework in Frameworks */,
A9ABD1A91E2A0F8200EC8B65 /* CoreGraphics.framework in Frameworks */,
A935B1672D68B6D300486A51 /* libcpuinfo.a in Frameworks */,
A9ABD1A71E2A0F7500EC8B65 /* CoreText.framework in Frameworks */,
273F203014ADB9790021BE6D /* AudioToolbox.framework in Frameworks */,
273F203314ADB9F00021BE6D /* CoreServices.framework in Frameworks */,
@ -1377,6 +1381,7 @@
A91CE2D01C7DABCE0068F46F /* libbz2.tbd in Frameworks */,
1CBC683520BE014800A26CC2 /* liblzma.a in Frameworks */,
1C53DE8D20BD598D006BBCA8 /* libspeex.a in Frameworks */,
A935B1662D68B68C00486A51 /* libcpuinfo.a in Frameworks */,
1C0695AF20BD193D001543DA /* libswresample.a in Frameworks */,
A900E6BD1D7B1B5A00CB6C0A /* libopus.a in Frameworks */,
A99E13392833B97A0006D720 /* libSvtAv1Enc.a in Frameworks */,
@ -1421,7 +1426,6 @@
271BA4C714B1236D00BC1D2C /* Static Libraries */ = {
isa = PBXGroup;
children = (
A9E34AD4297871FE00C5DD82 /* libdovi.a */,
1CDCF0C1241F28D400FB62C6 /* libturbojpeg.a */,
1C280BF320BD58DD00D5ECC2 /* libspeex.a */,
1CBC683320BE014800A26CC2 /* liblzma.a */,
@ -1450,6 +1454,7 @@
A9E165511C523016003EF30E /* libavfilter.a */,
1C15C82B1CD7722500368223 /* libharfbuzz.a */,
A9935867256C349B00A6875E /* libzimg.a */,
A935B1652D68B67F00486A51 /* libcpuinfo.a */,
A99E13372833B97A0006D720 /* libSvtAv1Enc.a */,
);
name = "Static Libraries";
@ -1600,6 +1605,7 @@
isa = PBXGroup;
children = (
277EFE9217ED799E001D4A6A /* libfdk-aac.a */,
A9E34AD4297871FE00C5DD82 /* libdovi.a */,
22CC9E74191EBEA500C69D81 /* libx265.a */,
);
name = "Static Libraries (optional)";

View File

@ -49,6 +49,7 @@ ifeq (1,$(FEATURE.x265))
endif
MODULES += contrib/libdav1d
MODULES += contrib/cpuinfo
MODULES += contrib/svt-av1
MODULES += contrib/zimg
MODULES += contrib/ffmpeg

View File

@ -16,7 +16,7 @@ TEST.GCC.L = $(CONTRIB.build/)lib
TEST.libs = $(LIBHB.a)
TEST.pkgconfig_libs = libass libavformat libavfilter libavcodec libavutil libswresample dvdnav \
TEST.pkgconfig_libs = libass libavformat libavfilter libavcodec libavutil libswresample libcpuinfo dvdnav \
dvdread libswscale theoraenc theoradec vorbis vorbisenc ogg x264 libbluray \
jansson libturbojpeg SvtAv1Enc