11b5d61b8Smrgadd_languages('objc')
21b5d61b8Smrg
3ed6184dfSmrgapple_applications_dir = get_option('apple-applications-dir')
4ed6184dfSmrgapple_application_name = get_option('apple-application-name')
5ed6184dfSmrgbundle_id_prefix = get_option('bundle-id-prefix')
6ed6184dfSmrgxquartz_sparkle_feed_url = get_option('sparkle-feed-url')
7dc61d50dSmrgxquartz_sparkle_public_edkey = get_option('sparkle-public-edkey')
8ed6184dfSmrg
9dc61d50dSmrgbundle_version_string = get_option('bundle-version-string') # CFBundleShortVersionString
10dc61d50dSmrgif bundle_version_string == 'auto'
11dc61d50dSmrg    bundle_version_string = meson.project_version()
12dc61d50dSmrgendif
13dc61d50dSmrg
14dc61d50dSmrgbundle_version = get_option('bundle-version') # CFBundleVersion
15dc61d50dSmrgif bundle_version == 'auto'
16dc61d50dSmrg    version_arr = bundle_version_string.split('.')
17dc61d50dSmrg    version_major = version_arr[0].to_int()
18dc61d50dSmrg    version_minor = version_arr[1].to_int()
19dc61d50dSmrg    version_tiny = version_arr[2].to_int()
20dc61d50dSmrg    bundle_version = '@0@.@1@.@2@'.format(version_major, version_minor, version_tiny)
21dc61d50dSmrgendif
22ed6184dfSmrg
23ed6184dfSmrgbundle_id_def = '-DBUNDLE_ID_PREFIX="@0@"'.format(bundle_id_prefix)
24ed6184dfSmrg
25ed6184dfSmrgbundle_root = join_paths(apple_applications_dir, apple_application_name + '.app')
26c82838c1Smrgxquartz_data_dir = join_paths(get_option('prefix'), get_option('datadir'),'X11', 'XQuartz')
27ed6184dfSmrg
28ed6184dfSmrg# using sparkle update framework?
29dc61d50dSmrgbuild_sparkle = xquartz_sparkle_feed_url != '' and xquartz_sparkle_public_edkey != ''
30ed6184dfSmrgif build_sparkle
31ed6184dfSmrg    sparkle = dependency('Sparkle', method: 'extraframework')
32dc61d50dSmrg
33dc61d50dSmrg    sparkle_defs = [
34dc61d50dSmrg        '-DXQUARTZ_SPARKLE',
35dc61d50dSmrg        '-DXQUARTZ_SPARKLE_FEED_URL=@0@'.format(xquartz_sparkle_feed_url),
36dc61d50dSmrg        '-DXQUARTZ_SPARKLE_PUBLIC_EDKEY=@0@'.format(xquartz_sparkle_public_edkey),
37dc61d50dSmrg    ]
38dc61d50dSmrgelse
39dc61d50dSmrg    sparkle_defs = []
40ed6184dfSmrgendif
41ed6184dfSmrg
42ed6184dfSmrg# libxquartz
43ed6184dfSmrgsrcs_libxquartz = [
44dc61d50dSmrg    'NSUserDefaults+XQuartzDefaults.m',
451b5d61b8Smrg    'X11Application.m',
461b5d61b8Smrg    'X11Controller.m',
471b5d61b8Smrg    'applewm.c',
481b5d61b8Smrg    'darwin.c',
491b5d61b8Smrg    'darwinEvents.c',
501b5d61b8Smrg    'darwinXinput.c',
511b5d61b8Smrg    'keysym2ucs.c',
521b5d61b8Smrg    'quartz.c',
531b5d61b8Smrg    'quartzKeyboard.c',
541b5d61b8Smrg    'quartzStartup.c',
551b5d61b8Smrg    'quartzRandR.c',
561b5d61b8Smrg    '../../mi/miinitext.c',
57ed6184dfSmrg    '../../mi/miinitext.h',
581b5d61b8Smrg]
591b5d61b8Smrg
60ed6184dfSmrglibxquartz_defs = [
61ed6184dfSmrg    '-DUSE_NEW_CLUT',
62ed6184dfSmrg    '-DXFree86Server',
63ed6184dfSmrg    '-DXQUARTZ',
64c82838c1Smrg    '-DXQUARTZ_DATA_DIR="@0@"'.format(xquartz_data_dir),
65ed6184dfSmrg    '-DXSERVER_VERSION="@0@"'.format(meson.project_version()),
66ed6184dfSmrg    bundle_id_def,
67dc61d50dSmrg    sparkle_defs,
68ed6184dfSmrg]
69ed6184dfSmrg
70ed6184dfSmrgif cc.has_function('dispatch_async')
71ed6184dfSmrg    libxquartz_defs += '-DHAVE_LIBDISPATCH'
72ed6184dfSmrgendif
73ed6184dfSmrg
74ed6184dfSmrglibXquartz = static_library('Xquartz',
75ed6184dfSmrg    srcs_libxquartz,
76ed6184dfSmrg    c_args: libxquartz_defs,
77ed6184dfSmrg    objc_args: libxquartz_defs,
78ed6184dfSmrg    include_directories: [inc, '../../pseudoramiX', '../../miext/rootless', top_dir_inc],
79ed6184dfSmrg    dependencies: [xproto_dep, pixman_dep],
80ed6184dfSmrg    link_with: [libxserver_pseudoramix, libxserver_miext_rootless],
81ed6184dfSmrg)
82ed6184dfSmrg
83ed6184dfSmrgsubdir('bundle')
84ed6184dfSmrgif build_glx
85ed6184dfSmrg    subdir('GL')
86ed6184dfSmrgendif
87ed6184dfSmrgsubdir('pbproxy')
88ed6184dfSmrgsubdir('xpr')
89ed6184dfSmrgsubdir('mach-startup')
90ed6184dfSmrg
91ed6184dfSmrg# manpage
92ed6184dfSmrgxquartz_man = configure_file(
93ed6184dfSmrg    input: 'man/Xquartz.man',
94ed6184dfSmrg    output: 'Xquartz.1',
95ed6184dfSmrg    configuration: manpage_config,
961b5d61b8Smrg)
97ed6184dfSmrginstall_man(xquartz_man)
98c82838c1Smrg
99c82838c1Smrginstall_data('defaults.plist',
100c82838c1Smrg    install_dir: xquartz_data_dir,
101c82838c1Smrg    install_mode: 'rw-r--r--')
102