Got all the libraries working apparently
This commit is contained in:
parent
415f3589b6
commit
5e05d36370
8 changed files with 39 additions and 70 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -4,4 +4,5 @@ webgpu
|
|||
## Meson
|
||||
subprojects/
|
||||
!subprojects/*.wrap
|
||||
!subprojects/dawn
|
||||
!subprojects/wgpu-native
|
||||
.cache/
|
||||
|
|
|
|||
6
.gitmodules
vendored
6
.gitmodules
vendored
|
|
@ -1,3 +1,3 @@
|
|||
[submodule "dawn"]
|
||||
path = subprojects/dawn
|
||||
url = git@github.com:google/dawn.git
|
||||
[submodule "subprojects/wgpu-native"]
|
||||
path = subprojects/wgpu-native
|
||||
url = git@github.com:gfx-rs/wgpu-native.git
|
||||
|
|
|
|||
|
|
@ -1,64 +0,0 @@
|
|||
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
||||
project(webgpu
|
||||
VERSION 0
|
||||
DESCRIPTION "Simple Engine Experiment in C"
|
||||
HOMEPAGE_URL "https://git.warwick-new.co.uk/"
|
||||
LANGUAGES C
|
||||
)
|
||||
|
||||
set(CMAKE_C_STANDARD 17)
|
||||
|
||||
# Since nix include dirs isn't appearing in compile_commands.json we're gonna
|
||||
# force cmake to link it's includes more explicitly
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "")
|
||||
if(CMAKE_EXPORT_COMPILE_COMMANDS)
|
||||
set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES
|
||||
${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES})
|
||||
endif()
|
||||
|
||||
# Use environment set by nix-shell to find wgpu include and library
|
||||
find_path(WGPU_INCLUDE webgpu)
|
||||
find_library(WGPU_LIBRARY libwgpu_native.so)
|
||||
message(STATUS "wgpu lib: ${WGPU_LIBRARY}")
|
||||
message(STATUS "wgpu include dir: ${WGPU_INCLUDE}")
|
||||
|
||||
find_package(SDL3 REQUIRED)
|
||||
find_package(SDL3_image REQUIRED)
|
||||
find_package(cglm REQUIRED)
|
||||
find_package(Vulkan REQUIRED)
|
||||
include(FeatureSummary)
|
||||
feature_summary(WHAT PACKAGES_FOUND)
|
||||
|
||||
file(GLOB_RECURSE SOURCE_FILES
|
||||
${CMAKE_SOURCE_DIR}/src/*.c)
|
||||
file(GLOB_RECURSE HEADER_FILES
|
||||
${CMAKE_SOURCE_DIR}/src/*.h)
|
||||
add_executable(${PROJECT_NAME} ${HEADER_FILES} ${SOURCE_FILES})
|
||||
|
||||
# Error on memory address issues in debug mode
|
||||
if(CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
set(
|
||||
CMAKE_C_FLAGS
|
||||
"${CMAKE_C_FLAGS} -Werror -fsanitize=undefined -fsanitize=address"
|
||||
)
|
||||
target_link_options(${PROJECT_NAME}
|
||||
BEFORE PUBLIC -fsanitize=undefined PUBLIC -fsanitize=address
|
||||
)
|
||||
endif()
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
${WGPU_INCLUDE}
|
||||
${SDL3_INCLUDE_DIRS}
|
||||
${SDL3_image_INCLUDE_DIRS}
|
||||
${GLFW_INCLUDE_DIRS}
|
||||
${CGLM_INCLUDE_DIRS}
|
||||
${Vulkan_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
${WGPU_LIBRARY}
|
||||
${SDL3_LIBRARIES}
|
||||
${SDL3_image_LIBRARIES}
|
||||
${CGLM_LIBRARIES}
|
||||
${Vulkan_LIBRARIES}
|
||||
)
|
||||
3
README.md
Normal file
3
README.md
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
## Teething problems
|
||||
Currently can't link the meson build in the wgpu-native subproject so just use
|
||||
mason to install that library system wide for now.
|
||||
18
meson.build
18
meson.build
|
|
@ -1,10 +1,26 @@
|
|||
project('webgpu', 'c',
|
||||
default_options: 'default_library=static')
|
||||
|
||||
vulkan_dep = dependency('vulkan-headers', fallback: ['vulkan-headers', 'vulkan_headers_dep'])
|
||||
sdl3_deps = [dependency('sdl3'), dependency('sdl3_image')]
|
||||
cglm_dep = dependency('cglm')
|
||||
wgpu_native_dep = dependency('wgpu-native')
|
||||
|
||||
pkg = import('pkgconfig')
|
||||
#wgpu_native_dep = dependency('wgpu-native', fallback: ['wgpu-native','webgpunative_dep'])
|
||||
|
||||
|
||||
#cmake = import('cmake')
|
||||
#dawn_cmakeopts = cmake.subproject_options()
|
||||
#dawn_cmakeopts.add_cmake_defines({'DAWN_FETCH_DEPENDENCIES': 'ON'})
|
||||
#dawn_cmakeopts.add_cmake_defines({'DAWN_ENABLE_INSTALL': 'ON'})
|
||||
#dawn_cmakeopts.add_cmake_defines({'CMAKE_BUILD_TYPE': 'Release'})
|
||||
|
||||
#dawn = cmake.subproject('dawn', options: dawn_cmakeopts)
|
||||
##message('CMake targets:\n - ' + '\n - '.join(dawn.target_list()))
|
||||
#webgpu_dawn_dep = dawn.dependency('webgpu_dawn')
|
||||
|
||||
executable('webgpu', 'src/main.c',
|
||||
win_subsystem: 'windows',
|
||||
dependencies: [sdl3_deps,cglm_dep]
|
||||
dependencies: [sdl3_deps, cglm_dep, wgpu_native_dep, vulkan_dep]
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 6f6debdb05bf29b63a93c47428d043357ca2311e
|
||||
13
subprojects/vulkan-headers.wrap
Normal file
13
subprojects/vulkan-headers.wrap
Normal file
|
|
@ -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
|
||||
1
subprojects/wgpu-native
Submodule
1
subprojects/wgpu-native
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 662f9dc44eb86c63a445526cc21b9326a279aca8
|
||||
Loading…
Reference in a new issue