segatools/meson.build
GEEKiDoS c80f903cf8 Fix build with Microsoft Visual C++, Fix gfxhook and felica issue (#48)
I just wanna say that It is a SHAME that a Windows ONLY project was not able to build without MINGW
Also where's the missing `3mpxsc.h` in diva hook?

This also fixes the window size issue from hook_CreateWindowExA in gfxhook
And Fixes felica issue as described in #45

Reviewed-on: #48
Reviewed-by: Dniel97 <dniel97@noreply.gitea.tendokyu.moe>
Co-authored-by: GEEKiDoS <geek_ds@foxmail.com>
Co-committed-by: GEEKiDoS <geek_ds@foxmail.com>
2024-11-11 16:28:24 +00:00

132 lines
3.3 KiB
Meson

project(
'segatools',
'c',
version: '0.1.0',
default_options: [
'werror=true',
],
)
add_project_arguments(
'-DCOBJMACROS',
'-DDIRECTINPUT_VERSION=0x0800',
'-DWIN32_LEAN_AND_MEAN',
'-D_WIN32_WINNT=_WIN32_WINNT_WIN7',
'-DMINGW_HAS_SECURE_API=1',
# '-ggdb', # Add debug information
language: 'c',
)
cc = meson.get_compiler('c')
if cc.get_id() != 'msvc'
add_project_arguments(
'-ffunction-sections',
'-fdata-sections',
'-Wno-unused',
language: 'c',
)
add_project_link_arguments(
'-Wl,--enable-stdcall-fixup',
'-Wl,--exclude-all-symbols',
'-Wl,--gc-sections',
'-static-libgcc',
# '-ggdb', # Add debug information
'-lcrypt32', # Bcrypt needed for prashook
# '-Wl,-s', # Strip debug symbols
language: 'c',
)
endif
if get_option('log_all') or get_option('log_jvs')
add_project_arguments('-DLOG_JVS', language: 'c')
endif
if get_option('log_all') or get_option('log_io3')
add_project_arguments('-DLOG_IO3', language: 'c')
endif
if get_option('log_all') or get_option('log_led15093')
add_project_arguments('-DLOG_LED15093', language: 'c')
endif
if get_option('log_all') or get_option('log_nfc')
add_project_arguments('-DLOG_NFC', language: 'c')
endif
if get_option('log_all') or get_option('log_carol_control_bd')
add_project_arguments('-DLOG_CAROL_CONTROL_BD', language: 'c')
endif
if get_option('log_all') or get_option('log_carol_led_bd')
add_project_arguments('-DLOG_CAROL_LED_BD', language: 'c')
endif
if get_option('log_all') or get_option('log_carol_touch')
add_project_arguments('-DLOG_CAROL_TOUCH', language: 'c')
endif
if get_option('log_all') or get_option('log_chuni_slider')
add_project_arguments('-DLOG_CHUNI_SLIDER', language: 'c')
endif
if get_option('log_all') or get_option('log_chusan_slider')
add_project_arguments('-DLOG_CHUSAN_SLIDER', language: 'c')
endif
if get_option('log_all') or get_option('log_diva_slider')
add_project_arguments('-DLOG_DIVA_SLIDER', language: 'c')
endif
if get_option('log_all') or get_option('log_mercury_slider')
add_project_arguments('-DLOG_MERCURY_SLIDER', language: 'c')
endif
if get_option('log_all') or get_option('log_clock')
add_project_arguments('-DLOG_CLOCK', language: 'c')
endif
shlwapi_lib = cc.find_library('shlwapi')
dinput8_lib = cc.find_library('dinput8')
dxguid_lib = cc.find_library('dxguid')
xinput_lib = cc.find_library('xinput')
pathcch_lib = cc.find_library('pathcch')
imagehlp_lib = cc.find_library('imagehlp')
inc = include_directories('.')
capnhook = subproject('capnhook')
subdir('amex')
subdir('iccard')
subdir('board')
subdir('hooklib')
subdir('jvs')
subdir('platform')
subdir('util')
subdir('gfxhook')
subdir('unityhook')
subdir('aimeio')
subdir('chuniio')
subdir('divaio')
subdir('carolio')
subdir('idzio')
subdir('idacio')
subdir('swdcio')
subdir('mu3io')
subdir('mai2io')
subdir('cmio')
subdir('mercuryio')
subdir('cxbio')
subdir('tokyoio')
subdir('fgoio')
subdir('kemonoio')
subdir('chunihook')
subdir('divahook')
subdir('carolhook')
subdir('idzhook')
subdir('idachook')
subdir('swdchook')
subdir('minihook')
subdir('chusanhook')
subdir('mu3hook')
subdir('mai2hook')
subdir('cmhook')
subdir('mercuryhook')
subdir('cxbhook')
subdir('tokyohook')
subdir('fgohook')
subdir('kemonohook')