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