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,
 | |
| )
 |