mirror of
https://github.com/mpv-player/mpv
synced 2025-02-06 23:21:54 +00:00
add new app_bridge objc file for bridging between mpv core and app functionality. replace old EventsResponder singleton with AppHub. another step to clean up all App functionality and have one central place for it.
64 lines
2.2 KiB
Meson
64 lines
2.2 KiB
Meson
# custom swift targets
|
|
bridge = join_paths(source_root, 'osdep/mac/swift_bridge.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_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')]
|
|
|
|
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'])
|