mirror of
https://github.com/mpv-player/mpv
synced 2025-02-16 12:17:12 +00:00
As the first step towards handling scenarios where the are multiple hwdecs for a given image format but backed by different AVHWDeviceTypes, let us annotate the hwdecs with their corresponding device types. From this, we can also see how all the existing hwdecs which match the same image format also match the same device type.
77 lines
2.6 KiB
Meson
77 lines
2.6 KiB
Meson
# custom swift targets
|
|
bridge = join_paths(source_root, 'osdep/mac/app_bridge_objc.h')
|
|
header = join_paths(build_root, 'osdep/mac/swift.h')
|
|
module = join_paths(build_root, 'osdep/mac/swift.swiftmodule')
|
|
target = join_paths(build_root, 'osdep/mac/swift.o')
|
|
|
|
swift_flags = ['-frontend', '-c', '-sdk', macos_sdk_path,
|
|
'-enable-objc-interop', '-emit-objc-header', '-parse-as-library']
|
|
|
|
if swift_ver.version_compare('>=6.0')
|
|
swift_flags += ['-swift-version', '5']
|
|
endif
|
|
|
|
if get_option('debug')
|
|
swift_flags += '-g'
|
|
endif
|
|
|
|
if get_option('optimization') != '0'
|
|
swift_flags += '-O'
|
|
endif
|
|
|
|
if macos_10_15_4_features.allowed()
|
|
swift_flags += ['-D', 'HAVE_MACOS_10_15_4_FEATURES']
|
|
endif
|
|
|
|
if macos_11_features.allowed()
|
|
swift_flags += ['-D', 'HAVE_MACOS_11_FEATURES']
|
|
endif
|
|
|
|
if macos_12_features.allowed()
|
|
swift_flags += ['-D', 'HAVE_MACOS_12_FEATURES']
|
|
endif
|
|
|
|
if macos_cocoa_cb.allowed()
|
|
swift_flags += ['-D', 'HAVE_MACOS_COCOA_CB']
|
|
endif
|
|
|
|
if macos_touchbar.allowed()
|
|
swift_flags += ['-D', 'HAVE_MACOS_TOUCHBAR']
|
|
endif
|
|
|
|
if macos_media_player.allowed()
|
|
swift_flags += ['-D', 'HAVE_MACOS_MEDIA_PLAYER']
|
|
endif
|
|
|
|
extra_flags = get_option('swift-flags').split()
|
|
swift_flags += extra_flags
|
|
|
|
swift_compile = [swift_prog, swift_flags, '-module-name', 'swift',
|
|
'-emit-module-path', '@OUTPUT0@', '-import-objc-header', bridge,
|
|
'-emit-objc-header-path', '@OUTPUT1@', '-o', '@OUTPUT2@',
|
|
'@INPUT@', '-I.', '-I' + source_root,
|
|
'-I' + libplacebo.get_variable('includedir',
|
|
default_value: source_root / 'subprojects' / 'libplacebo' / 'src' / 'include'),
|
|
'-I' + libavutil.get_variable('includedir')]
|
|
|
|
swift_targets = custom_target('swift_targets',
|
|
input: swift_sources,
|
|
output: ['swift.swiftmodule', 'swift.h', 'swift.o'],
|
|
command: swift_compile,
|
|
)
|
|
sources += swift_targets
|
|
|
|
swift_lib_dir_py = find_program(join_paths(tools_directory, 'macos-swift-lib-directory.py'))
|
|
swift_lib_dir = run_command(swift_lib_dir_py, swift_prog.full_path(), check: true).stdout()
|
|
message('Detected Swift library directory: ' + swift_lib_dir)
|
|
|
|
# linker flags
|
|
swift_link_flags = ['-L' + swift_lib_dir, '-Xlinker', '-rpath',
|
|
'-Xlinker', swift_lib_dir, '-rdynamic', '-Xlinker',
|
|
'-add_ast_path', '-Xlinker', module]
|
|
if swift_ver.version_compare('>=5.0')
|
|
swift_link_flags += ['-Xlinker', '-rpath', '-Xlinker',
|
|
'/usr/lib/swift', '-L/usr/lib/swift']
|
|
endif
|
|
add_project_link_arguments(swift_link_flags, language: ['c', 'objc'])
|