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