102 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Meson
		
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Meson
		
	
	
	
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')
 | 
						|
xquartz_data_dir = join_paths(get_option('prefix'), get_option('datadir'),'X11', 'XQuartz')
 | 
						|
 | 
						|
# 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',
 | 
						|
    '-DXFree86Server',
 | 
						|
    '-DXQUARTZ',
 | 
						|
    '-DXQUARTZ_DATA_DIR="@0@"'.format(xquartz_data_dir),
 | 
						|
    '-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, xdmcp_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)
 | 
						|
 | 
						|
install_data('defaults.plist',
 | 
						|
    install_dir: xquartz_data_dir,
 | 
						|
    install_mode: 'rw-r--r--')
 |