[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