Added meson build files and manifests for dlls.
Works, builds both native linux and cross-compiles mingw-w64 variants. Need to work out copying appropriate dlls into the mkxp runtime folder. Signed-off-by: Marty Plummer <ntzrmtthihu777@gmail.com>
This commit is contained in:
parent
01e17ed5c6
commit
ed29332523
|
@ -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>
|
|
@ -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>
|
|
@ -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')
|
||||
|
|
@ -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')
|
|
@ -0,0 +1,5 @@
|
|||
binding = static_library('binding',
|
||||
'binding-null.cpp',
|
||||
dependencies : [ sdl2, sigcxx ],
|
||||
include_directories : incdirs)
|
||||
|
|
@ -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'
|
|
@ -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'
|
|
@ -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 ]
|
||||
)
|
|
@ -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)
|
|
@ -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'
|
||||
)
|
|
@ -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…
Reference in New Issue