1# mach interface 2mig = find_program('mig') 3mach_startup = custom_target('mach_startup', 4 command: [mig, 5 '-sheader', '@OUTPUT0@', '-header', '@OUTPUT2@', 6 '-server', '@OUTPUT1@', '-user', '@OUTPUT3@', 7 '@INPUT@'], 8 input: 'mach_startup.defs', 9 output: ['mach_startupServer.h', 10 'mach_startupServer.c', 11 'mach_startup.h', 12 'mach_startupUser.c'], 13) 14 15mach_startup_dep = declare_dependency( 16 sources: mach_startup[2] # mach_startup.h 17) 18 19# common defines 20xquartz_defs = [ 21 bundle_id_def, 22 '-DXSERVER_VERSION="@0@"'.format(meson.project_version()), 23 '-DX11BINDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('bindir'))), 24] 25 26# X11.bin 27x11appdir = join_paths(bundle_root, 'Contents/MacOS') 28 29x11_bin_deps = [ 30 meson.get_compiler('c').find_library('Xplugin'), 31 dependency('Carbon', method: 'extraframework'), 32 cocoa, 33 dependency('CoreAudio', method: 'extraframework'), 34 dependency('IOKit', method: 'extraframework') 35] 36 37if build_glx 38 x11_bin_deps += [dependency('OpenGL', method: 'extraframework')] 39endif 40 41if build_sparkle 42 x11_bin_deps += sparkle 43endif 44 45x11_bin_libs = [ 46 libXquartz, 47 libXquartzXpr, 48 libxpbproxy, 49 libxserver_fb, 50 libxserver, 51 libxserver_xkb_stubs, 52] 53 54if build_glx 55 x11_bin_libs += [libcglcore, libxserver_glx, libglxvnd] 56endif 57 58x11_bin = executable('X11.bin', 59 [ 60 'bundle-main.c', 61 mach_startup[1], # mach_startupServer.c 62 mach_startup[3], # mach_startupUser.c 63 ], 64 link_with: x11_bin_libs, 65 dependencies: [xproto_dep, x11_bin_deps, mach_startup_dep], 66 include_directories: [inc, '..', top_dir_inc], 67 c_args: xquartz_defs, 68 link_args: ['-Objc'], 69 install: true, 70 install_dir: x11appdir, 71) 72 73# X11 (Bundle trampoline) 74x11 = executable('X11', 75 [ 76 'bundle_trampoline.c', 77 ], 78 c_args: xquartz_defs, 79 link_args: ['-Objc'], 80 install: true, 81 install_dir: x11appdir, 82) 83 84# Xquartz 85xquartz_deps = [ 86 dependency('CoreServices', method: 'extraframework'), 87] 88 89xquartz = executable('Xquartz', 90 [ 91 'stub.c', 92 'launchd_fd.c', 93 mach_startup[3], # mach_startupUser.c 94 ], 95 include_directories: inc, 96 c_args: xquartz_defs, 97 dependencies: [xquartz_deps, mach_startup_dep], 98 install: true, 99) 100