100 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Meson
		
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Meson
		
	
	
	
# mach interface
 | 
						|
mig = find_program('mig')
 | 
						|
mach_startup = custom_target('mach_startup',
 | 
						|
    command: [mig,
 | 
						|
              '-sheader', '@OUTPUT0@', '-header', '@OUTPUT2@',
 | 
						|
              '-server', '@OUTPUT1@', '-user', '@OUTPUT3@',
 | 
						|
              '@INPUT@'],
 | 
						|
    input: 'mach_startup.defs',
 | 
						|
    output: ['mach_startupServer.h',
 | 
						|
             'mach_startupServer.c',
 | 
						|
             'mach_startup.h',
 | 
						|
             'mach_startupUser.c'],
 | 
						|
)
 | 
						|
 | 
						|
mach_startup_dep = declare_dependency(
 | 
						|
    sources: mach_startup[2] # mach_startup.h
 | 
						|
)
 | 
						|
 | 
						|
# common defines
 | 
						|
xquartz_defs = [
 | 
						|
    bundle_id_def,
 | 
						|
    '-DXSERVER_VERSION="@0@"'.format(meson.project_version()),
 | 
						|
    '-DX11BINDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('bindir'))),
 | 
						|
]
 | 
						|
 | 
						|
# X11.bin
 | 
						|
x11appdir = join_paths(bundle_root, 'Contents/MacOS')
 | 
						|
 | 
						|
x11_bin_deps = [
 | 
						|
     meson.get_compiler('c').find_library('Xplugin'),
 | 
						|
     dependency('Carbon', method: 'extraframework'),
 | 
						|
     cocoa,
 | 
						|
     dependency('CoreAudio', method: 'extraframework'),
 | 
						|
     dependency('IOKit', method: 'extraframework')
 | 
						|
]
 | 
						|
 | 
						|
if build_glx
 | 
						|
    x11_bin_deps += [dependency('OpenGL', method: 'extraframework')]
 | 
						|
endif
 | 
						|
 | 
						|
if build_sparkle
 | 
						|
    x11_bin_deps += sparkle
 | 
						|
endif
 | 
						|
 | 
						|
x11_bin_libs = [
 | 
						|
    libXquartz,
 | 
						|
    libXquartzXpr,
 | 
						|
    libxpbproxy,
 | 
						|
    libxserver_fb,
 | 
						|
    libxserver,
 | 
						|
    libxserver_xkb_stubs,
 | 
						|
]
 | 
						|
 | 
						|
if build_glx
 | 
						|
   x11_bin_libs += [libcglcore, libxserver_glx, libglxvnd]
 | 
						|
endif
 | 
						|
 | 
						|
x11_bin = executable('X11.bin',
 | 
						|
     [
 | 
						|
      'bundle-main.c',
 | 
						|
      mach_startup[1], # mach_startupServer.c
 | 
						|
      mach_startup[3], # mach_startupUser.c
 | 
						|
     ],
 | 
						|
     link_with: x11_bin_libs,
 | 
						|
     dependencies: [xproto_dep, x11_bin_deps, mach_startup_dep],
 | 
						|
     include_directories: [inc, '..', top_dir_inc],
 | 
						|
     c_args: xquartz_defs,
 | 
						|
     link_args: ['-Objc'],
 | 
						|
     install: true,
 | 
						|
     install_dir: x11appdir,
 | 
						|
)
 | 
						|
 | 
						|
# X11 (Bundle trampoline)
 | 
						|
x11 = executable('X11',
 | 
						|
     [
 | 
						|
      'bundle_trampoline.c',
 | 
						|
     ],
 | 
						|
     c_args: xquartz_defs,
 | 
						|
     link_args: ['-Objc'],
 | 
						|
     install: true,
 | 
						|
     install_dir: x11appdir,
 | 
						|
)
 | 
						|
 | 
						|
# Xquartz
 | 
						|
xquartz_deps = [
 | 
						|
    dependency('CoreServices', method: 'extraframework'),
 | 
						|
]
 | 
						|
 | 
						|
xquartz = executable('Xquartz',
 | 
						|
    [
 | 
						|
     'stub.c',
 | 
						|
     'launchd_fd.c',
 | 
						|
     mach_startup[3], # mach_startupUser.c
 | 
						|
    ],
 | 
						|
    include_directories: inc,
 | 
						|
    c_args: xquartz_defs,
 | 
						|
    dependencies: [xquartz_deps, mach_startup_dep],
 | 
						|
    install: true,
 | 
						|
)
 |