From b70cafecefd0d043dc9ff1579411a2b04ecf3a54 Mon Sep 17 00:00:00 2001 From: Kevin Trogant Date: Fri, 26 Jul 2024 09:38:28 +0200 Subject: [PATCH] refactor: Use vulkan-headers.wrap instead of depending on a vulkan sdk install --- docs/REQUIRED_TOOLS.md | 12 ++++++++++++ src/launcher/launcher.c | 10 ++++++---- src/renderer/vk/meson.build | 8 +++++--- subprojects/vulkan-headers.wrap | 13 +++++++++++++ 4 files changed, 36 insertions(+), 7 deletions(-) create mode 100644 docs/REQUIRED_TOOLS.md create mode 100644 subprojects/vulkan-headers.wrap diff --git a/docs/REQUIRED_TOOLS.md b/docs/REQUIRED_TOOLS.md new file mode 100644 index 0000000..fb79e1d --- /dev/null +++ b/docs/REQUIRED_TOOLS.md @@ -0,0 +1,12 @@ +# Tools required to build this + +- [meson](https://mesonbuild.com/Getting-meson.html) The build system we use. +- [cmake](https://cmake.org/download/) For building some of the dependencies. +- [git](https://git-scm.com/) of course + +On Windows: +- Visual Studio (2022 is what is frequently tested). Install the Game Development with C++ package for DirectX. + +On Linux: +- GCC or clang. +- wget (for scripts) diff --git a/src/launcher/launcher.c b/src/launcher/launcher.c index 59c0881..0cca9c0 100644 --- a/src/launcher/launcher.c +++ b/src/launcher/launcher.c @@ -2,7 +2,7 @@ #include "runtime/mem_arena.h" #include "runtime/timing.h" -#ifdef __WIN32 +#ifdef _WIN32 #define GLFW_EXPOSE_NATIVE_WIN32 #elif defined(RT_USE_XLIB) #define GLFW_EXPOSE_NATIVE_X11 @@ -13,6 +13,11 @@ #include #include +#ifdef _WIN32 +#define WIN32_LEAN_AND_MEAN +#include +#endif + #include #include #include @@ -403,9 +408,6 @@ static int Entry(int argc, char **argv) { } #ifdef _WIN32 -#define WIN32_LEAN_AND_MEAN -#include - int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR pCmdLine, int nCmdShow) { _hInstance = hInstance; diff --git a/src/renderer/vk/meson.build b/src/renderer/vk/meson.build index 3b24b7b..e52a2bf 100644 --- a/src/renderer/vk/meson.build +++ b/src/renderer/vk/meson.build @@ -3,9 +3,11 @@ if get_option('build_vk') vma_proj = subproject('vulkan-memory-allocator', default_options: ['warning_level=0', 'werror=false']) vma_dep = vma_proj.get_variable('vma_allocator_dep') - vk_dep = dependency('vulkan', required : true) - vk_inc_dep = vk_dep.partial_dependency(compile_args: true, includes: true) - + #vk_dep = dependency('vulkan', required : true) + #vk_inc_dep = vk_dep.partial_dependency(compile_args: true, includes: true) + vk_inc_proj = subproject('vulkan-headers') + vk_inc_dep = vk_inc_proj.get_variable('vulkan_headers_dep') + vk_renderer_lib = library('rtvk', 'init.c', diff --git a/subprojects/vulkan-headers.wrap b/subprojects/vulkan-headers.wrap new file mode 100644 index 0000000..938818f --- /dev/null +++ b/subprojects/vulkan-headers.wrap @@ -0,0 +1,13 @@ +[wrap-file] +directory = Vulkan-Headers-1.3.283 +source_url = https://github.com/KhronosGroup/Vulkan-Headers/archive/v1.3.283.tar.gz +source_filename = vulkan-headers-1.3.283.tar.gz +source_hash = a76ff77815012c76abc9811215c2167128a73a697bcc23948e858d1f7dd54a85 +patch_filename = vulkan-headers_1.3.283-1_patch.zip +patch_url = https://wrapdb.mesonbuild.com/v2/vulkan-headers_1.3.283-1/get_patch +patch_hash = 00e30d35117ae90a19b5b8878746fceaf31b41778b817ca9e6b3ae6063be8233 +source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/vulkan-headers_1.3.283-1/vulkan-headers-1.3.283.tar.gz +wrapdb_version = 1.3.283-1 + +[provide] +vulkanheaders = vulkan_headers_dep