Merge pull request #368 from linkmauve/gtk3

Port DeSmuME to GTK+ 3.24
This commit is contained in:
zeromus 2020-09-09 17:20:13 -04:00 committed by GitHub
commit 5dd62b214b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
76 changed files with 2308 additions and 1141 deletions

0
desmume/src/GPU.cpp Executable file → Normal file
View File

0
desmume/src/GPU.h Executable file → Normal file
View File

0
desmume/src/NDSSystem.cpp Executable file → Normal file
View File

0
desmume/src/NDSSystem.h Executable file → Normal file
View File

0
desmume/src/OGLRender.cpp Executable file → Normal file
View File

0
desmume/src/OGLRender.h Executable file → Normal file
View File

0
desmume/src/OGLRender_3_2.cpp Executable file → Normal file
View File

0
desmume/src/driver.h Executable file → Normal file
View File

0
desmume/src/frontend/cocoa/AppIcon_DeSmuME.icns Executable file → Normal file
View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

@ -0,0 +1,24 @@
dep_x11 = dependency('x11')
cli_dependencies = dependencies + [dep_x11]
cli_src = [
'main.cpp',
'../shared/sndsdl.cpp',
'../shared/ctrlssdl.cpp',
]
# TODO: why do we have to redeclare it here with one more fs level?
includes = [
'../../../../src',
'../../../../src/libretro-common/include',
'../../../../src/frontend',
]
executable('desmume-cli',
cli_src,
dependencies: cli_dependencies,
include_directories: includes,
link_with: libdesmume,
install: true,
)

0
desmume/src/frontend/posix/gtk-glade/callbacks.cpp Executable file → Normal file
View File

0
desmume/src/frontend/posix/gtk-glade/callbacks.h Executable file → Normal file
View File

0
desmume/src/frontend/posix/gtk-glade/callbacks_IO.cpp Executable file → Normal file
View File

0
desmume/src/frontend/posix/gtk-glade/callbacks_IO.h Executable file → Normal file
View File

View File

View File

View File

View File

View File

View File

0
desmume/src/frontend/posix/gtk-glade/desmume.cpp Executable file → Normal file
View File

0
desmume/src/frontend/posix/gtk-glade/desmume.h Executable file → Normal file
View File

0
desmume/src/frontend/posix/gtk-glade/gdk_gl.cpp Executable file → Normal file
View File

0
desmume/src/frontend/posix/gtk-glade/gdk_gl.h Executable file → Normal file
View File

0
desmume/src/frontend/posix/gtk-glade/glade-xml.cpp Executable file → Normal file
View File

0
desmume/src/frontend/posix/gtk-glade/glade/DeSmuME.xpm Executable file → Normal file
View File

View File

View File

0
desmume/src/frontend/posix/gtk-glade/globals.h Executable file → Normal file
View File

0
desmume/src/frontend/posix/gtk-glade/keyval_names.cpp Executable file → Normal file
View File

0
desmume/src/frontend/posix/gtk-glade/keyval_names.h Executable file → Normal file
View File

2
desmume/src/frontend/posix/gtk-glade/main.cpp Executable file → Normal file
View File

@ -21,6 +21,8 @@
* Boston, MA 02111-1307, USA.
*/
#include <X11/Xlib.h>
#include "callbacks.h"
#include "callbacks_IO.h"
#include "dTools/callbacks_dtools.h"

View File

@ -0,0 +1,45 @@
dep_gtk2 = dependency('gtk+-2.0')
dep_glade = dependency('libglade-2.0')
dep_gmodule = dependency('gmodule-2.0')
dep_gtkglext = dependency('gtkglext-1.0')
dep_x11 = dependency('x11')
gtk_dependencies = dependencies + [dep_gtk2, dep_glade, dep_gmodule, dep_gtkglext, dep_x11]
desmume_src = [
'glade-xml.cpp',
'callbacks.cpp',
'callbacks_IO.cpp',
'desmume.cpp',
'keyval_names.cpp',
'main.cpp',
'gdk_gl.cpp',
'dTools/callbacks_1_ioregs.cpp',
'dTools/callbacks_2_memview.cpp',
'dTools/callbacks_3_palview.cpp',
'dTools/callbacks_4_tileview.cpp',
'gdk_3Demu.cpp',
'../shared/sndsdl.cpp',
'../shared/ctrlssdl.cpp',
'../../../driver.cpp',
]
# TODO: why do we have to redeclare it here with one more fs level?
includes = [
'../../../../src',
'../../../../src/libretro-common/include',
'../../../../src/frontend',
]
executable('desmume-glade',
desmume_src,
cpp_args: ['-DGETTEXT_PACKAGE="desmume"', '-DLOCALEDIR="' + get_option('localedir') + '"', '-DVERSION="Unknown version"', '-DGTKGLEXT_AVAILABLE'],
dependencies: gtk_dependencies,
include_directories: includes,
link_with: libdesmume,
install: true,
)
install_data('desmume-glade.desktop', install_dir: get_option('datadir') / 'applications')
install_data('glade/DeSmuME.xpm', install_dir: get_option('datadir') / 'pixmaps')
install_data(['glade/DeSmuMe_Dtools.glade', 'glade/DeSmuMe.glade', 'glade/DeSmuME.xpm'], install_dir: get_option('datadir') / 'glade')

View File

@ -276,7 +276,7 @@ static void cheatListEnd()
{
cheats->save();
if(shouldBeRunning)
Launch();
Launch(NULL, NULL, NULL);
}
static GtkListStore *cheat_list_populate()
@ -305,13 +305,13 @@ static GtkWidget *cheat_list_create_ui()
{
GtkListStore *store = cheat_list_populate();
GtkWidget *tree = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
GtkWidget *vbox = gtk_vbox_new(FALSE, 1);
GtkWidget *hbbox = gtk_hbutton_box_new();
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 1);
GtkWidget *hbbox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
GtkWidget *button;
gtk_container_add(GTK_CONTAINER(vbox), GTK_WIDGET(tree));
gtk_container_add(GTK_CONTAINER(vbox), GTK_WIDGET(hbbox));
gtk_container_add(GTK_CONTAINER(win), GTK_WIDGET(vbox));
gtk_container_add(GTK_CONTAINER(box), GTK_WIDGET(tree));
gtk_container_add(GTK_CONTAINER(box), GTK_WIDGET(hbbox));
gtk_container_add(GTK_CONTAINER(win), GTK_WIDGET(box));
button = gtk_button_new_with_label("add cheat");
g_signal_connect (button, "clicked", G_CALLBACK (cheat_list_add_cheat), store);
@ -331,10 +331,10 @@ static GtkWidget *cheat_list_create_ui()
return tree;
}
void CheatList ()
void CheatList(GSimpleAction *action, GVariant *parameter, gpointer user_data)
{
shouldBeRunning = desmume_running();
Pause();
Pause(NULL, NULL, NULL);
win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(win),"Cheat List");
gtk_window_set_modal(GTK_WINDOW(win), TRUE);
@ -352,15 +352,15 @@ void CheatList ()
static void cheat_search_create_ui()
{
GtkWidget *button;
GtkWidget *vbox = gtk_vbox_new(FALSE, 1);
GtkWidget *hbbox = gtk_hbutton_box_new();
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 1);
GtkWidget *hbbox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
GtkWidget *b;
gtk_container_add(GTK_CONTAINER(win), GTK_WIDGET(vbox));
gtk_container_add(GTK_CONTAINER(win), GTK_WIDGET(box));
{
b = gtk_hbox_new(FALSE, 1);
gtk_container_add(GTK_CONTAINER(vbox), GTK_WIDGET(b));
b = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 1);
gtk_container_add(GTK_CONTAINER(box), GTK_WIDGET(b));
{
GtkTreeModel * size_model;
@ -381,8 +381,8 @@ static void cheat_search_create_ui()
gtk_container_add(GTK_CONTAINER(b), w);
}
b = gtk_hbox_new(FALSE, 1);
gtk_container_add(GTK_CONTAINER(vbox), GTK_WIDGET(b));
b = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 1);
gtk_container_add(GTK_CONTAINER(box), GTK_WIDGET(b));
{
GtkWidget *w;
@ -407,7 +407,7 @@ static void cheat_search_create_ui()
// BUTTONS:
gtk_container_add(GTK_CONTAINER(vbox), GTK_WIDGET(hbbox));
gtk_container_add(GTK_CONTAINER(box), GTK_WIDGET(hbbox));
button = gtk_button_new_with_label("add cheats");
// g_signal_connect (button, "clicked", g_callback (cheat_list_add_cheat), store);
@ -417,18 +417,18 @@ static void cheat_search_create_ui()
// g_signal_connect (button, "clicked", g_callback (cheat_list_add_cheat), store);
gtk_container_add(GTK_CONTAINER(hbbox),button);
// GtkWidget *vbox = gtk_vbox_new(FALSE, 1);
// gtk_container_add(GTK_CONTAINER(win), GTK_WIDGET(vbox));
// GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 1);
// gtk_container_add(GTK_CONTAINER(win), GTK_WIDGET(box));
}
static void cheatSearchEnd()
{
}
void CheatSearch ()
void CheatSearch(GSimpleAction *action, GVariant *parameter, gpointer user_data)
{
shouldBeRunning = desmume_running();
Pause();
Pause(NULL, NULL, NULL);
win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(win),"Cheat Search");
gtk_window_set_modal(GTK_WINDOW(win), TRUE);

View File

@ -22,8 +22,8 @@
#ifndef __CHEATS_H__
#define __CHEATS_H__
void CheatSearch ();
void CheatList ();
void CheatSearch(GSimpleAction *action, GVariant *parameter, gpointer user_data);
void CheatList(GSimpleAction *action, GVariant *parameter, gpointer user_data);
#endif /*__CHEATS_H__*/

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
#ifndef __DESMUME_GTK_MAIN_H__
#define __DESMUME_GTK_MAIN_H__
void Pause();
void Launch();
void Pause(GSimpleAction *action, GVariant *parameter, gpointer user_data);
void Launch(GSimpleAction *action, GVariant *parameter, gpointer user_data);
#endif

View File

@ -0,0 +1,38 @@
dep_gtk3 = dependency('gtk+-3.0')
dep_x11 = dependency('x11')
gtk_dependencies = dependencies + [dep_gtk3, dep_x11]
desmume_src = [
'avout_pipe_base.cpp',
'avout_x264.cpp',
'avout_flac.cpp',
'config.cpp',
'desmume.cpp',
'dToolsList.cpp',
'tools/ioregsView.cpp',
'../shared/sndsdl.cpp',
'../shared/ctrlssdl.cpp',
'osmesa_3Demu.cpp',
'glx_3Demu.cpp',
'cheatsGTK.cpp',
'main.cpp',
]
# TODO: why do we have to redeclare it here with one more fs level?
includes = [
'../../../../src',
'../../../../src/libretro-common/include',
'../../../../src/frontend',
]
executable('desmume',
desmume_src,
dependencies: gtk_dependencies,
include_directories: includes,
link_with: libdesmume,
install: true,
)
install_data('desmume.desktop', install_dir: get_option('datadir') / 'applications')
install_data('DeSmuME.xpm', install_dir: get_option('datadir') / 'pixmaps')

View File

@ -41,7 +41,7 @@
BOOL CPUS [2] = {TRUE, TRUE};
static GtkWidget *mWin[2];
static GtkWidget *mVbox0[2];
static GtkWidget *mBox0[2];
static GtkWidget *mIoRegCombo[2];
static GtkWidget *mRegInfos[2];
@ -68,11 +68,11 @@ static reg_t *current_reg[2] = {NULL, NULL};
char _bit_check_buf[64]; \
snprintf(_bit_check_buf, ARRAY_SIZE(_bit_check_buf), "Bit %d: %s", n,s); \
_wl_[w] = gtk_check_button_new_with_label(_bit_check_buf ); \
gtk_box_pack_start(GTK_BOX(mVbox0[c]), _wl_[w], FALSE, FALSE, 0); }
gtk_box_pack_start(GTK_BOX(mBox0[c]), _wl_[w], FALSE, FALSE, 0); }
#define BIT_COMBO(w,n,s) { \
_wl_[w] = gtk_hbox_new(FALSE, 0); \
gtk_box_pack_start(GTK_BOX(mVbox0[c]), _wl_[w], FALSE, FALSE, 0); } \
_wl_[w] = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); \
gtk_box_pack_start(GTK_BOX(mBox0[c]), _wl_[w], FALSE, FALSE, 0); } \
char _bit_combo_buf[64]; \
snprintf(_bit_combo_buf, ARRAY_SIZE(_bit_combo_buf), "Bits %s: %s", n,s); \
GtkWidget *__combo_lbl_tmp = gtk_label_new(_bit_combo_buf); \
@ -380,11 +380,11 @@ static void selected_reg(GtkWidget* widget, gpointer data)
guint active = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
if(current_reg[c]) current_reg[c]->destroy(c);
gtk_container_foreach(GTK_CONTAINER(mVbox0[c]), _clearContainer, (gpointer)mVbox0[c]);
gtk_container_foreach(GTK_CONTAINER(mBox0[c]), _clearContainer, (gpointer)mBox0[c]);
current_reg[c] = (reg_t*)&(GET_REG_LIST(c)[active]);
// gtk_box_pack_start(GTK_BOX(mVbox0[c]), mIoRegCombo[c], FALSE, FALSE, 0);
// gtk_box_pack_start(GTK_BOX(mBox0[c]), mIoRegCombo[c], FALSE, FALSE, 0);
switch (current_reg[c]->size) {
case BITS_8:
@ -396,7 +396,7 @@ static void selected_reg(GtkWidget* widget, gpointer data)
default:
regInfosBuffer = g_strdup_printf("0x%08X", current_reg[c]->value(c));
}
// gtk_box_pack_start(GTK_BOX(mVbox0[c]), mRegInfos[c], FALSE, FALSE, 0);
// gtk_box_pack_start(GTK_BOX(mBox0[c]), mRegInfos[c], FALSE, FALSE, 0);
gtk_label_set_label(GTK_LABEL(mRegInfos[c]), regInfosBuffer);
g_free(regInfosBuffer);
@ -424,7 +424,7 @@ static void _closeOne(GtkWidget *widget, gpointer data)
gtk_widget_destroy(mRegInfos[c]);
gtk_widget_destroy(mIoRegCombo[c]);
gtk_widget_destroy(mVbox0[c]);
gtk_widget_destroy(mBox0[c]);
// gtk_widget_destroy(mWin[c]);
}
@ -454,8 +454,8 @@ static void open(int ID)
else gtk_window_set_title(GTK_WINDOW(mWin[c]), TOOL_NAME " : ARM7");
g_signal_connect(G_OBJECT(mWin[c]), "destroy", G_CALLBACK(&_closeOne), GINT_TO_POINTER(c));
mVbox0[c] = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(mWin[c]), mVbox0[c]);
mBox0[c] = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
gtk_container_add(GTK_CONTAINER(mWin[c]), mBox0[c]);
mIoRegCombo[c] = gtk_combo_box_text_new();
mRegInfos[c] = gtk_label_new("");
@ -471,8 +471,8 @@ static void open(int ID)
gtk_combo_box_set_active(GTK_COMBO_BOX(mIoRegCombo[c]), 0);
g_signal_connect(G_OBJECT(mIoRegCombo[c]), "changed", G_CALLBACK(selected_reg), GINT_TO_POINTER(c));
gtk_box_pack_start(GTK_BOX(mVbox0[c]), mIoRegCombo[c], FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(mVbox0[c]), mRegInfos[c], FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(mBox0[c]), mIoRegCombo[c], FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(mBox0[c]), mRegInfos[c], FALSE, FALSE, 0);
selected_reg(mIoRegCombo[c], GINT_TO_POINTER(c));
gtk_widget_show_all(mWin[c]);

View File

@ -0,0 +1,250 @@
project('desmume',
['c', 'cpp'],
version: '2.7.10',
meson_version: '>=0.54',
default_options: [
'warning_level=0',
'c_std=c11',
'cpp_std=c++14',
],
license: 'GPL2+',
)
dep_glib2 = dependency('glib-2.0')
dep_sdl = dependency('sdl')
dep_pcap = dependency('pcap')
dep_zlib = dependency('zlib')
dep_gl = dependency('gl', required: false)
dep_openal = dependency('openal', required: get_option('openal'))
dep_alsa = dependency('alsa', required: false)
dep_soundtouch = dependency('soundtouch', required: false)
dep_agg = dependency('libagg', required: false)
# XXX: something wrong with this one.
#dep_lua = dependency('lua-5.1', required: false)
if get_option('wifi')
add_global_arguments('-DEXPERIMENTAL_WIFI_COMM')
endif
dependencies = [dep_glib2, dep_sdl, dep_pcap, dep_zlib]
if target_machine.cpu() == 'x86_64'
add_global_arguments('-DHAVE_JIT', language: ['c', 'cpp'])
add_global_arguments('-DHOST_64', language: ['c', 'cpp'])
have_jit = true
elif target_machine.cpu() == 'i686'
add_global_arguments('-DHAVE_JIT', language: ['c', 'cpp'])
add_global_arguments('-DHOST_32', language: ['c', 'cpp'])
have_jit = true
else
have_jit = false
endif
includes = [
'../../../src',
'../../../src/libretro-common/include',
'../../../src/frontend',
]
libdesmume_src = [
'../../armcpu.cpp',
'../../arm_instructions.cpp',
'../../bios.cpp',
'../../cp15.cpp',
'../../commandline.cpp',
'../../common.cpp',
'../../debug.cpp',
'../../driver.cpp',
'../../Database.cpp',
'../../emufile.cpp', '../../encrypt.cpp', '../../FIFO.cpp',
'../../firmware.cpp', '../../GPU.cpp',
'../../mc.cpp',
'../../path.cpp',
'../../readwrite.cpp',
'../../wifi.cpp',
'../../MMU.cpp', '../../NDSSystem.cpp',
'../../ROMReader.cpp',
'../../render3D.cpp',
'../../rtc.cpp',
'../../saves.cpp',
'../../slot1.cpp',
'../../slot2.cpp',
'../../SPU.cpp',
'../../matrix.cpp',
'../../gfx3d.cpp',
'../../thumb_instructions.cpp',
'../../movie.cpp',
'../../frontend/modules/Disassembler.cpp',
'../../utils/advanscene.cpp',
'../../utils/datetime.cpp',
'../../utils/guid.cpp',
'../../utils/emufat.cpp',
'../../utils/fsnitro.cpp',
'../../utils/xstring.cpp',
'../../utils/decrypt/crc.cpp', '../../utils/decrypt/decrypt.cpp',
'../../utils/decrypt/header.cpp',
'../../utils/task.cpp',
'../../utils/vfat.cpp',
'../../utils/dlditool.cpp',
'../../utils/libfat/cache.cpp',
'../../utils/libfat/directory.cpp',
'../../utils/libfat/disc.cpp',
'../../utils/libfat/fatdir.cpp',
'../../utils/libfat/fatfile.cpp',
'../../utils/libfat/filetime.cpp',
'../../utils/libfat/file_allocation_table.cpp',
'../../utils/libfat/libfat.cpp',
'../../utils/libfat/libfat_public_api.cpp',
'../../utils/libfat/lock.cpp',
'../../utils/libfat/partition.cpp',
'../../utils/tinyxml/tinystr.cpp',
'../../utils/tinyxml/tinyxml.cpp',
'../../utils/tinyxml/tinyxmlerror.cpp',
'../../utils/tinyxml/tinyxmlparser.cpp',
'../../utils/colorspacehandler/colorspacehandler.cpp',
'../../addons/slot2_auto.cpp', '../../addons/slot2_mpcf.cpp', '../../addons/slot2_paddle.cpp', '../../addons/slot2_gbagame.cpp', '../../addons/slot2_none.cpp', '../../addons/slot2_rumblepak.cpp', '../../addons/slot2_guitarGrip.cpp', '../../addons/slot2_expMemory.cpp', '../../addons/slot2_piano.cpp', '../../addons/slot2_passme.cpp', '../../addons/slot1_none.cpp', '../../addons/slot1_r4.cpp', '../../addons/slot1_retail_nand.cpp', '../../addons/slot1_retail_auto.cpp', '../../addons/slot1_retail_mcrom.cpp', '../../addons/slot1_retail_mcrom_debug.cpp', '../../addons/slot1comp_mc.cpp', '../../addons/slot1comp_rom.cpp', '../../addons/slot1comp_protocol.cpp',
'../../cheatSystem.cpp',
'../../texcache.cpp', '../../rasterize.cpp',
'../../metaspu/metaspu.cpp',
'../../filter/2xsai.cpp', '../../filter/bilinear.cpp', '../../filter/deposterize.cpp', '../../filter/epx.cpp',
'../../filter/hq2x.cpp',
'../../filter/hq3x.cpp',
'../../filter/hq4x.cpp',
'../../filter/lq2x.cpp', '../../filter/scanline.cpp',
'../../filter/videofilter.cpp',
'../../filter/xbrz.cpp',
'../../version.cpp',
'../../libretro-common/compat/compat_getopt.c',
'../../libretro-common/file/file_path.c',
'../../libretro-common/compat/compat_strl.c',
'../../libretro-common/features/features_cpu.c',
'../../libretro-common/file/retro_dirent.c',
'../../libretro-common/file/retro_stat.c',
'../../libretro-common/rthreads/async_job.c',
'../../libretro-common/rthreads/rsemaphore.c',
'../../libretro-common/rthreads/rthreads.c',
'../../libretro-common/encodings/encoding_utf.c',
]
if have_jit
libdesmume_src += [
'../../arm_jit.cpp',
'../../utils/AsmJit/core/assembler.cpp',
'../../utils/AsmJit/core/assert.cpp',
'../../utils/AsmJit/core/buffer.cpp',
'../../utils/AsmJit/core/compiler.cpp',
'../../utils/AsmJit/core/compilercontext.cpp',
'../../utils/AsmJit/core/compilerfunc.cpp',
'../../utils/AsmJit/core/compileritem.cpp',
'../../utils/AsmJit/core/context.cpp',
'../../utils/AsmJit/core/cpuinfo.cpp',
'../../utils/AsmJit/core/defs.cpp',
'../../utils/AsmJit/core/func.cpp',
'../../utils/AsmJit/core/logger.cpp',
'../../utils/AsmJit/core/memorymanager.cpp',
'../../utils/AsmJit/core/memorymarker.cpp',
'../../utils/AsmJit/core/operand.cpp',
'../../utils/AsmJit/core/stringbuilder.cpp',
'../../utils/AsmJit/core/stringutil.cpp',
'../../utils/AsmJit/core/virtualmemory.cpp',
'../../utils/AsmJit/core/zonememory.cpp',
'../../utils/AsmJit/x86/x86assembler.cpp',
'../../utils/AsmJit/x86/x86compiler.cpp',
'../../utils/AsmJit/x86/x86compilercontext.cpp',
'../../utils/AsmJit/x86/x86compilerfunc.cpp',
'../../utils/AsmJit/x86/x86compileritem.cpp',
'../../utils/AsmJit/x86/x86cpuinfo.cpp',
'../../utils/AsmJit/x86/x86defs.cpp',
'../../utils/AsmJit/x86/x86func.cpp',
'../../utils/AsmJit/x86/x86operand.cpp',
'../../utils/AsmJit/x86/x86util.cpp',
]
endif
libdesmume_src += [
'shared/desmume_config.cpp',
]
if dep_gl.found()
dependencies += dep_gl
add_global_arguments('-DHAVE_GL_GLX', language: ['c', 'cpp'])
libdesmume_src += [
'../../OGLRender.cpp',
'../../OGLRender_3_2.cpp',
]
endif
if dep_openal.found()
dependencies += dep_openal
libdesmume_src += [
'shared/mic_openal.cpp',
]
elif dep_alsa.found()
dependencies += dep_alsa
libdesmume_src += [
'shared/mic_alsa.cpp',
]
else
libdesmume_src += [
'../../mic.cpp',
]
endif
if dep_soundtouch.found()
dependencies += dep_soundtouch
libdesmume_src += [
'../../metaspu/SndOut.cpp',
'../../metaspu/Timestretcher.cpp',
]
endif
if dep_agg.found()
dependencies += dep_agg
add_global_arguments('-DHAVE_LIBAGG', language: ['c', 'cpp'])
libdesmume_src += [
'../modules/osd/agg/aggdraw.cpp',
'../modules/osd/agg/agg_osd.cpp',
]
endif
# TODO: fix Lua on ¬Windows.
#if dep_lua.found()
# dependencies += dep_lua
# libdesmume_src += [
# '../../lua-engine.cpp',
# ]
#endif
if get_option('gdb-stub')
libdesmume_src += [
'../../gdbstub/gdbstub.cpp',
]
endif
simd = import('unstable-simd')
cxx = meson.get_compiler('cpp')
rval = simd.check('colorspacehandler',
sse2: '../../utils/colorspacehandler/colorspacehandler_SSE2.cpp',
# TODO: add these two even in generic builds.
#avx2: '../../utils/colorspacehandler/colorspacehandler_AVX2.cpp',
#avx512: '../../utils/colorspacehandler/colorspacehandler_AVX512.cpp',
# TODO: add support for this in meson.
#altivec: '../../utils/colorspacehandler/colorspacehandler_AltiVec.cpp',
compiler: cxx,
include_directories: includes,
)
colorspacehandler_simd = rval[0]
libdesmume = static_library('desmume',
libdesmume_src,
dependencies: dependencies,
include_directories: includes,
link_with: colorspacehandler_simd,
)
subdir('cli')
subdir('gtk')
if get_option('glade')
subdir('gtk-glade')
endif

View File

@ -0,0 +1,20 @@
option('openal',
type: 'boolean',
value: false,
description: 'Enable experimental OpenAL microphone input',
)
option('glade',
type: 'boolean',
value: false,
description: 'Enable glade frontend',
)
option('wifi',
type: 'boolean',
value: false,
description: 'Enable wifi support',
)
option('gdb-stub',
type: 'boolean',
value: false,
description: 'Enable gdb stub',
)

0
desmume/src/frontend/windows/aviout.cpp Executable file → Normal file
View File

0
desmume/src/frontend/windows/aviout.h Executable file → Normal file
View File

0
desmume/src/frontend/windows/inputdx.cpp Executable file → Normal file
View File

0
desmume/src/frontend/windows/main.cpp Executable file → Normal file
View File

0
desmume/src/frontend/windows/ogl_display.cpp Executable file → Normal file
View File

0
desmume/src/frontend/windows/ogl_display.h Executable file → Normal file
View File

0
desmume/src/frontend/windows/resource.h Executable file → Normal file
View File

0
desmume/src/frontend/windows/resources.rc Executable file → Normal file
View File

0
desmume/src/frontend/windows/snddx.cpp Executable file → Normal file
View File

0
desmume/src/frontend/windows/snddx.h Executable file → Normal file
View File

0
desmume/src/frontend/windows/winpcap.h Executable file → Normal file
View File

0
desmume/src/gfx3d.cpp Executable file → Normal file
View File

0
desmume/src/matrix.cpp Executable file → Normal file
View File

0
desmume/src/movie.cpp Executable file → Normal file
View File

0
desmume/src/movie.h Executable file → Normal file
View File

0
desmume/src/rasterize.cpp Executable file → Normal file
View File

0
desmume/src/render3D.cpp Executable file → Normal file
View File

0
desmume/src/types.h Executable file → Normal file
View File

View File

0
desmume/src/wifi.cpp Executable file → Normal file
View File

0
desmume/src/wifi.h Executable file → Normal file
View File