1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
add_languages('objc')
apple_applications_dir = get_option('apple-applications-dir')
apple_application_name = get_option('apple-application-name')
bundle_id_prefix = get_option('bundle-id-prefix')
xquartz_sparkle_feed_url = get_option('sparkle-feed-url')
xquartz_sparkle_public_edkey = get_option('sparkle-public-edkey')
bundle_version_string = get_option('bundle-version-string') # CFBundleShortVersionString
if bundle_version_string == 'auto'
bundle_version_string = meson.project_version()
endif
bundle_version = get_option('bundle-version') # CFBundleVersion
if bundle_version == 'auto'
version_arr = bundle_version_string.split('.')
version_major = version_arr[0].to_int()
version_minor = version_arr[1].to_int()
version_tiny = version_arr[2].to_int()
bundle_version = '@0@.@1@.@2@'.format(version_major, version_minor, version_tiny)
endif
bundle_id_def = '-DBUNDLE_ID_PREFIX="@0@"'.format(bundle_id_prefix)
bundle_root = join_paths(apple_applications_dir, apple_application_name + '.app')
# using sparkle update framework?
build_sparkle = xquartz_sparkle_feed_url != '' and xquartz_sparkle_public_edkey != ''
if build_sparkle
sparkle = dependency('Sparkle', method: 'extraframework')
sparkle_defs = [
'-DXQUARTZ_SPARKLE',
'-DXQUARTZ_SPARKLE_FEED_URL=@0@'.format(xquartz_sparkle_feed_url),
'-DXQUARTZ_SPARKLE_PUBLIC_EDKEY=@0@'.format(xquartz_sparkle_public_edkey),
]
else
sparkle_defs = []
endif
# libxquartz
srcs_libxquartz = [
'NSUserDefaults+XQuartzDefaults.m',
'X11Application.m',
'X11Controller.m',
'applewm.c',
'darwin.c',
'darwinEvents.c',
'darwinXinput.c',
'keysym2ucs.c',
'quartz.c',
'quartzKeyboard.c',
'quartzStartup.c',
'quartzRandR.c',
'../../mi/miinitext.c',
'../../mi/miinitext.h',
]
libxquartz_defs = [
'-DUSE_NEW_CLUT',
'-DX11LIBDIR="@0@"'.format(join_paths(get_option('prefix'),
get_option('libdir'))),
'-DXFree86Server',
'-DXQUARTZ',
'-DXSERVER_VERSION="@0@"'.format(meson.project_version()),
bundle_id_def,
sparkle_defs,
]
if cc.has_function('dispatch_async')
libxquartz_defs += '-DHAVE_LIBDISPATCH'
endif
libXquartz = static_library('Xquartz',
srcs_libxquartz,
c_args: libxquartz_defs,
objc_args: libxquartz_defs,
include_directories: [inc, '../../pseudoramiX', '../../miext/rootless', top_dir_inc],
dependencies: [xproto_dep, pixman_dep],
link_with: [libxserver_pseudoramix, libxserver_miext_rootless],
)
subdir('bundle')
if build_glx
subdir('GL')
endif
subdir('pbproxy')
subdir('xpr')
subdir('mach-startup')
# manpage
xquartz_man = configure_file(
input: 'man/Xquartz.man',
output: 'Xquartz.1',
configuration: manpage_config,
)
install_man(xquartz_man)
|