From 1bc67f8c39376a52e10a0b64b5324bb2af04264b Mon Sep 17 00:00:00 2001 From: iris Date: Thu, 23 Apr 2026 14:04:48 +0200 Subject: [PATCH] start move to meson --- cmake/version.hpp.in | 2 - meson.build | 72 ++++++++++++++++++++++++ meson.options | 4 ++ resources/version.hpp.in | 2 + src/backend/core/interpreter/meson.build | 6 ++ src/backend/core/jit/meson.build | 8 +++ src/backend/core/mem/meson.build | 3 + src/backend/core/meson.build | 15 +++++ src/backend/core/mmio/meson.build | 13 +++++ src/backend/core/registers/meson.build | 5 ++ src/backend/core/rsp/meson.build | 4 ++ src/backend/meson.build | 9 +++ src/frontend/meson.build | 11 ++++ src/utils/meson.build | 4 ++ 14 files changed, 156 insertions(+), 2 deletions(-) delete mode 100644 cmake/version.hpp.in create mode 100644 meson.build create mode 100644 meson.options create mode 100644 resources/version.hpp.in create mode 100644 src/backend/core/interpreter/meson.build create mode 100644 src/backend/core/jit/meson.build create mode 100644 src/backend/core/mem/meson.build create mode 100644 src/backend/core/meson.build create mode 100644 src/backend/core/mmio/meson.build create mode 100644 src/backend/core/registers/meson.build create mode 100644 src/backend/core/rsp/meson.build create mode 100644 src/backend/meson.build create mode 100644 src/frontend/meson.build create mode 100644 src/utils/meson.build diff --git a/cmake/version.hpp.in b/cmake/version.hpp.in deleted file mode 100644 index c4a9b65..0000000 --- a/cmake/version.hpp.in +++ /dev/null @@ -1,2 +0,0 @@ -#pragma once -#define KAIZEN_GIT_COMMIT_HASH "${_git_hash}" \ No newline at end of file diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..7d002f2 --- /dev/null +++ b/meson.build @@ -0,0 +1,72 @@ +project('kaizen', + 'cpp', + default_options: [ + 'cpp_std=c++23', + 'default_library=static', + ] +) + +compile_defs = [] + +os = host_machine.system() + +if os == 'windows' + compile_defs += ['NOMINMAX', '_CRT_SECURE_NO_WARNINGS'] +endif + +if os == 'darwin' + add_languages('objc') +endif + +vsc = vcs_tag( + input: 'resources/version.hpp.in', + output: 'resources/version.hpp', + fallback: '0.1.0' +) + +includes = include_directories( + 'src/frontend/Settings', + 'src/frontend', + 'src/', + 'src/utils', + 'src/backend', + 'src/backend/core', + 'src/backend/core/mmio', + 'src/backend/core/mmio/PIF', + 'src/backend/core/registers', + 'src/backend/core/rsp', + 'src/frontend/ImGuiImpl/', + 'external', + 'external/xbyak', + 'external/mio/include', + 'external/json/include', + 'external/parallel-rdp', + 'external/parallel-rdp', + 'external/parallel-rdp/parallel-rdp-standalone/parallel-rdp', + 'external/parallel-rdp/parallel-rdp-standalone/volk', + 'external/parallel-rdp/parallel-rdp-standalone/spirv-cross', + 'external/parallel-rdp/parallel-rdp-standalone/vulkan', + 'external/parallel-rdp/parallel-rdp-standalone/vulkan-headers/include', + 'external/parallel-rdp/parallel-rdp-standalone/util', + 'external/unarr', + 'external/SDL/include', + 'external/sse2neon', + 'external/capstone/include', + 'external/imgui', + 'external/imgui/backends', + 'external/cflags/include', + 'external/mINI/src/', +) + +subdir('src/utils') +subdir('src/frontend') +subdir('src/backend') + +sources = [ + vsc, + util_srcs, + frontend_srcs, + backend_srcs +] + +executable('kaizen', sources: sources, include_directories: includes) \ No newline at end of file diff --git a/meson.options b/meson.options new file mode 100644 index 0000000..a1013ab --- /dev/null +++ b/meson.options @@ -0,0 +1,4 @@ +option('vk_validation', type: 'boolean', value: false) +option('sanitizers', type: 'boolean', value: false) +option('official', type: 'boolean', value: false) +option('jit', type: 'boolean', value: false) \ No newline at end of file diff --git a/resources/version.hpp.in b/resources/version.hpp.in new file mode 100644 index 0000000..72e2c43 --- /dev/null +++ b/resources/version.hpp.in @@ -0,0 +1,2 @@ +#pragma once +#define KAIZEN_GIT_COMMIT_HASH "@VCS_TAG@" diff --git a/src/backend/core/interpreter/meson.build b/src/backend/core/interpreter/meson.build new file mode 100644 index 0000000..4b7d9d6 --- /dev/null +++ b/src/backend/core/interpreter/meson.build @@ -0,0 +1,6 @@ +interpreter_srcs = [ + 'cop0instructions.cpp', + 'cop1instructions.cpp', + 'decode.cpp', + 'instructions.cpp', +] \ No newline at end of file diff --git a/src/backend/core/jit/meson.build b/src/backend/core/jit/meson.build new file mode 100644 index 0000000..d7e9a98 --- /dev/null +++ b/src/backend/core/jit/meson.build @@ -0,0 +1,8 @@ +jit_srcs = [] + +if get_option('jit') + jit += [ + 'decode.cpp', + 'instructions.cpp' + ] +endif \ No newline at end of file diff --git a/src/backend/core/mem/meson.build b/src/backend/core/mem/meson.build new file mode 100644 index 0000000..8d8916d --- /dev/null +++ b/src/backend/core/mem/meson.build @@ -0,0 +1,3 @@ +mem_srcs = [ + 'Flash.cpp' +] \ No newline at end of file diff --git a/src/backend/core/meson.build b/src/backend/core/meson.build new file mode 100644 index 0000000..c2d3dd5 --- /dev/null +++ b/src/backend/core/meson.build @@ -0,0 +1,15 @@ +subdir('interpreter') +subdir('jit') +subdir('mem') +subdir('mmio') +subdir('registers') +subdir('rsp') + +core_srcs = [ + interpreter_srcs, + jit_srcs, + mem_srcs, + mmio_srcs, + registers_srcs, + rsp_srcs +] \ No newline at end of file diff --git a/src/backend/core/mmio/meson.build b/src/backend/core/mmio/meson.build new file mode 100644 index 0000000..2a8624e --- /dev/null +++ b/src/backend/core/mmio/meson.build @@ -0,0 +1,13 @@ +mmio_srcs = [ + 'AI.cpp', + 'Audio.cpp', + 'Interrupt.cpp', + 'MI.cpp', + 'PI.cpp', + 'PIF.cpp', + 'RI.cpp', + 'SI.cpp', + 'VI.cpp', + 'PIF/Device.cpp', + 'PIF/MupenMovie.cpp', +] \ No newline at end of file diff --git a/src/backend/core/registers/meson.build b/src/backend/core/registers/meson.build new file mode 100644 index 0000000..8054530 --- /dev/null +++ b/src/backend/core/registers/meson.build @@ -0,0 +1,5 @@ +registers_srcs = [ + 'Cop0.cpp', + 'Cop1.cpp', + 'Registers.cpp' +] \ No newline at end of file diff --git a/src/backend/core/rsp/meson.build b/src/backend/core/rsp/meson.build new file mode 100644 index 0000000..3c03c00 --- /dev/null +++ b/src/backend/core/rsp/meson.build @@ -0,0 +1,4 @@ +rsp_srcs = [ + 'decode.cpp', + 'instructions.cpp' +] \ No newline at end of file diff --git a/src/backend/meson.build b/src/backend/meson.build new file mode 100644 index 0000000..354b861 --- /dev/null +++ b/src/backend/meson.build @@ -0,0 +1,9 @@ +subdir('core') + +backend_srcs = [ + core_srcs, + 'Core.cpp', + 'GameDB.cpp', + 'Netplay.cpp', + 'Scheduler.cpp' +] \ No newline at end of file diff --git a/src/frontend/meson.build b/src/frontend/meson.build new file mode 100644 index 0000000..a15b7c5 --- /dev/null +++ b/src/frontend/meson.build @@ -0,0 +1,11 @@ +frontend_srcs = [ + 'Debugger.cpp', + 'EmuThread.cpp', + 'KaizenGui.cpp', + 'main.cpp', + 'RenderWidget.cpp', + 'SettingsWindow.cpp', + 'Settings/AudioSettings.cpp', + 'Settings/CPUSettings.cpp', + 'Settings/GeneralSettings.cpp' +] \ No newline at end of file diff --git a/src/utils/meson.build b/src/utils/meson.build new file mode 100644 index 0000000..3b4abd9 --- /dev/null +++ b/src/utils/meson.build @@ -0,0 +1,4 @@ +util_srcs = [ + 'File.cpp', + 'Options.cpp' +] \ No newline at end of file