core: emdawnwebgpu build support (#4370)

This commit is contained in:
Sargun Vohra
2026-07-24 00:57:28 -07:00
committed by GitHub
parent 18545ca10d
commit 15fcee54dc
8 changed files with 166 additions and 9 deletions

View File

@@ -20,7 +20,6 @@ list(APPEND
${PROJECT_SOURCE_DIR}/src/mbgl/webgpu/buffer_resource.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/webgpu/context.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/webgpu/command_encoder.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/webgpu/headless_backend.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/webgpu/renderer_backend.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/webgpu/drawable.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/webgpu/drawable_builder.cpp
@@ -119,7 +118,13 @@ include(${PROJECT_SOURCE_DIR}/vendor/webgpu.cmake)
if(MLN_WEBGPU_IMPL_DAWN)
include(${PROJECT_SOURCE_DIR}/vendor/dawn.cmake)
if(TARGET mbgl-vendor-dawn)
target_link_libraries(mbgl-core PRIVATE mbgl-vendor-dawn)
if(MLN_WEBGPU_EMDAWN)
# Emdawn is a compiler/linker port rather than a conventional
# library. Consumers must inherit its final-link options.
target_link_libraries(mbgl-core PUBLIC mbgl-vendor-dawn)
else()
target_link_libraries(mbgl-core PRIVATE mbgl-vendor-dawn)
endif()
endif()
elseif(MLN_WEBGPU_IMPL_WGPU OR MLN_WEBGPU_IMPL_FFI)
# Include wgpu-native integration
@@ -130,3 +135,8 @@ elseif(MLN_WEBGPU_IMPL_WGPU OR MLN_WEBGPU_IMPL_FFI)
list(APPEND SRC_FILES ${PROJECT_SOURCE_DIR}/src/mbgl/webgpu/webgpu_cpp_impl.cpp)
endif()
endif()
# Headless backend uses Dawn native / wgpu-native bootstrap; skip for emdawnwebgpu.
if(NOT MLN_WEBGPU_EMDAWN)
list(APPEND SRC_FILES ${PROJECT_SOURCE_DIR}/src/mbgl/webgpu/headless_backend.cpp)
endif()