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