[cmake] A few fixes to make the !BUILD_SHARED_LIBS work.
Dependencies were missing on a few targets and the WGPU_SHARED_LIBRARY
definition was propagated only from dawn_proc and not from dawn_headers
that use that definition.
Bug:
Change-Id: I4ee066a0b300783dedb3e4ee4bd32dd476a8611e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/254355
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/dawn/CMakeLists.txt b/src/dawn/CMakeLists.txt
index 8ca696d..fd2d98f 100644
--- a/src/dawn/CMakeLists.txt
+++ b/src/dawn/CMakeLists.txt
@@ -46,6 +46,10 @@
dawn_public_config
)
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(dawn_headers INTERFACE "WGPU_SHARED_LIBRARY")
+endif()
+
if (EMSCRIPTEN)
add_library(webgpu_c ALIAS emdawnwebgpu_c)
else()
@@ -134,9 +138,6 @@
dawn::dawn_common
)
target_compile_definitions(dawn_proc PRIVATE "WGPU_IMPLEMENTATION")
- if(BUILD_SHARED_LIBS)
- target_compile_definitions(dawn_proc PUBLIC "WGPU_SHARED_LIBRARY")
- endif()
endif()
###############################################################################
diff --git a/src/dawn/common/CMakeLists.txt b/src/dawn/common/CMakeLists.txt
index 9c3e4a2..a4bbd58 100644
--- a/src/dawn/common/CMakeLists.txt
+++ b/src/dawn/common/CMakeLists.txt
@@ -151,7 +151,6 @@
)
endif()
-
if (CMAKE_SYSTEM_NAME STREQUAL "Android")
find_library(log_lib log)
list(APPEND conditional_private_depends
@@ -179,6 +178,7 @@
webgpu_c
webgpu_cpp
PRIVATE_DEPENDS
+ absl::flat_hash_set
absl::inlined_vector
absl::no_destructor
absl::overload
diff --git a/src/dawn/utils/CMakeLists.txt b/src/dawn/utils/CMakeLists.txt
index fa0983f..0f4cbda 100644
--- a/src/dawn/utils/CMakeLists.txt
+++ b/src/dawn/utils/CMakeLists.txt
@@ -88,6 +88,7 @@
"TestUtils.cpp"
"WireHelper.cpp"
DEPENDS
+ dawn_wgpu_utils
webgpu_cpp
dawn::dawn_common
dawn::dawn_wire