Added meson build files and manifests for dlls. #167
					 12 changed files with 318 additions and 1 deletions
				
			
		
							
								
								
									
										33
									
								
								assets/mkxp.manifest.in
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								assets/mkxp.manifest.in
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
 | 
			
		||||
  <assemblyIdentity type="win32"
 | 
			
		||||
                    name="MKXP.Application"
 | 
			
		||||
                    version="2.0.0.0"
 | 
			
		||||
                    processorArchitecture="@ARCH@" />
 | 
			
		||||
  <description>MKXP.Application</description>
 | 
			
		||||
  <dependency>
 | 
			
		||||
    <dependentAssembly>
 | 
			
		||||
      <assemblyIdentity type="win32"
 | 
			
		||||
                        name="Microsoft.Windows.Common-Controls"
 | 
			
		||||
                        version="6.0.0.0"
 | 
			
		||||
                        language="*"
 | 
			
		||||
                        processorArchitecture="*"
 | 
			
		||||
                        publicKeyToken="6595b64144ccf1df" />
 | 
			
		||||
    </dependentAssembly>
 | 
			
		||||
  </dependency>
 | 
			
		||||
  <dependency>
 | 
			
		||||
    <dependentAssembly>
 | 
			
		||||
      <assemblyIdentity type="win32"
 | 
			
		||||
                        name="runtime"
 | 
			
		||||
                        version="1.0.0.0"
 | 
			
		||||
                        language="*"
 | 
			
		||||
                        processorArchitecture="@ARCH@" />
 | 
			
		||||
    </dependentAssembly>
 | 
			
		||||
  </dependency>
 | 
			
		||||
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
 | 
			
		||||
    <security>
 | 
			
		||||
      <requestedPrivileges>
 | 
			
		||||
        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
 | 
			
		||||
      </requestedPrivileges>
 | 
			
		||||
    </security>
 | 
			
		||||
  </trustInfo>
 | 
			
		||||
</assembly>
 | 
			
		||||
							
								
								
									
										30
									
								
								assets/runtime.manifest.in
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								assets/runtime.manifest.in
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,30 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 | 
			
		||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
 | 
			
		||||
	<noInheritable></noInheritable>
 | 
			
		||||
	<assemblyIdentity type="win32" name="runtime" version="1.0.0.0" processorArchitecture="@ARCH@" ></assemblyIdentity>
 | 
			
		||||
	<!-- <file name="libstdc++-6.dll"></file> -->
 | 
			
		||||
	<!-- <file name="libgcc_s_sjlj-1.dll"></file> -->
 | 
			
		||||
	<file name="libboost_program_options.dll"></file>
 | 
			
		||||
	<file name="libFLAC-8.dll"></file>
 | 
			
		||||
	<file name="libfreetype-6.dll"></file>
 | 
			
		||||
	<file name="libgcc_s_seh-1.dll"></file>
 | 
			
		||||
	<file name="libjpeg-62.dll"></file>
 | 
			
		||||
	<file name="libmodplug-1.dll"></file>
 | 
			
		||||
	<file name="libogg-0.dll"></file>
 | 
			
		||||
	<file name="libphysfs.dll"></file>
 | 
			
		||||
	<file name="libpixman-1-0.dll"></file>
 | 
			
		||||
	<file name="libpng16-16.dll"></file>
 | 
			
		||||
	<file name="libSDL2-2-0-0.dll"></file>
 | 
			
		||||
	<file name="libSDL_sound-1-0-1.dll"></file>
 | 
			
		||||
	<file name="libsigc-2.0-0.dll"></file>
 | 
			
		||||
	<file name="libspeex-1.dll"></file>
 | 
			
		||||
	<file name="libstdc++-6.dll"></file>
 | 
			
		||||
	<file name="libvorbis-0.dll"></file>
 | 
			
		||||
	<file name="libvorbisfile-3.dll"></file>
 | 
			
		||||
	<file name="libwebp-6.dll"></file>
 | 
			
		||||
	<file name="OpenAL32.dll"></file>
 | 
			
		||||
	<file name="ruby24.dll"></file>
 | 
			
		||||
	<file name="SDL2_image.dll"></file>
 | 
			
		||||
	<file name="SDL2_ttf.dll"></file>
 | 
			
		||||
	<file name="zlib1.dll"></file>
 | 
			
		||||
</assembly>
 | 
			
		||||
							
								
								
									
										27
									
								
								binding-mri/meson.build
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								binding-mri/meson.build
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
binding_src = [
 | 
			
		||||
	'audio-binding.cpp',
 | 
			
		||||
	'binding-mri.cpp',
 | 
			
		||||
	'binding-util.cpp',
 | 
			
		||||
	'bitmap-binding.cpp',
 | 
			
		||||
	'etc-binding.cpp',
 | 
			
		||||
	'filesystem-binding.cpp',
 | 
			
		||||
	'font-binding.cpp',
 | 
			
		||||
	'graphics-binding.cpp',
 | 
			
		||||
	'input-binding.cpp',
 | 
			
		||||
	'module_rpg.cpp',
 | 
			
		||||
	'plane-binding.cpp',
 | 
			
		||||
	'sprite-binding.cpp',
 | 
			
		||||
	'table-binding.cpp',
 | 
			
		||||
	'tilemap-binding.cpp',
 | 
			
		||||
	'tilemapvx-binding.cpp',
 | 
			
		||||
	'viewport-binding.cpp',
 | 
			
		||||
	'window-binding.cpp',
 | 
			
		||||
	'windowvx-binding.cpp'
 | 
			
		||||
]
 | 
			
		||||
ruby = dependency('-'.join(['ruby', get_option('MRIVERSION')]))
 | 
			
		||||
binding = build_target('binding',
 | 
			
		||||
	binding_src,
 | 
			
		||||
	dependencies : [ ruby, sdl2, sigcxx ],
 | 
			
		||||
	include_directories : incdirs,
 | 
			
		||||
	target_type : 'static_library')
 | 
			
		||||
 | 
			
		||||
| 
					
	
 its 'a' convention. not necessarily mine but its been the best way I've found to go about it for now. its 'a' convention. not necessarily mine but its been the best way I've found to go about it for now. 
			
			
		 | 
			||||
							
								
								
									
										28
									
								
								binding-mruby/meson.build
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								binding-mruby/meson.build
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
binding_src = [
 | 
			
		||||
	'audio-binding.cpp',
 | 
			
		||||
	'binding-mruby.cpp',
 | 
			
		||||
	'binding-util.cpp',
 | 
			
		||||
	'bitmap-binding.cpp',
 | 
			
		||||
	'etc-binding.cpp',
 | 
			
		||||
	'font-binding.cpp',
 | 
			
		||||
	'graphics-binding.cpp',
 | 
			
		||||
	'input-binding.cpp',
 | 
			
		||||
	'module_rpg.c',
 | 
			
		||||
	'mrb-ext/file.cpp',
 | 
			
		||||
	'mrb-ext/kernel.cpp',
 | 
			
		||||
	'mrb-ext/marshal.cpp',
 | 
			
		||||
	'mrb-ext/rwmem.cpp',
 | 
			
		||||
	'mrb-ext/time.cpp',
 | 
			
		||||
	'plane-binding.cpp',
 | 
			
		||||
	'sprite-binding.cpp',
 | 
			
		||||
	'table-binding.cpp',
 | 
			
		||||
	'tilemap-binding.cpp',
 | 
			
		||||
	'viewport-binding.cpp',
 | 
			
		||||
	'window-binding.cpp',
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
binding = static_library('binding',
 | 
			
		||||
	binding_src,
 | 
			
		||||
	include_directories : incdirs)
 | 
			
		||||
 | 
			
		||||
error('mruby support is not yet implemented in meson')
 | 
			
		||||
							
								
								
									
										5
									
								
								binding-null/meson.build
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								binding-null/meson.build
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
binding = static_library('binding',
 | 
			
		||||
	'binding-null.cpp',
 | 
			
		||||
	dependencies : [ sdl2, sigcxx ],
 | 
			
		||||
	include_directories : incdirs)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								cross/gentoo-i686-w64-mingw32.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								cross/gentoo-i686-w64-mingw32.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
[binaries]
 | 
			
		||||
c = '/usr/bin/i686-w64-mingw32-gcc'
 | 
			
		||||
cpp = '/usr/bin/i686-w64-mingw32-g++'
 | 
			
		||||
ar = '/usr/bin/i686-w64-mingw32-ar'
 | 
			
		||||
strip = '/usr/bin/i686-w64-mingw32-strip'
 | 
			
		||||
pkgconfig = '/usr/bin/i686-w64-mingw32-pkg-config'
 | 
			
		||||
windres = '/usr/bin/i686-w64-mingw32-windres'
 | 
			
		||||
 | 
			
		||||
[host_machine]
 | 
			
		||||
system = 'windows'
 | 
			
		||||
cpu_family = 'i686'
 | 
			
		||||
cpu = 'x86'
 | 
			
		||||
endian = 'little'
 | 
			
		||||
 | 
			
		||||
[properties]
 | 
			
		||||
root = '/usr/i686-w64-mingw32'
 | 
			
		||||
							
								
								
									
										16
									
								
								cross/gentoo-x86_64-w64-mingw32.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								cross/gentoo-x86_64-w64-mingw32.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
[binaries]
 | 
			
		||||
c = '/usr/bin/x86_64-w64-mingw32-gcc'
 | 
			
		||||
cpp = '/usr/bin/x86_64-w64-mingw32-g++'
 | 
			
		||||
ar = '/usr/bin/x86_64-w64-mingw32-ar'
 | 
			
		||||
strip = '/usr/bin/x86_64-w64-mingw32-strip'
 | 
			
		||||
pkgconfig = '/usr/bin/x86_64-w64-mingw32-pkg-config'
 | 
			
		||||
windres = '/usr/bin/x86_64-w64-mingw32-windres'
 | 
			
		||||
 | 
			
		||||
[host_machine]
 | 
			
		||||
system = 'windows'
 | 
			
		||||
cpu_family = 'x86_64'
 | 
			
		||||
cpu = 'amd64'
 | 
			
		||||
endian = 'little'
 | 
			
		||||
 | 
			
		||||
[properties]
 | 
			
		||||
root = '/usr/x86_64-w64-mingw32'
 | 
			
		||||
							
								
								
									
										102
									
								
								meson.build
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								meson.build
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,102 @@
 | 
			
		|||
project('mkxp',
 | 
			
		||||
	'c', 'cpp',
 | 
			
		||||
	default_options : [ 'c_std=c11', 'cpp_std=c++14'])
 | 
			
		||||
incdirs = include_directories(['assets', 'src'])
 | 
			
		||||
 | 
			
		||||
# xxd embedding 
 | 
			
		||||
xxd_sh = find_program('tools/xxd.sh')
 | 
			
		||||
xxd_exe = find_program('xxd')
 | 
			
		||||
sed_exe = find_program('sed')
 | 
			
		||||
 | 
			
		||||
#bin2h_exe = executable('bin2h', 'tools/bin2h.c', native : true)
 | 
			
		||||
xxd_gen = generator(xxd_sh,
 | 
			
		||||
	output : '@PLAINNAME@.xxd',
 | 
			
		||||
	arguments : [ xxd_exe.path(), sed_exe.path(), '@INPUT@', '@OUTPUT@']
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
embedded = xxd_gen.process(
 | 
			
		||||
	[
 | 
			
		||||
		'assets/icon.png',
 | 
			
		||||
		'assets/liberation.ttf',
 | 
			
		||||
		'shader/bitmapBlit.frag',
 | 
			
		||||
		'shader/blur.frag',
 | 
			
		||||
		'shader/blurH.vert',
 | 
			
		||||
		'shader/blurV.vert',
 | 
			
		||||
		'shader/common.h',
 | 
			
		||||
		'shader/flashMap.frag',
 | 
			
		||||
		'shader/flatColor.frag',
 | 
			
		||||
		'shader/gray.frag',
 | 
			
		||||
		'shader/hue.frag',
 | 
			
		||||
		'shader/minimal.vert',
 | 
			
		||||
		'shader/plane.frag',
 | 
			
		||||
		'shader/simple.frag',
 | 
			
		||||
		'shader/simple.vert',
 | 
			
		||||
		'shader/simpleAlpha.frag',
 | 
			
		||||
		'shader/simpleAlphaUni.frag',
 | 
			
		||||
		'shader/simpleColor.frag',
 | 
			
		||||
		'shader/simpleColor.vert',
 | 
			
		||||
		'shader/simpleMatrix.vert',
 | 
			
		||||
		'shader/sprite.frag',
 | 
			
		||||
		'shader/sprite.vert',
 | 
			
		||||
		'shader/tilemap.vert',
 | 
			
		||||
		'shader/tilemapvx.vert',
 | 
			
		||||
		'shader/trans.frag',
 | 
			
		||||
		'shader/transSimple.frag'
 | 
			
		||||
	]
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
boost = dependency('boost', modules : ['program_options'])
 | 
			
		||||
openal = dependency('openal')
 | 
			
		||||
physfs = dependency('physfs', version : '>=2.1')
 | 
			
		||||
pixman = dependency('pixman-1')
 | 
			
		||||
sdl2 = dependency('sdl2')
 | 
			
		||||
sdl2_image = dependency('SDL2_image')
 | 
			
		||||
sdl2_ttf = dependency('SDL2_ttf')
 | 
			
		||||
sdl_sound = dependency('SDL_sound')
 | 
			
		||||
sigcxx = dependency('sigc++-2.0')
 | 
			
		||||
vorbisfile = dependency('vorbisfile')
 | 
			
		||||
zlib = dependency('zlib')
 | 
			
		||||
 | 
			
		||||
fluidsynth = []
 | 
			
		||||
if get_option('SHARED_FLUID')
 | 
			
		||||
	fluidsynth = dependency('fluidsynth')
 | 
			
		||||
	add_global_arguments('-DSHARED_FLUID', language : 'cpp')
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
if get_option('RGSS2')
 | 
			
		||||
	add_global_arguments('-DRGSS2', language : 'cpp')
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
res = []
 | 
			
		||||
manifest = []
 | 
			
		||||
platdeps = []
 | 
			
		||||
if host_machine.system() == 'windows'
 | 
			
		||||
conf_data = configuration_data()
 | 
			
		||||
conf_data.set('ARCH', host_machine.cpu())
 | 
			
		||||
manifest = configure_file(
 | 
			
		||||
	input : 'assets/mkxp.manifest.in',
 | 
			
		||||
	output : 'mkxp.manifest',
 | 
			
		||||
	configuration : conf_data
 | 
			
		||||
)
 | 
			
		||||
configure_file(
 | 
			
		||||
	input : 'assets/runtime.manifest.in',
 | 
			
		||||
	output : 'runtime.manifest',
 | 
			
		||||
	configuration : conf_data
 | 
			
		||||
)
 | 
			
		||||
win = import('windows')
 | 
			
		||||
res = win.compile_resources([ 'assets/resource.rc' ],
 | 
			
		||||
	include_directories : incdirs)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
subdir('-'.join(['binding', get_option('BINDING').to_lower()]))
 | 
			
		||||
 | 
			
		||||
subdir('src')
 | 
			
		||||
 | 
			
		||||
executable(
 | 
			
		||||
	'mkxp',
 | 
			
		||||
	sources : [ embedded, main_src, res ],
 | 
			
		||||
	link_with : binding,
 | 
			
		||||
	dependencies : [boost, fluidsynth, openal, physfs, pixman, sdl2,
 | 
			
		||||
			sdl2_image, sdl2_ttf, sdl_sound, sigcxx, vorbisfile, zlib ],
 | 
			
		||||
	include_directories : [ incdirs ]
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										5
									
								
								meson_options.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								meson_options.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
option('SHARED_FLUID', type : 'boolean', value : false, description : 'Dynamically link with fluidsynth at build time')
 | 
			
		||||
option('WORKDIR_CURRENT', type : 'boolean', value : false, description : 'Keep current directory on startup')
 | 
			
		||||
option('BINDING', type : 'combo', choices : ['MRI', 'MRUBY', 'NULL'], value : 'MRI', description : 'The Binding Type (MRI, MRUBY, NULL)')
 | 
			
		||||
option('MRIVERSION', type : 'string', value : '2.1', description : 'Version of MRI to link with')
 | 
			
		||||
option('RGSS2', type : 'boolean', value : false)
 | 
			
		||||
							
								
								
									
										45
									
								
								src/meson.build
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								src/meson.build
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,45 @@
 | 
			
		|||
main_src = files(
 | 
			
		||||
	'alstream.cpp',
 | 
			
		||||
	'audio.cpp',
 | 
			
		||||
	'audiostream.cpp',
 | 
			
		||||
	'autotiles.cpp',
 | 
			
		||||
	'autotilesvx.cpp',
 | 
			
		||||
	'bitmap.cpp',
 | 
			
		||||
	'bundledfont.cpp',
 | 
			
		||||
	'config.cpp',
 | 
			
		||||
	'etc.cpp',
 | 
			
		||||
	'eventthread.cpp',
 | 
			
		||||
	'filesystem.cpp',
 | 
			
		||||
	'fluid-fun.cpp',
 | 
			
		||||
	'font.cpp',
 | 
			
		||||
	'gl-debug.cpp',
 | 
			
		||||
	'gl-fun.cpp',
 | 
			
		||||
	'gl-meta.cpp',
 | 
			
		||||
	'glstate.cpp',
 | 
			
		||||
	'graphics.cpp',
 | 
			
		||||
	'input.cpp',
 | 
			
		||||
	'keybindings.cpp',
 | 
			
		||||
	'main.cpp',
 | 
			
		||||
	'midisource.cpp',
 | 
			
		||||
	'plane.cpp',
 | 
			
		||||
	'rgssad.cpp',
 | 
			
		||||
	'scene.cpp',
 | 
			
		||||
	'sdlsoundsource.cpp',
 | 
			
		||||
	'settingsmenu.cpp',
 | 
			
		||||
	'shader.cpp',
 | 
			
		||||
	'sharedstate.cpp',
 | 
			
		||||
	'soundemitter.cpp',
 | 
			
		||||
	'sprite.cpp',
 | 
			
		||||
	'table.cpp',
 | 
			
		||||
	'texpool.cpp',
 | 
			
		||||
	'tileatlas.cpp',
 | 
			
		||||
	'tileatlasvx.cpp',
 | 
			
		||||
	'tilemap.cpp',
 | 
			
		||||
	'tilemapvx.cpp',
 | 
			
		||||
	'tilequad.cpp',
 | 
			
		||||
	'vertex.cpp',
 | 
			
		||||
	'viewport.cpp',
 | 
			
		||||
	'vorbissource.cpp',
 | 
			
		||||
	'window.cpp',
 | 
			
		||||
	'windowvx.cpp'
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										10
									
								
								tools/xxd.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										10
									
								
								tools/xxd.sh
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,10 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
# meson resolves paths such as processing assets/icon.png's command line
 | 
			
		||||
# ends up being `xxd -i ../assets/icon.png icon.png.xxd`, resulting in a
 | 
			
		||||
# prefix of `___` on all variable names. We postprocess xxd with sed for
 | 
			
		||||
# now in order to have proper variable names.
 | 
			
		||||
# ./xxd.sh /path/to/xxd /path/to/sed infile outfile
 | 
			
		||||
 | 
			
		||||
$1 -i $3 $3.tmp
 | 
			
		||||
$2 's:___::g' $3.tmp > $4
 | 
			
		||||
rm $3.tmp
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
#include <windows.h>
 | 
			
		||||
#include "resource.h"
 | 
			
		||||
 | 
			
		||||
1 RT_MANIFEST mkxp.manifest
 | 
			
		||||
IDI_APPICON ICON "icon.ico"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	
Does meson require to have its build files in every source directory, or is that just your convention?