project('TaikoArcadeLoader', 'c', 'cpp', version: '1.0.0', default_options : ['c_std=c11', 'cpp_std=c++23']) warning_level = 3 debug = true optimization = 3 b_lto = true b_pgo = 'use' cmake = import('cmake') opt_var = cmake.subproject_options() opt_var.set_override_option('cpp_std', 'c++23') cpp = meson.get_compiler('cpp') add_project_arguments( cpp.get_supported_arguments( '-D_WIN32_WINNT=_WIN32_WINNT_WIN10', ), language: 'cpp', ) add_project_link_arguments( cpp.get_supported_arguments( '-static', #'-s', '-lws2_32', '-lssp', '-lntdll', ), language: 'cpp', ) minhook = subproject('minhook') tomlc99 = subproject('tomlc99') sdl2 = subproject('sdl2', default_options: ['default_library=static', 'test=false', 'use_render=disabled']) xxhash = subproject('xxhash', default_options: ['default_library=static', 'cli=false']) opt_var.add_cmake_defines({'SAFETYHOOK_FETCH_ZYDIS': true}) safetyhook_proj = cmake.subproject('safetyhook', options: opt_var) safetyhook_dep = safetyhook_proj.dependency('safetyhook') zydis_dep = safetyhook_proj.dependency('Zydis') stb = subproject('stb') opt_var.add_cmake_defines({'BUILD_EXAMPLES': false}) zxing_proj = cmake.subproject('zxing', options: opt_var) zxing_dep = zxing_proj.dependency('ZXing') library( 'bnusio', link_with: [ minhook.get_variable('minhook_lib'), tomlc99.get_variable('tomlc99_lib'), sdl2.get_variable('sdl2'), xxhash.get_variable('xxhash'), ], include_directories: [ 'src', minhook.get_variable('minhook_inc'), tomlc99.get_variable('tomlc99_inc'), sdl2.get_variable('core_inc'), xxhash.get_variable('inc'), ], dependencies: [stb.get_variable('stb_dep'), zxing_dep, safetyhook_dep, zydis_dep, ], sources : [ 'src/dllmain.cpp', 'src/helpers.cpp', 'src/poll.cpp', 'src/bnusio.cpp', 'src/patches/jp_nov_2020.cpp', 'src/patches/jp_apr_2023.cpp', 'src/patches/cn_jun_2023.cpp', 'src/patches/audio.cpp', 'src/patches/qr.cpp', 'src/patches/amauth.cpp', ], name_prefix: '' )